0

除了posts_per_page(它将显示的帖子数量)之外,一切都在我的代码中运行。这是我的 Wordpress 代码的一部分:

<?php 
$category = get_the_category();
$current_category = $category[0]->term_id;
$qarr = array(
    'posts_per_page' => $posts_number,
    'cat' => $current_category,
    'tag' => 'pinned', // tag filtered
    'post__not_in' => array(get_the_ID())
);
$q = new WP_Query($qarr);
if($q->have_posts()) : while ($q->have_posts()) : $q->the_post();
?>

为什么它不起作用?我已阅读文档,但不明白问题所在。

如果您想查看和测试它,这里是完整的代码,只需为 $posts_number 设置一个数字:http: //pastebin.com/uNsynNiM

4

1 回答 1

1

从您之前的问题来看,您的主题主要是使用 query_posts 针对您的数据库运行任何和所有发布查询。由于这会改变主循环,因此 WP_Query 和 get_posts 也会受到对 query_posts 的任何和所有现有调用的影响。我相当确定您的 Widget 中的 WP_Query 调用受到某处流氓 query_posts 调用的影响。

我的建议是,因为将您的主题从所有 query_posts 实例转换为 WP_Query 可能需要相当多的努力,所以暂时使用“showposts”,因为这基本上可以解决问题。我仍然建议将对 query_posts 函数的所有调用切换到 WP_Query,只是因为这样做会显着提高性能,但最终,这需要您付出巨大的努力来解决一个相当小的问题。

就个人而言,我会这样做吗?作为一个良好实践的练习,我可能会,是的。我会说值得吗?这取决于项目。如果这只是一个个人项目,我不会说这是必要的。

祝你好运,我希望一切顺利。

于 2012-09-12T16:18:50.517 回答