Тема: Як підключаються файли в wordpress

Коли я писав код в файлі мого плагіну то він працював (наприклад клас WP_Query з wordpress), але я створив новий файл, в якому я опрацьовую ajax запити, в цьому файлі звісно класу WP_Query немає. Як мені підключити все те, що мені доступно в файлі мого плагіну в інший файл ?

я створив плагін myplagin
myplagin.php - тут працює клас WP_Query
за допомогою shortcode вставляю форму в сторінку яка має відправити запит в showPosts.php
в файлі showPosts.php клас WP_Query не працює (Fatal error: Class 'WP_Query' not found in "шлях" on line 25)

в myplagin.php немає ніяких include чи чогось іншого, я сам не знаю як туди щось підключається, пробував знайти статтю, але не знайшов

Також мені цікаво дізнатися як створюються Hook, Filter (не у wordpress, а в загальному), наскільки я розумію це щось штучне, сама мова не надає таких можливостей, я знайшов деякі статті, але якщо ви знаєте якусь цікаву статтю про створення Hook, Filter мовою php то скиньте посилання будь ласка.

Подякували: 221VOLT1

2

Re: Як підключаються файли в wordpress

Річ у тому що Hook та Filter це об'єкти самого WP.
Файли підключаються як завжди - через require_once наприклад.

Подякували: Betterthanyou, 221VOLT2

3

Re: Як підключаються файли в wordpress

Я вже розібрався правильно підключити файл який буде обробляти запити (по технології AJAX), це не так то й легко.

1)Спочатку потрібно створити сам файл (PHP) який буде обробляти запити
2)Зробити функцію (чи щось інше) яка буде виводити в потрібний момент (JS) скрипт, а цей скрипт має надсилати запити.
Наприклад. В моєму випадку коли спрацьовує хук shortcode, я виводжу (JS) скрипт, в скрипті є функція яка буде викликана написанням кнопки. (надіюсь ви зрозуміли)
3)У (JS) відсиланні запиту ви маєте вказувати завжди файл admin-ajax.php
Наприклад

var xhttp = new XMLHttpRequest;
...
xhttp.open('POST', <?='"' .admin_url( 'admin-ajax.php' ). '"'?>, true);

Обов'язково вкажіть назву "дії" коли будете відправляти запаит
Наприклад

var xhttp = new XMLHttpRequest;
...
xhttp.send('action=назваДії&вашЗапит);

4)Пишемо "дії"

add_action( 'wp_ajax_вашаДія', 'назваФункціїЗворотньогоВиклику' );
add_action( 'wp_ajax_nopriv_вашаДія', 'назваФункціїЗворотньогоВиклику' );

5)За допомогою require_once підключаємо файл який опрацьовує запити, (або пишемо повністю код у функції зворотнього виклику), і на завершення викликаємо wp_die();

function concerts_showPosts()
{
    require_once(WD_CONCERTS_DIR . '/php/showPosts.php');
    wp_die();
}