无论我如何尝试或做什么,我都无法通过标题来命名我的帖子:
# 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;
他们总是按我输入的顺序出来。我甚至无法通过日期来订购。
编辑:我在Windows上对MySQL运行3.0.3
我还应该注意,我正在搜索的类别是一个子类别。结果很好。
使用最新技术更新,但仍导致订单错误。
答案 0 :(得分:1)
尝试:
//显示按标题按升序排列的帖子
<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>
我没有使用过这个Codex,但看起来它也可以在这里使用。
<?php get_posts( $args ); ?>
'orderby' => 'title',
答案 1 :(得分:1)
我遇到了这个问题,它是由Post Types Order插件引起的。如果您使用的是这样的插件,它可能会覆盖查询中的任何自定义排序。
答案 2 :(得分:0)
这真的很奇怪,但我通过添加自定义过滤器解决了这个问题。删除所有当前过滤器没有任何效果......但这有效:
# 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;
}