Блок WP 5.8 "Цикл запросов": где разместить пользовательский запрос?


В недавнем wordpress.org в статье, описывающей новый блок цикла запросов, говорится, что опция "Наследовать запрос из шаблона" позволяет "настроить запрос, на который опирается цикл... В противном случае WordPress будет полагаться на шаблон, используемый для определения того, какие сообщения появляются".

Похоже, что никаких дальнейших указаний по этому поводу нет. Что это значит и где он находит запрос для этих сообщений?

Если у меня определена пользовательская таксономия, как буду ли я использовать эту таксономию, а не стандартные категории?

Author: Rickmakeitquick, 2021-08-04

1 answers

Изучение render_block_core_post_template() мы видим, что это зовет build_query_vars_from_query_block() ( ранее названный construct_wp_query_args) чтобы настроить аргументы запроса WP_Query из свойств блока запроса.

Оттуда я не вижу поддержки пользовательских таксономий для вторичных запрос... пока!

Идея обхода: Для цикла запроса:

enter image description here

Добавьте ключевое слово поиска для использования пользовательских таксономий, например :query-motor-electric:

enter image description here

И напишите плагин, чтобы справиться с этим:

// Replace :query-motor-electric search keyword for a custom taxonomy query.
add_action( 'pre_get_posts', function( \WP_Query $q ) {
    if ( $q->is_search() && ':query-motor-electric' === trim( $q->get( 's' ) ) ) {
        // Custom taxonomy query.
        $tax_query = array(
            array(
                'taxonomy' => 'motor',
                'field'    => 'slug',
                'terms'    => 'electric',
            ),
        );
        $q->set( 'tax_query', $tax_query );

        // Clear search, unset search query variable or use a stop-word filter.
        $q->set( 's', '' );
    }
} );

Или расширьте это для поддержки динамического ключевого слова.

Пример Блочный код для цикла запроса:

<!-- wp:query {"queryId":1,"query":{"perPage":3,"pages":1,"offset":0,"postType":"post","categoryIds":[],"tagIds":[],"order":"desc","orderBy":"date","author":"","search":":query-motor-electric","sticky":""}} -->
<div class="wp-block-query"><!-- wp:post-template -->
<!-- wp:post-title /-->

<!-- wp:post-date /-->

<!-- wp:post-excerpt /-->
<!-- /wp:post-template --></div>
<!-- /wp:query -->

Где соответствующая часть поиска:

<!-- wp:query {...,"query":{...,"search":":query-motor-electric"}} -->
  4
Author: birgire, 2021-08-05 12:53:59