Intereting Posts
Как отправить почту подписчикам с помощью wp_mail Разный баннер для разных разделов Можно ли использовать $ _SERVER ? Предложение WP_Query OR для tax_query и ключевых слов Может ли пользователь № 1 (первоначальный пользователь) быть удален без вреда? Пользовательские постоянные ссылки с неработающим значением мета. Зачем? Как изменить / изменить the_post_thumbnail (); html-выход? Пользовательский виджет с использованием меню выбора get_categories Как мне get_the_postID () для настраиваемого сообщения, которое использует поле повторителя ACF? Страница в качестве ребенка пользовательского типа сообщения Loop не исключает указанную категорию на главной странице Как импортировать CSV в пользовательские поля типа пользовательского сообщения? WP_Query поиск пользовательских сообщений метаданные поля Неустранимая ошибка: вызов функции-члена add_rewrite_tag () для не-объекта в /wp-includes/taxonomy.php в строке 333 Сортировка запроса по автору: 1 автор, затем другие

Класс WP_Query не найден

Идея проста. У меня есть раскрывающееся меню, сгенерированное с помощью get_categories (). Это выводит список категорий в неупорядоченном списке, каждый из которых является собственным элементом li.
Я получаю текстовые значения этих элементов li, когда пользователь нажимает на них, и на основе этого я хочу создать пользовательский wp_query, который возвращает сообщения только из этой категории. Для этого загрузите текстовое значение элемента списка в переменную JS, отправьте ее в файл php для обработки. Этот файл php строит строку следующим образом:

$ff_query = new WP_Query('posts_per_page=2&category_name='.$_POST['JSvariable']); 

… и в идеале должен выполнить его, возвращая информацию из БД. Ошибка, которую я получаю:

«Неустранимая ошибка : класс« WP_Query »не найден в C: \ xampp \ htdocs \ suply \ wp-content \ themes \ suply \ включает \ proc_cat.php в строке 3 "

Вот как выглядят мои 2 файла:

1), который отправляет запрос ajax:

 <script> $(document).ready(function(e) { $("#ddmenu li").on('click', function() { var cValue = $(this).text(); $.post("<?php bloginfo('template_url');?>/includes/proc_cat.php", {name: cValue}, function(cat){ alert(cat); $(".browse-big-slider").append(cat); });//end of post });//end of click });//end of ready </script> 

2) файл, который должен обработать

 if(isset($_POST)){ $name = 'posts_per_page=2&category_name='.$_POST['name']; $ff_query = new WP_Query('posts_per_page=2&category_name='.$_POST['name']); something else, but it won`t reach this part. } 

Что я могу сделать, чтобы сделать эту работу? Или как альтернатива, как я могу создать тип функциональности, который я хочу? (в основном, другой запрос, генерируемый динамически, на основе пользовательского выбора).

Solutions Collecting From Web of "Класс WP_Query не найден"

Это связано с тем, что при непосредственном вызове шаблона темы у вас есть только то, что включено / определено в файле шаблона, а не всю среду WordPress.

Некоторые люди пытаются исправить это, добавив включение wp-заголовка или загрузки и т. Д., Но это невероятно вредно

При выполнении запросов AJAX никогда не вызывайте файл в теме, вместо этого вызывайте WP AJAX API.

С WP AJAX API ваш файл становится простой функцией в functions.php .

Я настоятельно рекомендую вам следовать рекомендациям этой статьи:

http://www.garyc40.com/2010/03/5-tips-for-using-ajax-in-wordpress/#js-global

например, PHP:

 wp_localize_script( 'my-ajax-request', 'MyAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) ) add_action( 'wp_ajax_nopriv_myajax-submit', 'myajax_submit' ); add_action( 'wp_ajax_myajax-submit', 'myajax_submit' ); function myajax_submit() { // get the submitted parameters $postID = $_POST['postID']; // generate the response $response = json_encode( array( 'success' => true ) ); // response output header( "Content-Type: application/json" ); echo $response; // IMPORTANT: don't forget to "exit" exit; } 

JS:

 jQuery.post( // see tip #1 for how we declare global javascript variables MyAjax.ajaxurl, { // here we declare the parameters to send along with the request // this means the following action hooks will be fired: // wp_ajax_nopriv_myajax-submit and wp_ajax_myajax-submit action : 'myajax-submit', // other parameters can be added along with "action" postID : MyAjax.postID }, function( response ) { alert( response ); } );