WP Query - Is this correct?

时间:2014-01-04 作者:Tony Fire

正在尝试调试,令人头痛,因此我希望确保已将查询参数放置在正确的位置。我想根据“myvalue”对所有帖子进行排序/排序。

if ( have_posts() ) :
    /* Start the Loop */
    $args = array(
        \'meta_key\' => \'myvalue\',
        \'orderby\' => \'meta_value_num\',
        \'order\' => \'DESC\' 
    );
    query_posts( $args );
    /* End Condition */
    while (have_posts()) : the_post();
        get_template_part( \'content\', get_post_format() );
    endwhile;
endif;
EDIT: 更新了代码:

$paged = ( get_query_var( \'paged\' ) ) ? get_query_var( \'paged\' ) : 1;
$args = array(
    \'posts_per_page\' => 10,
    \'order\' => \'DESC\',
    \'paged\' => $paged,
    \'meta_value_num\' => \'likes_count\',
    \'orderby\' => \'meta_value_num\'
);
$posts = new WP_Query($args);
while ($posts->have_posts()): $posts->the_post();
endwhile;
我使用这段代码来检索元值
https://wordpress.stackexchange.com/a/66955

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

我猜,但根据您在上面代码中选择的占位符名称。。。

$args = array(
  \'meta_key\' => \'myvalue\',
  \'orderby\' => \'meta_value_num\',
  \'order\' => \'DESC\' 
);
。。。你的meta_key 论点是错误的。这是元键,而不是你的命名惯例所暗示的元值。

meta\\u键(字符串)-自定义字段键。

http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters

代替query_posts 使用新的WP_Query 对象或在上使用筛选器pre_get_posts 更改主查询。这个网站充满了这两方面的例子。即使是法典也告诉您不要使用此功能:

注意:此功能不适用于插件或主题。

http://codex.wordpress.org/Function_Reference/query_posts

如果这没有帮助,那么您将不得不提供更多信息,但我猜您的meta_value 不是数字,但也有其他东西——标点符号、字母等等。

根据更新的代码,我很确定您想要的是thsi:

$args = array(
  \'posts_per_page\' => 10,
  \'order\' => \'DESC\',
  \'paged\' => $paged,
  \'meta_key\' => \'likes_count\',
  \'orderby\' => \'meta_value_num\'
);

SO网友:passatgt

$args = array(
    \'posts_per_page\' => 10,
    \'order\' => \'DESC\',
    \'meta_key\' => \'myvalue\',
    \'orderby\' => \'meta_value_num\'
);

$posts = new WP_Query($args);
?>
<?php while($posts->have_posts()): $posts->the_post(); ?>
    <h1><?php the_title(); ?></h1>
<?php endwhile; ?>
这应该可以,请确保使用了正确的meta\\u键。

结束