[Помогите] Последние посты вне WordPress

Тема в разделе "Wordpress", создана пользователем OnArs, 26 сен 2009.

Статус темы:
Закрыта.
Модераторы: DzSoft, Sorcus
  1. OnArs

    OnArs

    Регистр.:
    30 авг 2008
    Сообщения:
    259
    Симпатии:
    74
    Здравствуйте, Нульдяне! :ay:



    В очередной раз с проблемой к вам...


    WordPress установлен в директории /news/.
    Хочу на главной странице вывести последние записи WordPress'a.


    С запросом к БД нет проблем, но из БД Я получаю URL'ы вида ?p=123123, в то время как у меня настроен ЧПУ вида /nazvanie-categorii/privet-mir.html


    Как быть в этом случае? Как получить url'ы из Базы в нужном виде?


    Заранее благодарен! :bc:
     
  2. whitewolff

    whitewolff Лимонадный Джо :)

    Регистр.:
    29 май 2007
    Сообщения:
    168
    Симпатии:
    33
    наверное придется писать функции, которые будут выдирать имя поста и категории в котором он находится, преобразовывать в нужный вид так же как это делают функции вротпресса, и выводить. иначе никак. ну либо можно конечно попробовать подинклудить в основной двиг функции вордпресса. но свое наваять наверное легче будет.
     
  3. t3s

    t3s

    Регистр.:
    16 фев 2008
    Сообщения:
    719
    Симпатии:
    290
    не понял, вам урлы или посты нужно вывести?
     
  4. whitewolff

    whitewolff Лимонадный Джо :)

    Регистр.:
    29 май 2007
    Сообщения:
    168
    Симпатии:
    33
    урлы наверное же(я так полагаю с тайтлом и кусочком контента возможно), раз запостил проблему, связаную именно с ними. контент и тайтл выбрать из базы не сложно
     
  5. Деймос

    Деймос

    Регистр.:
    29 ноя 2008
    Сообщения:
    228
    Симпатии:
    53
    ТС дак Вы напишите запрос который Вы написали, а тут уже подскажут что не так.
    А еще проще выводить через RSS, а не через запрос к базе. Там уж точно никаких проблем не будет, можно в добавок настроить кеширование. Если с транслятором RSS возникнут сложности - обращайтесь - хотя проблем думаю не будет.
     
    OnArs нравится это.
  6. OnArs

    OnArs

    Регистр.:
    30 авг 2008
    Сообщения:
    259
    Симпатии:
    74
    Сдаётся мне что Это самый простой и быстрый способ - всё что нужно распарсить RSS Ленту нужного раздела (категории). Сейчас буду пробовать - по итогам обязательно отпишусь.


    Большое спасибо! :ay:
     
  7. XeonN

    XeonN

    Регистр.:
    13 ноя 2006
    Сообщения:
    369
    Симпатии:
    150
    В таблице с постами есть поле `guid` в нем храниться полная ссылка на пост вида _http://site.com/post-name.html (Это я для примера, там храниться в таком формате как у вас заданы пермалинки).
     
  8. seoboy

    seoboy

    Регистр.:
    17 мар 2007
    Сообщения:
    165
    Симпатии:
    27
    Сам когда то искал.Не нашел пришлось заказть.:(
    Создаете php файлик и инклудите в любом месте.пользуйтесь:)
    <?php
    $host = 'localhost';
    $db_name = 'имя базы';
    $db_username = 'логин';
    $db_password = 'пароль';
    $count = количество выводимых постов;
    $db_prefix = 'префикс таблицы( по умолчанию wp_)';

    if (!mysql_connect($host,$db_username,$db_password)){

    die('Could not connect: ' . mysql_error());


    } else {

    mysql_select_db($db_name);
    mysql_query ("set character_set_client='utf8'"); ////////////////////////////////////////////////
    mysql_query ("set character_set_results='utf8'"); //ПЕРЕКЛЮЧЕНИЕ КОДИРОВОК В ЧЕЛОВЕЧЕСКИЙ ФОРМАТ//
    mysql_query ("set collation_connection='utf8_general_ci'"); ////////////////////////////////////////////////

    }

    $res = mysql_query('SELECT * FROM `'.$db_prefix.'posts` WHERE `post_status` = \'publish\' ORDER BY `post_date` DESC LIMIT '.$count.'');
    while($row=mysql_fetch_array($res)) {

    echo '<a href="'.$row['guid'].'">'.$row['post_title'].'</a><br>';

    }

    mysql_close();
    ?>
     
  9. OnArs

    OnArs

    Регистр.:
    30 авг 2008
    Сообщения:
    259
    Симпатии:
    74
    Всё работает - сделал с помощью распаршивания RSS нужного раздела или общего, в конечном итоге получилось вот так:

    <?php

    $pattern = "/<title>(.*)<\/title>([\s\S]*)<link>(.*)<\/link>/Us"; // Шаблон регулярного выражения
    $responce = file_get_contents('[Ссылка на нужный раздел]/feed/rss'); // Получаем RSS содержимое в переменную
    preg_match_all($pattern, $responce, $result);

    // Выводим ссылки на последние 10 записей
    for ($i==1;$i<=10;$i++){
    $title = $result[1][$i];
    $link = $result[3][$i];
    echo "<a href='".$link."'>".$title."</a><br />";
    }
    ?>
     
Статус темы:
Закрыта.