WP_Query детектор

Avatar

Від AlmostWPdev 01-12-2024 18:22:53

Новенький · 2 повідомлень

Вітаю!

Підкажіть будь ласка яким чином можна з адмінки виводити списки усіх query з будь якої сторінки під конкретний тип допису?

Тобто у нас є single page, на ній присутні 3 кастомних query, один для job, другий для cars, третій для roads.

Потрібно з адмінки получити список query, з подальшим внесенням змін, щоб для прикладу міняти сортування елементів в конкретній query і тд.

Питання яким чином знаходити список query і як дальше з ними можна працювати з адмінки?

Avatar

Від AzzePis 01-12-2024 18:56:52

Administrator · 1,026 повідомлень

Вітаю. Я так думаю, вам немає потреби шукати, що і де запускається.
Вам треба хук https://developer.wordpress.org/reference/hooks/pre_get_posts/ , в якому змінити параметри квері, за умови, що цей квері запускається на якійсь певній сторінці, на зразок

function hwl_home_pagesize( $query ) {
if ( ! is_admin() && $query->is_main_query() && is_page( 'single-page' ) ) {
// Змінити кількість записів в квері на  50 
$query->set( 'posts_per_page', 50 );
return;
}
}
add_action( 'pre_get_posts', 'hwl_home_pagesize', 1 );

Український хостинг для WordPress | Шаблони та плагіни для WordPress українською
Тут можна купити домен за найкращою ціною

Avatar

Від AzzePis 01-12-2024 18:58:47

Administrator · 1,026 повідомлень

там ще є багато прикладів https://developer.wordpress.org/reference/hooks/pre_get_posts/#user-contributed-notes


Український хостинг для WordPress | Шаблони та плагіни для WordPress українською
Тут можна купити домен за найкращою ціною

Avatar

Від AlmostWPdev 01-12-2024 21:46:05

Новенький · 2 повідомлень

Дуже вдячний за інформацію.

Але наскільки я розумію це спрацює тільки з main query, а от з кастомними запитами як от loop grid elementor, так не получится?

Ідея створити "міні фільтр" для будь-якого типу допису, на сторінці може бути декілька кастомних запитів а також main запит, потрібно їх якось розбити, щоб з адмінки зробити налаштування де наш фільтр буде працювати з конкретним запитом, ось тут виникає питання як їх можна ідентифікувати? Чи нам потрібно з адмінки симулювати запуск сторінки і таким чином получити список запитів? Мені не хватає досвіду на даний момент як це можна реалізувати.

Ідея:

Адмінка - кастомне поле + потрібний запит з будь якої сторінки, архівні сторінки також і пошук + зберегти

Фронт - шорткод який виводить дані з кастомного поля як чекбокси, при обирані будь якого значення буде фільтрувати конкретний запит який закріплений за ним в адмінці на конкретній сторінці, тобто динамічно буде змінювати показані пости у обраному запиті

В останнє редагував AlmostWPdev (01-12-2024 21:48:40)

Avatar

Від AzzePis 03-12-2024 23:15:23

Administrator · 1,026 повідомлень

pre_get_posts спрацьовує для всіх query, просто приберіть умову $query->is_main_query() з мого приклада, і функція працюватиме для усіх запитів на сторінці single-page


Український хостинг для WordPress | Шаблони та плагіни для WordPress українською
Тут можна купити домен за найкращою ціною