Не могу заказать посты по названию - PullRequest
0 голосов
/ 29 декабря 2010

Независимо от того, как я стараюсь или что я делаю, я не могу упорядочить свои посты по названию:

# Vars
global $post;

# Build
$args = array(
    'numberposts'     => -1,
    'category'        => 28,
    'orderby'         => 'title',
    'order'           => 'ASC',
    'post_type'       => 'post',
    'post_status'     => 'published' );

# Query
$tagposts = get_posts($args);

# Iterate
foreach($tagposts as $post) :

# Populate
setup_postdata($post);

# Show title, excerpt
echo '<tr><td>';
the_title();
echo '</td><td>';
the_excerpt();
echo '</td></tr>';

endforeach;

Они всегда выходят в том порядке, в котором я их ввел. Я не могу даже заказать его к дате .

РЕДАКТИРОВАТЬ: я работаю 3.0.3 против MySQL на Windows

Я должен также отметить, что категория, по которой я ищу, является подкатегорией. Результаты показывают отлично.

Обновлено с последней техникой, которая все еще приводит к неправильному порядку.

Ответы [ 3 ]

1 голос
/ 29 августа 2012

У меня была эта проблема, и она была вызвана плагином Post Types Order. Если вы используете такой плагин, он может переопределить любую пользовательскую сортировку в вашем запросе.

1 голос
/ 29 декабря 2010

Попробуйте:

// отображать сообщения, упорядоченные по заголовкам в порядке возрастания

<div class="post">

    <h1>Ordered by Post Title (Ascending)</h1>

    <?php foreach( $posts as $post ) : setup_postdata( $post ); ?>

        <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>

        <p><?php the_content(); ?></p>

    <?php endforeach; ?>

</div>

Я не использовал этот Кодекс, ноПохоже, что это может работать и здесь.

 <?php get_posts( $args ); ?> 

    'orderby'         => 'title',
0 голосов
/ 29 декабря 2010

Это действительно странно, но я решил проблему, добавив пользовательский фильтр. Удаление всех текущих фильтров не имело никакого эффекта ... но это работает:

# Vars
global $post;

# Build
$args = array(
    'numberposts'     => -1,
    'category'        => 28,
    'post_type'       => 'post',
    'post_status'     => 'published' );

# Clear
add_filter('posts_orderby', 'post_title ASC' );

# Query
$tagposts = get_posts($args);

# Iterate
foreach($tagposts as $post) :

# Populate
setup_postdata($post);

# Show title, excerpt
echo '<tr><td>';
the_title();
echo '</td><td>';
the_excerpt();
echo '</td></tr>';

endforeach;

# Order
function title_alphabetical( $orderby )
{
  return $orderby;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...