从循环中删除wordpress粘贴帖子

时间:2011-07-27 18:46:15

标签: wordpress sticky

不确定这是否是处理此问题的最佳方式,但我需要从循环中删除粘贴帖子,我仍然需要粘贴显示在第一页上,但由于我使用了无穷无尽的列表,我没有不希望它出现两次。这是有效的,但是编辑index.php文件以完成它有点不自觉......还有其他的想法吗?

//Get the current page number
$url_args=explode('/',trim($_SERVER['REQUEST_URI'],'/'));
$page_number=array_pop($url_args);

$sticky=get_option('sticky_posts');

//if no page number, we are on the home page, so stickies are ok
$print_it=($page_number=='')?true:(in_array(get_the_ID()*1,$sticky)?false:true);

更容易理解if语句:

if($page_number=='' || !in_array(get_the_ID(),$sticky)) $print_it=true;
else $print_it=false;

1 个答案:

答案 0 :(得分:1)

首先,我会使用$page_number = (get_query_var('paged')) ? get_query_var('paged') : 1来建立当前页面。

我对你的嵌套if语句有点困惑(不是最容易阅读的!!)但我认为这个函数更易于阅读和维护:

$print_it=print_it();

function print_it(){
 if($page_number<=1){
   if (!in_array(get_the_ID(),$sticky){
    return true;
   }
 return false;
 }
}