QUERY_POSTS函数的帮助

时间:2020-11-12 作者:Matt

我有一个付费主题,它有以下手动硬编码的功能。它将调出8条最新帖子并显示它们:

global $do_not_duplicate;
global $post;

query_posts( array(
    \'posts_per_page\'        => \'8\',
    \'post__not_in\'          => $do_not_duplicate,
    \'ignore_sticky_posts\'   => 1
) );
我已经看过了this page 并试图修改代码以仅显示新闻类别中的帖子(类别编号1):

global $do_not_duplicate;
global $post;

// Attempt 1
query_posts( array(
    \'cat=1\',
    \'posts_per_page\' => \'8\',
    \'post__not_in\' => $do_not_duplicate,
    \'ignore_sticky_posts\' => 1
) );

// Attempt 2
query_posts( array(
    \'category=1\',
    \'posts_per_page\' => \'8\',
    \'post__not_in\' => $do_not_duplicate,
    \'ignore_sticky_posts\' => 1
) );

// Attempt 3
query_posts( array(
    \'category\' => array(1),
    \'posts_per_page\' => \'8\',
    \'post__not_in\' => $do_not_duplicate,
    \'ignore_sticky_posts\' => 1
) );

// Attempt 4
query_posts( array(
    \'cat=news\',
    \'posts_per_page\' => \'8\',
    \'post__not_in\' => $do_not_duplicate,
    \'ignore_sticky_posts\' => 1
) );
什么都没用。返回了所有职类最近8个员额的同一名单。

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

这个query_posts() 功能几乎完全没有必要,不鼓励使用WP_Query(). 尽管如此,我们可以看看WP_Query() docs 因为它们几乎是一样的。

这个cat 参数接受逗号分隔的字符串或整数。在这种情况下,我们可以使用:

query_posts( array(
    \'cat\' => 1,
    \'posts_per_page\' => \'8\',
    \'post__not_in\' => $do_not_duplicate,
    \'ignore_sticky_posts\' => 1
) );

相关推荐