Блок WP 5.8 "Цикл запросов": где разместить пользовательский запрос?
В недавнем wordpress.org в статье, описывающей новый блок цикла запросов, говорится, что опция "Наследовать запрос из шаблона" позволяет "настроить запрос, на который опирается цикл... В противном случае WordPress будет полагаться на шаблон, используемый для определения того, какие сообщения появляются".
Похоже, что никаких дальнейших указаний по этому поводу нет. Что это значит и где он находит запрос для этих сообщений?
Если у меня определена пользовательская таксономия, как буду ли я использовать эту таксономию, а не стандартные категории?
1 answers
Изучение render_block_core_post_template()
мы видим, что это зовет build_query_vars_from_query_block()
( ранее названный construct_wp_query_args
) чтобы настроить аргументы запроса WP_Query
из свойств блока запроса.
Оттуда я не вижу поддержки пользовательских таксономий для вторичных запрос... пока!
Идея обхода: Для цикла запроса:
Добавьте ключевое слово поиска для использования пользовательских таксономий, например :query-motor-electric
:
И напишите плагин, чтобы справиться с этим:
// 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"}} -->