Intereting Posts
Внедрение входа Oauth2, Неустранимая ошибка: Class 'Google_Service' не найден Как совместить разделение слова в тексте? создать определенную папку для загрузки на основе роли пользователя и ограничить доступ к другой папке в laravel elfinder PHP / mySQL – регулярный пересчет контрольных значений, поскольку новые пользователи представляют свои данные Запретить доступ к файлу ajax с помощью htaccess Laravel 5.1: класс html не существует Как проверить роль пользователя в symfony2 для URL-адресов, которые не подпадают под определенные шаблоны security.yml? Отобразить способы доставки для интерфейса, как в панели администратора? Группы регулярных выражений PHP фиксируют Получить номер недели между двумя датами в php Установите локаль на лету в laravel4 Модуль Magento для изменения диаграммы приборной панели восклицательный знак появляется в теле сообщения электронной почты, используя phpmailer Простая форма PHP: Приложение к электронной почте (код гольфа) PHP: обновление нескольких полей MySQL в одном запросе

Проблемы WordPress с qTranslate и AJAX

Я использую wordpress с qTranslate и настраиваемой темой. Тема сопровождается поиском автозаполнения. Моя проблема в том, что заголовки сообщений / страниц не переведены. Я проверил stackoverflow / google и, похоже, возникла проблема с запросами AJAX и qTranslate. Вот почему я добавил к параметру url моего php-файла следующее:

?lang='.qtrans_getLanguage() 

Я проверил консоль, и параметр передан правильно (для каждого языка) в файл javascript. Теперь мне нужно прочитать этот параметр url и вернуть его в свой php-файл (я тестировал js-файл с добавлением lang=en в url при использовании $.getJSON и он работал, но мне нужен переданный язык).

PHP

 <?php add_action( 'init', 'myprefix_autocomplete_init' ); function myprefix_autocomplete_init() { // Register our jQuery UI style and our custom javascript file wp_register_script( 'my_acsearch', get_template_directory_uri() . '/nectar/assets/functions/ajax-search/wpss-search-suggest.js?lang='.qtrans_getLanguage(), array('jquery','jquery-ui-autocomplete'),null,true); wp_localize_script( 'my_acsearch', 'MyAcSearch', array('url' => admin_url( 'admin-ajax.php' ))); // Function to fire whenever search form is displayed add_action( 'get_search_form', 'myprefix_autocomplete_search_form' ); // Functions to deal with the AJAX request - one for logged in users, the other for non-logged in users. add_action( 'wp_ajax_myprefix_autocompletesearch', 'myprefix_autocomplete_suggestions' ); add_action( 'wp_ajax_nopriv_myprefix_autocompletesearch', 'myprefix_autocomplete_suggestions' ); } function myprefix_autocomplete_search_form(){ wp_enqueue_script( 'my_acsearch' ); } add_action( 'wp_ajax_{action}', 'my_hooked_function' ); add_action( 'wp_ajax_nopriv_{action}', 'my_hooked_function' ); function myprefix_autocomplete_suggestions(){ $search_term = $_REQUEST['term']; $search_term = apply_filters('get_search_query', $search_term); $search_array = array( 's'=> $search_term, 'showposts' => 6, 'post_type' => 'any', 'post_status' => 'publish', 'post_password' => '', 'suppress_filters' => true ); $query = http_build_query($search_array); $posts = get_posts( $query ); // Initialise suggestions array $suggestions=array(); global $post; foreach ($posts as $post): setup_postdata($post); $suggestion['lang'] = $_GET['lang']; $suggestion['label'] = esc_html(qtrans_use(qtrans_getLanguage(), $post->post_title, true)); $suggestion['link'] = get_permalink(); $suggestion['image'] = (has_post_thumbnail( $post->ID )) ? get_the_post_thumbnail($post->ID, 'thumbnail', array('title' => '')) : '<i class="icon-salient-pencil"></i>' ; if(get_post_type($post->ID) == 'post'){ $suggestion['post_type'] = __('Blog Post',NECTAR_THEME_NAME); } else if(get_post_type($post->ID) == 'page'){ $suggestion['post_type'] = __('Page',NECTAR_THEME_NAME); } else if(get_post_type($post->ID) == 'portfolio'){ $suggestion['post_type'] = __('Portfolio Item',NECTAR_THEME_NAME); //show custom thumbnail if in use $custom_thumbnail = get_post_meta($post->ID, '_nectar_portfolio_custom_thumbnail', true); if(!empty($custom_thumbnail) ){ $attachment_id = pn_get_attachment_id_from_url($custom_thumbnail); $suggestion['image'] = wp_get_attachment_image($attachment_id,'portfolio-widget'); } } else if(get_post_type($post->ID) == 'product'){ $suggestion['post_type'] = __('Product',NECTAR_THEME_NAME); } // Add suggestion to suggestions array $suggestions[]= $suggestion; endforeach; // JSON encode and echo $response = $_GET["callback"] . "(" . json_encode($suggestions) . ")"; echo $response; // Don't forget to exit! exit; } ?> 

JS

 jQuery(document).ready(function ($){ var acs_action = 'myprefix_autocompletesearch'; $("#s").autocomplete({ delay: 50, position: {of: "#search-outer #search .container" }, appendTo: $("#search-box"), source: function(req, response){ $.getJSON(MyAcSearch.url+'?callback=?&action='+acs_action, req, response); }, select: function(event, ui) { window.location.href=ui.item.link; }, minLength: 2, }).data( "ui-autocomplete" )._renderItem = function( ul, item ) { return $( "<li>" ) .append( "<a>" + item.image + "<span class='title'>" + item.label + "</span><br/><span class='desc'>" + item.post_type + "</span> </a>" ) .appendTo( ul ); }; }); 

Надеюсь, кто-то может помочь мне с этим