Удалить WordPress липкие сообщения из цикла - PullRequest
0 голосов
/ 27 июля 2011

Не уверен, что это лучший способ справиться с этим, но мне нужно было удалить сообщения из стикера из цикла, мне все еще нужно, чтобы стикер отображался на первой странице, но поскольку я использую бесконечный список, я не не хочу, чтобы он появился дважды. Это работает, но кажется немного хакерским, чтобы отредактировать файл 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($page_number=='' || !in_array(get_the_ID(),$sticky)) $print_it=true;
else $print_it=false;

1 Ответ

1 голос
/ 28 июля 2011

Во-первых, я бы использовал $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;
 }
}
...