限制wordpress中的粘贴帖子数量

时间:2014-09-29 09:36:53

标签: php wordpress sticky

我有一个正在开发的网站,客户想要一个新闻和F.A.Q页面。不是问题!他希望能够添加自己的帖子(新闻和常见问题解答。再次,不是问题!他要求的最后一件事是他能够管理显示的帖子数量以及显示的帖子类型。现在这就是我感到困惑的地方。我已经建立了一个系统,客户可以选择要显示的类别。(我现在使用AwesomeBuilder)。现在我们有三种不同类型的帖子。常规,常规+粘性和粘性。如果客户选择仅显示常规帖子的选项我可以使用post__not_in关闭粘性帖子。但是如果客户选择常规+粘性或粘性,则金额功能不再起作用。

让我们说客户选择最多10个帖子。在常规类别中,这最大值为10,这就是它。然而,在粘性帖子中,这并没有发生,它只显示所有粘性帖子,因为胶粘物被告知总是保持在最顶层。 Regular + Sticky会显示所有粘贴帖子,然后是10个常规帖子。我希望我的情况和问题很清楚。

以下代码。

$sticky = get_option( 'sticky_posts' );
$number = $atts['number'];

if ($atts['sticky'] == 'nieuws') {
    $args = array('post__not_in'  => $sticky, 'posts_per_page' => $number );

} elseif ($atts['sticky'] == 'nieuws-sticky') {
    $sticky_count = count($sticky);
    if ($sticky_count <= $number){
        $number_sticky = $number - $sticky_count;
        $args = array('post_type' => post, 'posts_per_page' => $number_sticky);
    }
    else {
//      $sticky = array_slice($sticky,0, 1);
//      echo 'hello'. $sticky;
        $args = array('post__in'  => $sticky );
    }
} else {
//  $sticky = array_slice($sticky,1, 2);
    $args = array('post__in'  => $sticky, 'posts_per_page' => $number );
}

PS。我知道THIS是大致相同的问题,但尚未得到答复。

2 个答案:

答案 0 :(得分:0)

确保$ number变量为10,并确保在query_posts函数中使用$ args,如query_posts($ args);

答案 1 :(得分:0)

https://codex.wordpress.org/Sticky_Posts

您可以从链接中参考“仅显示第一个粘贴帖子,如果没有返回发布的最后一篇帖子:”。