2014-09-29 4 views
0

У меня есть сайт в разработке, и клиенту нужна новость и страница F.A.Q. Не проблема! Он хотел иметь возможность добавлять свои собственные сообщения (как в новостях, так и в часто задаваемых вопросах. Опять же, это не проблема! Последнее, что он просил, было то, что он мог управлять количеством сообщений, показывающих и какие должности, которые были показаны. это то, где я запутался. Я уже создал систему, в которой клиент может выбрать категорию для показа. (Я использую AwesomeBuilder для этого). Теперь у нас есть три разных типа сообщений. Обычный, Обычный + Липкий, и Если клиент выбирает вариант, чтобы показывать только обычные сообщения, я могу отключить липкие сообщения, используя post__not_in. Однако, если клиент выбирает либо обычный + липкий, либо липкий, функция количества больше не работает.Ограничить количество липких сообщений в wordpress

Скажем, клиент выбирает максимальное количество из 10 сообщений. В обычной категории это получает maxed до 10, и все. На липких сообщениях, однако, этого не происходит, он просто показывает все липкие сообщения si nce stickies говорят, чтобы всегда оставаться на вершине. 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); 
} 

пс. Я знаю THIS - о том же вопрос, но он еще не ответил.

ответ

0

Убедитесь, что переменная $ number получает 10, а также убедитесь, что вы используете $ args в функциях query_posts, таких как query_posts ($ args);

+0

Число $ задается пользователем с ползунком. Он получает правильную переменную, это проверяется тем фактом, что «обычные» сообщения работают нормально. –

+0

попробуйте использовать show_posts или numberofposts вместо –

+0

$ args = array ( 'showposts' => $ number ); –

0

https://codex.wordpress.org/Sticky_Posts

Вы можете обратиться к этому «Показать только первый липким пост, если никто не вернет последнее сообщение опубликовано:» по ссылке.

Смежные вопросы