Запрос 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 лучше меня?!:/

Спасибо. Мартин.

Author: Martin Di Martino-Marriott, 2014-09-17

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);
 0
Author: Pieter Goosen, 2014-09-19 06:24:02

К сожалению, нет, но, вероятно, есть другой способ достичь того, к чему вы стремитесь.

Вы можете просто взять последнюю заметку и сначала показать ее, а затем, во втором запросе, захватить остальные сообщения (или следующие 3, в любом случае).

Таким образом, вы получите 1 липкий (если он существует) и 3 обычных на страницу.

Мы не знаем вашей конечной цели здесь, так что это может быть непригодно для вас.

 0
Author: Mike, 2014-09-17 14:59:25