У меня есть веб-сайт в разработке, и клиент хотел новости и страницу F.A.Q. Не проблема! Он хотел иметь возможность добавлять свои собственные сообщения (как в новости, так и в FAQ. Опять же, не проблема! Последнее, что он просил, это то, что он мог управлять количеством отображаемых сообщений и типом отображаемых сообщений. Теперь это то, где я запутался. Я уже создал систему, в которой клиент может выбрать категорию для показа (для этого я использую AwesomeBuilder). Теперь у нас есть три различных типа сообщений: Обычный, Обычный + Липкий, и Sticky. Если клиент выберет опцию отображения только обычных сообщений, я могу отключить прикрепленные сообщения с помощью post__not_in. Однако, если клиент выбирает либо Regular + Sticky, либо Sticky, функция количества больше не работает.
Допустим, клиент выбирает максимум 10 сообщений. В обычной категории это достигает максимума в 10 и все. На липких постах, однако, этого не происходит, он просто показывает все липкие посты, поскольку наклейкам всегда нужно оставаться на вершине. Обычный + 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 );
}
пс. я знаю ЭТОТ Это примерно тот же вопрос, но на него еще не ответили.
Убедитесь, что переменная $ number получает 10, а также убедитесь, что вы используете $ args в функциях query_posts, например query_posts ($ args);
https://codex.wordpress.org/Sticky_Posts
Вы можете сослаться на это «Показать только первое липкое сообщение, если никто не вернет последнее опубликованное сообщение:» по ссылке.