oculusvision
  • 0
Новичок

Get_post random and order by not working

  • 0

У меня есть этот код, который возвращает список заголовков сообщений в виде ссылок, но когда я добавляю параметры «orderby» и «order» — он возвращает результаты, но «orderby, order, rand» не работает, может ли кто-нибудь сказать мне, что я делаешь неправильно? Спасибо!

<ul>
   <?php $post; $cat_posts = get_posts(array('numberposts' => 10, 'orderby' => 'rand', 'order' => ASC, 'category' => $disciplineCatID));
   foreach($cat_posts as $post) : ?>
   <?php $postTitle = get_the_title(); if($title != $postTitle) :?>
   <li><a href="<?php the_permalink(); ?>">&rsaquo;&rsaquo; <?php the_title(); ?></a></li>
   <?php endif ;?>
   <?php endforeach; ?>
</ul>
Share
  1. Отсутствуют одинарные кавычки в ASC .. просто опечатка или, возможно, связано?

    • 0
  2. Да, это правильный синтаксис:

    $args = array(
        'orderby' => 'rand',
        'order'    => 'ASC'
    );
    query_posts( $args );
    

    Однако плагины могут помешать этому работать должным образом. Попробуйте отключить ВСЕ плагины и посмотрите, поможет ли это. Два известных плагина, которые не orderby=rand работают, это Post Type Order иWP_Sticky

    Кроме того, если у вас установлен ордер Post Types, обязательно посетите страницу администратора и проверьте настройки. Вы можете использовать этот плагин и запретить ему автоматически переупорядочивать сообщения:

    http://img829.imageshack.us/img829/2616/pictureot.png

    И затем вы можете использовать код для порядка типов сообщений, чтобы специально упорядочить эти сообщения в местах, где вам нужно, чтобы они были упорядочены с помощью пользовательского/меню-порядка. Вот пример кода для этого плагина:

    Следующий PHP-код по-прежнему будет возвращать сообщение в порядке настройки:

    $args = array(
    'post_type' => 'feature'
    );
    
    $my_query = new WP_Query($args);
    while ($my_query->have_posts())
    {
    $my_query->the_post();
    (..your code..)          
    }
    

    Или:

    $posts = get_posts($args);
    foreach ($posts as $post)
    {
    (..your code..)     
    }
    

    Если автоматическая сортировка не отмечена, вам нужно будет использовать параметры «orderby» и «order»:

    $args = array(
    'post_type' => 'feature',
    'orderby'   => 'menu_order',
    'order'     => 'ASC'
    );
    
    • 0
  3. Если вы размещаетесь на WP Engine, вам нужно вручную включить случайный порядок в настройках, иначе 'orderby' => 'rand' это не сработает.

    https://wpexplorer-themes.com/total/docs/random-order-wpengine/

    • 0
  4. Почему бы вам не попробовать вместо этого использовать query_posts ?

    Что-то типа:

    $args = array(
        'orderby' => 'rand',
        'order'    => 'ASC'
    );
    query_posts( $args );
    
    • 0

Оставить ответ

You must login to add an answer.