[Помогите] Проблема с выводом последних постов.

Тема в разделе "Wordpress", создана пользователем carlitoz, 3 сен 2008.

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

    carlitoz

    Регистр.:
    22 мар 2008
    Сообщения:
    353
    Симпатии:
    54
    В сайдбаре вывожу Последние записи с помощью
    <?php $recent = new WP_Query("cat=-1&showposts=50"); while($recent->have_posts()) : $recent->the_post();?>
    <ul> <li> <a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a> </li>
    </ul>

    <?php endwhile; ?>

    То есть все кроме первой категории и в количестве 50 записей. Проблема в том, что записи выводятся в обратном порядке их добавления. То есть самые старые вверху списка, самые новые в него и не попадают.

    В кодексе нашел параметр
    order=ASC - show posts in chronological order, DESC to show in reverse order (the default)
    никакой реакции.

    Самое странное, что раньше выводилось все нормально. Сейчас посмотрел на другой сайт, где стоит аналогичный код, записи также стали в обратном направлении. Оба сайта на одном хостинге.

    Как понимаю, что-то произошло там. Могли бы вы подсказать решения?
     
  2. DkWix

    DkWix Читатель

    Заблокирован
    Регистр.:
    10 июн 2008
    Сообщения:
    147
    Симпатии:
    30
    Попробуйте сделать вывод с помощью этого кода:


    <h2>Последние новости</h2>
    <ul class="sidenav">
    <?php
    $myposts = get_posts('numberposts=10&offset=0');
    $len = strlen($text);
    if ($len > 2) {
    $text = substr($text, 0, 2)."..";
    }
    foreach($myposts as $post) :
    ?>
    <li><a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title (); ?></a></li>
    <?php endforeach; ?>
     
  3. alexzh

    alexzh

    Регистр.:
    13 сен 2006
    Сообщения:
    222
    Симпатии:
    88
    у меня так работает
    PHP:
    <li><h2>Recent</h2>
                    <ul>
                    <?php
                    $myposts 
    get_posts('numberposts=10&offset=1');
                    foreach(
    $myposts as $post) :
                    
    ?>
                    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
                    <?php endforeach; ?>
                    </ul>
                </li>
    еще погляди
    Latest Post from each Category
    Customizable Post Listings WordPress Plugin
     
  4. carlitoz

    carlitoz

    Регистр.:
    22 мар 2008
    Сообщения:
    353
    Симпатии:
    54
    оба варианта не проходят( выводило заголовки одного и тогоже поста:(
     
  5. alexzh

    alexzh

    Регистр.:
    13 сен 2006
    Сообщения:
    222
    Симпатии:
    88
    кроме плагина "Latest Post from each Category"
    можешь поискать в гугле "codex wp_list_categories" ЗДЕСЬ
    и не только, ты найдешь ответ на твой вопрос!
    PHP:
    <ul> 
    <?php wp_list_categories('exclude=4,7&title_li='); ?> 
    </ul> 
    ЗДЕСЬ
    PHP:
     <?php
     
    global $post;
     
    $myposts get_posts('numberposts=50&category=-1');
     foreach(
    $myposts as $post) :
     
    ?>
        <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
     <?php endforeach; ?>
     </ul> 
     
  6. carlitoz

    carlitoz

    Регистр.:
    22 мар 2008
    Сообщения:
    353
    Симпатии:
    54
    alexzh, дык, с вордпрессом уже не первый год, и кодекс первое место куда я иду, если гугл сразу не находит решение. Про функцию wp_list_categories речь не идет, сам здесь рассказывал о том, как с ней можно играться. Код вывода пробовал тоже, но результата никакого.

    Дело в том, что при использовании традиционных выводов записай они выстраиваются в обратном порядке. Хотя, что очень интересно, вывод контента в основном loop осуществляется нормально.

    Проблема точно не в том коде, которые были написаны выше, в том числе и моем. А в хостинге. Такая же проблема на другом сайте с этого хостинга. На других хостингах все ок. Еще месяц назыд выводилось как надо и на этом. И повторюсь. Ничего с настройками блогов, с базой данных не делал. ВОбще их не трогал. Писал хостеру, они говорят, что лучше обратиться на форум поддержки wordpress. Вот и ищу проблемы, чтобы они могли воткнуть, что не так.

    Еще смущает, что нет никакой реакции на выставления параметра order. Что ASCб что DESK выводят одинаково.

    ДУмается мне что дело или в базе данных или в проблемах обработки php. Хотя я в этом деле дилетант. Вобщем, сейчас попробую создат тему на форуме русской поддержки, и на форуме Макса. Если найду решение, то сюда выложу. Думаю кому то пригодится.

    upd. Может в дальнейшем кому-то пригодится. на майвордпресе ЮБ посоветовал:
    Чтобы делал я. Я бы в wp-config.php добавил строку
    define('SAVEQUERIES', true);
    Затем в footer.php
    <pre><? if (current_user_can('level_8')) print_r($GLOBALS['wpdb']->queries); ?></pre>
    Зашел с админскими правами на сайт и посмотрел запросы к базе.
    Затем в phpmyadmin выполнил запрос, порожденный кодом в сайдбаре, и посмотрел, в каком порядке он выведет записи. Ну, и на сам запрос бы пристально посмотрел. Дальше - только по результатам вскрытия.
    буду биться..)
     
  7. Limmer

    Limmer

    Регистр.:
    3 июн 2008
    Сообщения:
    206
    Симпатии:
    45
    была подобная проблема, ни в какую, при вводе параметра ORDER ASC или DESC список отображения записей не реагировал, все делал с помощью функции query_posts, причем как ни бился ничего не помогало, потом случайно нашел на одном из форумов, что на на параметры вывода (то есть перекливаться с функцией) может влиять какой-то другой плагин, так и оказалось, был виноват плагин wp-sticky, после его отключения все заработало как нужно :)
     
  8. carlitoz

    carlitoz

    Регистр.:
    22 мар 2008
    Сообщения:
    353
    Симпатии:
    54
    C твоим постом во мне вселилась надежда... но увы, не помогло:( отключил все плагины, вывод так и не изменился.
     
Статус темы:
Закрыта.