Запрос WP: Как проверить наличие липких сообщений перед назначением сообщений на страницу?
Есть ли какой-нибудь способ "проверить", есть ли липкие сообщения?
Если есть липкий пост, я бы хотел использовать 'posts_per_page' => '3'
, а если нет, используйте 4
, так как я нахожу, что липкие сообщения добавляются к "сообщениям на странице", что нарушает макет:(
У меня есть запрос WP_ следующим образом:
$article_args = array(
'post_type' => 'post',
'posts_per_page' => '3',
'post_status' => 'publish',
'order' => 'DESC'
);
$article_query = new WP_Query($article_args);
Возможно ли это, может быть, проверить это перед массивом args
и использовать соответствующий номер?
Да, я рассмотрел ignore_sticky_posts
, но я все еще хочу включить их.
Любые советы от кто-то, кто знает PHP лучше меня?!:/
Спасибо. Мартин.
2 answers
Прикрепленный пост сохраняется как опция, которую вы можете проверить с помощью $sticky = get_option( 'sticky_posts' );
. Это возвращает массив с идентификаторами сообщений. Вы можете просто проверить, является ли опция пустой или нет, а затем соответствующим образом изменить свои аргументы
Вы можете сделать что-то вроде этого
$sticky = get_option( 'sticky_posts' );
if( $sticky ) {
$article_args = array(
'post_type' => 'post',
'posts_per_page' => '3',
'post_status' => 'publish',
'order' => 'DESC'
);
}else{
$article_args = array(
'post_type' => 'post',
'posts_per_page' => '4',
'post_status' => 'publish',
'order' => 'DESC'
);
}
$article_query = new WP_Query($article_args);
К сожалению, нет, но, вероятно, есть другой способ достичь того, к чему вы стремитесь.
Вы можете просто взять последнюю заметку и сначала показать ее, а затем, во втором запросе, захватить остальные сообщения (или следующие 3, в любом случае).
Таким образом, вы получите 1 липкий (если он существует) и 3 обычных на страницу.
Мы не знаем вашей конечной цели здесь, так что это может быть непригодно для вас.