Intereting Posts
Как я могу улучшить обработку разрыва строки в редакторе WYSIWYG? Определите, является ли страница страницей сообщений hook wp_generate_attachment_metadata не читает все вложения Как вставлять скрипты на пользовательские сообщения, добавлять / редактировать страницы? wp_redirect зависает, но возвращает true Предыдущие / следующие сообщения, отображающие неправильную категорию, чем желательно Показаны текущие термины таксономии Как заставить другое веб-приложение войти в систему с помощью проверки подлинности WordPress? Простой скрипт, позволяющий сортировать пользовательские сообщения в admin? Настройка по умолчанию «Тематическое местоположение» при создании меню Нет данных Офлайн-приложение для WordPress Получить имена и пути из unzip_file () Почему get_theme_mod возвращает пустое (или значение по умолчанию), но get_option возвращает сохраненное значение? Удалить настройки, если тема удалена?

Автозаполнение jQuery в WordPress

Я использую этот сценарий автозаполнения https://github.com/agarzola/jQueryAutocompletePlugin в моей теме WordPress. У меня есть форма на странице, где пользователь может указать некоторые теги. На самом деле, это код, который я использую, и он работает хорошо.

<script> jQuery(function() { var data = '<?php global $wpdb; $search_tags = $wpdb-> get_results("SELECT name FROM $wpdb->terms"); foreach ($search_tags as $mytag){ echo $mytag->name. " "; } ?>'.split(" "); $("#tags").autocomplete(data,{multiple: true}); }); </script> 

Теперь проблема заключается в том, что такой тип запроса помещает все теги внутри массива при загрузке страницы. Это может работать, если у вас есть 100 тегов, но у нас есть намного больше. Сценарий также имеет автозаполнение от удаленного сценария, как показано ниже:

 <script type="text/javascript"> jQuery().ready(function() { $("#tags").autocomplete("<?php bloginfo('template_url'); ?>/get-tags.php", { width: 260, matchContains: true, selectFirst: false, multiple: true }); }); </script> 

Это должно активировать автозаполнение по типу пользователя. Это код для get-tags.php (я помещаю файл в свой корень темы)

 <?php include_once('../../../wp-config.php'); include_once('../../../wp-load.php'); include_once('../../../wp-includes/wp-db.php'); global $wpdb; $search_tags = $wpdb->get_results("SELECT name FROM $wpdb->terms"); foreach ($search_tags as $mytag) { echo $mytag->name. " "; } ?> 

Я пробовал все и обыскал в Интернете в течение нескольких часов, но я не нашел решения о том, как вызвать get-tags.php, он дает мне внутреннюю ошибку 500, и автозаполнение больше не работает. благодаря

не включайте WP как это. вместо этого используйте $_GET :

 ... $("#tags").autocomplete("<?php echo add_query_arg('get_my', 'terms', home_url()); ?>", ... 

функции theme.php:

 add_action('template_redirect', 'terms_for_autocomplete'); function terms_for_autocomplete(){ if(isset($_GET['get_my']) && $_GET['get_my'] == 'terms'): $terms = &get_terms(get_taxonomies()); foreach ($terms as $term) echo "{$term->name}|{$term->name} ({$term->count} results)\n"; die(); endif; }