不确定这是否是处理此问题的最佳方式,但我需要从循环中删除粘贴帖子,我仍然需要粘贴显示在第一页上,但由于我使用了无穷无尽的列表,我没有不希望它出现两次。这是有效的,但是编辑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;
答案 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;
}
}