numberposts not working

时间:2015-04-17 作者:chrsmrtn81

我有以下代码块,希望将帖子数量限制为2篇,但似乎不起作用。。??我也尝试过在每页上使用posts\\u,但似乎也不起作用。

有谁能帮我指出哪里出了问题吗?

<?php

$tax_country = strip_tags( get_the_term_list($post->ID, \'country\') );

echo \'<h1>More Properties in \';
echo $tax_country;
echo \'...</h1>\';

$relates = get_posts(array(
  \'post_type\' => \'propertyawardwinners\',
  \'numberposts\' => -1,
  \'tax_query\' => array(
    array(
      \'taxonomy\' => \'country\',
      \'field\' => \'slug\',
      \'terms\' => array($tax_country),
      \'include_children\' => false
    )
  )
));

foreach ($relates as $relate) {
      echo $relate->post_title . \'<br/>\';
      echo  $relate->ID . \'<br/>\';
      echo get_field(\'location_city\') . \'<br/><br/>\';

}

?>        

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

你的问题是$tax_country, 更实际的价值。get_the_term_list() 不返回您的想法

返回与帖子和给定分类法关联的分类法术语的HTML字符串。术语链接到各自的术语列表页面。

即使你去掉标签,你也只会留下一串术语names. WP_Query (用于get_posts) 由于某种原因,do有时会以这种方式失败(返回所有帖子并忽略posts_per_page 值),如果传递给它的值无效。

要解决您的问题,请使用wp_get_post_terms(). 您可以尝试以下方法

$tax_country = wp_get_post_terms( $post->ID, \'country\', array( \'fields\' => \'ids\' ) );
这将返回一个术语ID数组,因此您需要调整tax_query 像这样的事情

\'tax_query\' => array(
    array(
        \'taxonomy\' => \'country\',
        \'terms\' => $tax_country,
        \'include_children\' => false
    )
),

结束