Wordpress WP_Query массив результатов - PullRequest
0 голосов
/ 16 января 2020

Я пытаюсь сделать мою домашнюю страницу WordPress, чтобы показать только 2 поста. с другим показывающим элементом. один из них поплавок слева, а другой поплавок справа. на нативном php легко получить результат в виде массива. и напечатайте их с помощью $result[0] и $result[1].

Но на WordPress idk это сделать. Может быть, вы, ребята, можете помочь мне вести любую документацию. как wp_query или et c. и не забудьте дать мне пример строки кода

* извините, мой engli sh был настолько плох. Я надеюсь, что вы, ребята, прочитали это и ответили на это.

Моя текущая строка кода:

$blogposts = new WP_Query(array(
        'post_type' => 'post',
        'posts_per_page' => 2,
    ));
while ($blogposts->have_posts()) {
        $blogposts->the_post();

}

1 Ответ

0 голосов
/ 16 января 2020

Если вам удобнее с массивами, вы всегда можете использовать функцию get_posts(), которая принимает аргументы (почти) точно так же, как класс WP_Query() , get_posts() на самом деле также использует WP_Query.

Тем не менее, ваш код будет не так сложно изменить с помощью "native PHP", как вы упомянули. Это просто while l oop вместо foreach l oop, оба из которых являются похожими управляющими структурами.

Все, что у вас есть Для этого нужно добавить переменную счетчика и увеличивать ее после каждого прохода, используя оператор increment : ++;

Вот небольшой пример кода для вас:

$args = array(
    'posts_per_page' => 2,
);

$query = new WP_Query( $args );

if( $query->have_posts() ){
    $count = 0; // Start a Counter

    while( $query->have_posts() ){
        $query->the_post();

        printf( '<div class="post float-%s">', ($count++ % 2 == 0) ? 'left' : 'right' ); // If counter is odd: "left", even: "right"
            printf( '<h4 class="post-title">%s</h4>', get_the_title() );
            the_content();
        echo '</div>';
    }
} else {
    echo 'No Posts Found.';
}

Пара вещей:

  • Я переместил массив $args в его собственную переменную. Некоторые запросы могут быть довольно сложными, их назначение в качестве назначенной переменной может улучшить долговременное сопровождение.

  • Вам также не нужен аргумент post_type, если вы просто хотите post потому что это значение по умолчанию.

  • Я добавил предложение if, поэтому, если ваши сообщения когда-либо исчезнут или вы переместили этот код, произойдет возврат к "ничего не найдено" ".

  • Я использовал немного сложный Тернарный оператор в почтовом классе. Я увеличиваю его там, чтобы нам не нужна была еще одна строка для увеличения $count позже, и это устраняет необходимость в многострочном «if / else» для определения left или right.

  • Кроме того, вы не предоставили структуру разметки, поэтому я использовал функции the_ и get_the_ , если вы не знаете о разнице.

...