Wordpress:如何对自定义字段上的帖子进行排序

时间:2012-08-16 04:00:27

标签: wordpress sorting custom-fields custom-taxonomy

我想以特定顺序显示自定义分类中的帖子标题列表。 我认为控制订单的最佳方法是添加自定义字段并对该自定义字段进行排序。

我遇到的问题是我正在尝试使用Wordpress的内置功能,但我找不到添加排序功能的方法。

我的情景看起来像这样 调用网址是... com / taxonomy / term

这会调出一个模板,其文件名为taxonomy-taxonomyname-term.php

我的模板只是重命名和编辑的index.php模板,以包含此循环

<?php if ( have_posts() ) : ?>

<?php twentyeleven_content_nav( 'nav-above' ); ?>
<ul>
<?php /* Start the Loop */ ?>
<?php while ( have_posts() ) : the_post(); ?>
<li><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute( array( 'before' => 'Permalink to: ', 'after' => '' ) ); ?>"><?php the_title(); ?></a></li>

<?php endwhile; ?>
</ul>
<?php twentyeleven_content_nav( 'nav-below' ); ?>

<?php else : ?> etc

这会显示标题列表,但我找不到控制标题顺序的方法。

我看到设置一组帖子顺序的唯一方法是定义查询中帖子的顺序。但当然在这种情况下我没有查询,因为我已经通过调用网址发布了帖子。

有没有办法在不添加其他查询的情况下添加排序功能,或者查询是否必需。

1 个答案:

答案 0 :(得分:2)

假设您的自定义字段是my_date 您可以像这样创建自定义查询。

query_posts('meta_key=my_day&meta_compare=<=&meta_value=20&orderby=meta_value&order=DESC');

使用它

<?php if ( have_posts() ) : ?>

<?php twentyeleven_content_nav( 'nav-above' ); ?>
<ul>
<?php /* Start the Loop */ 
  query_posts('meta_key=my_day&meta_compare=<=&meta_value=20&orderby=meta_value&order=DESC');
?>

<?php while ( have_posts() ) : the_post(); ?>
<li><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute( array( 'before' => 'Permalink to: ', 'after' => '' ) ); ?>"><?php the_title(); ?></a></li>

<?php endwhile; ?>
</ul>
<?php twentyeleven_content_nav( 'nav-below' ); ?>

<?php else : ?> etc

了解更多信息http://wpengineer.com/1915/sort-posts-custom-fields/