wp_query order by title

时间:2011-10-07 作者:spiderling

我有以价格开头的帖子标题,例如:199900美元-123街。我正在使用下面的代码,我无法通过标题升序来正常工作。请提供任何建议。

<?php
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$args = array(
 \'cat\' =>21,
 \'posts_per_page\' => 999999,
 \'paged\' => $paged,
 \'orderby\' => \'title\',
 \'order\' => \'ASC\',
 );
$the_query = new WP_Query($args);
?>
<div id="listings">

<?php if ($the_query->have_posts()) : ?>

<?php while ($the_query->have_posts()): $the_query->the_post(); ?>
        <div <?php post_class() ?> id="post-<?php the_ID(); ?>">
            <div class="title1 active_listing">
                <?php
                if (in_category(\'6\')) {
                the_title();
                } else {
                ?>

                <a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a>
                <?php
                }
                ?>
            </div>

                <div class="alignleft thumb"><?php the_post_thumbnail(\'thumbnail\'); ?>
<br />
</div>
        <div class="content"><?php the_excerpt(); ?> </div>

                <?php
                if (in_category(\'6\')) {
                ?>
<br />
                <?php
                } else {
                ?>
 <a href="<?php the_permalink() ?>" rel="bookmark"> View Details</a>
 <br />
                <?php
                }
                ?>

        </div>

    <?php endwhile; wp_reset_postdata();?>

<?php else : ?>

    <h2 class="center">Not Found</h2>
    <p class="center">Sorry, but you are looking for something that isn\'t here.</p>
    <?php get_search_form(); ?>

<?php endif; ?>

</div>

1 个回复
最合适的回答,由SO网友:Milo 整理而成

如果您试图让他们通过升价订购,问题是按标题订购是字符串比较,而不是数字。解决方案是将价格放在自定义字段中,并按自定义字段排序,而不是按标题排序。您可以添加meta_key 带有元密钥名称的param和orderbymeta_value_num. 看见WP_Query in Codex 了解更多信息。

此外,如果您希望返回所有帖子(我假设您正试图将其设置为如此高的数字),您可以设置posts_per_page-1 相反,它将删除LIMIT 查询中的子句。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post