Как получить аргументы WP_Query текущей страницы?

5 июн. 2020 г., 18:21:07
Просмотры: 16.1K
Голосов: 3

Контекст

Я разрабатываю плагин, который отображает геолоцированные записи на карте Leaflet. Мне нужно добавить параметр шорткода, чтобы показывать на карте только маркеры из текущего цикла записей. Эта функция была бы особенно полезна на странице результатов поиска!

Вопрос

Есть ли способ получить аргументы WP_Query текущей страницы? Мне нужны эти аргументы, чтобы создать новый WP_Query и добавить дополнительные параметры для фильтрации только геолоцированных записей.

Я не уверен, возможно ли это вообще, так как обычно создаю объекты WP_Query с нуля.

Спасибо!

0
Все ответы на вопрос 3
1

Пробовали ли вы использовать $wp_query?

global $wp_query;
var_dump($wp_query->query_vars);

Для получения отдельной переменной можно использовать get_query_var

Или можно просто вывести содержимое $_POST, var_dump( $_POST );

Либо попробовать var_dump( $GLOBALS['post'] );

5 июн. 2020 г. 20:51:14
Комментарии

$wp_query->query_vars — это именно то, что я просил :) Спасибо!

Camille V. Camille V.
8 июн. 2020 г. 17:45:31
1

Я считаю, что вы можете использовать rewind_posts() для получения записей из текущего запроса, а затем вносить изменения:

https://developer.wordpress.org/reference/functions/rewind_posts/

В этой статье хорошо объясняется rewind_posts(), с отличиями от wp_reset_postdata() и wp_reset_query(): https://digwp.com/2011/09/3-ways-to-reset-the-wordpress-loop/

5 июн. 2020 г. 19:36:56
Комментарии

Спасибо за ваше время, но это не совсем то, что я искал (я искал текущие аргументы WP_query)

Camille V. Camille V.
8 июн. 2020 г. 17:46:59
0

Другой альтернативой является получение значения непосредственно из аргументов query. Таким образом вы можете получить доступ ко всем $args.

$query = new WP_Query( $args );

// номер страницы
$paged_arg = $query->query['paged'];
19 окт. 2021 г. 18:39:02