Intereting Posts
Как заставить шаблон категории отображать полные сообщения вместо частичных сообщений? Система переадресации WordPress Можно ли просмотреть предыдущую ревизию? Как генерировать метафайлы «og: image» для обмена Facebook, когда изображение в сообщении не отображается? Buddypress и WordPress на разных поддоменах с одной и той же базой данных? Переадресация страниц в архив Не работает paginate_comments_links () Доступ к форме через JS и отправку в MySQL Редактор настраиваемого типа сообщений с динамическими выделениями, один снижающийся вниз, забрасывающий вторую секунду, не работает Как читать файлы cookie сторонних производителей для доступа к страницам, защищенным паролем Какой мини-фильтр используется для использования ядра WP? Как использовать домен .edu с WordPress? Добавить JavaScript в admin в пользовательском плагине WordPress Multisite с доменами cPanel Addon и SSL Как я могу назначить голосование по комментариям?

Как загрузить плагин при вызове Ajax?

Я задал этот вопрос: как использовать короткие коды на боковой панели виджета при выполнении вызова ajax? , без ответов. Теперь я хочу задать более конкретный вопрос.

Проблема заключается в том, что этот код не обрабатывается плагином. Как если бы я заменил "audioFile.ogg" например, "audioFile.ogg" он работает отлично.

Поэтому я предполагаю, что могу заставить его работать, если плагин загружен раньше. Но я не знаю, как это сделать (может быть, я ошибаюсь).

Любое предложение?

Это код в functions.php :

 add_action( 'init', function() { ps_register_shortcode_ajax( 'ps_get_slider', '8' ); } ); function ps_register_shortcode_ajax( $callable, $action ) { if(isset($_POST['href'])) { $pageId = preg_match( '/^http:\/\/.+\/\?page_id=\d+$/', $_POST['href'] ) ? substr( strrchr( $_POST['href'], '=' ), 1 ) : '8' ; if ( empty( $pageId ) || $pageId != $action ) return; call_user_func( $callable ); } } function ps_get_slider() { //require_once('../wp-load.php'); Nothing changes apply_filters('ps_register_shortcode_ajax', 'slider_widget_init'); if ( dynamic_sidebar('Slider') ) : else : endif; //echo do_shortcode( '[promoslider post_type="news" height="300px" width="70%" numberposts="5" start_on="first" display_title="fancy" display_excerpt="excerpt" pause_on_hover="pause"]' ); get_template_part( 'home', 'ajax' ); die(); } 

Боковая панель слайдера загружается только на страницах home и home-ajax (id = 8). Он работает прямо на домашней странице, но не на домашней странице ajax.

Вы не используете ajax правильно. Почему вы добавляете функцию обратного вызова ajax в действие init? Вам необходимо прочитать http://codex.wordpress.org/AJAX_in_Plugins

Прикрепите свою функцию обратного вызова ajax к wp_ajax_your_defined_action следующим образом:

add_action( 'wp_ajax_your_defined_action', 'your_callbck_function' );

Для этого вам нужно использовать wp-admin / admin-ajax.php в качестве вашего URL-адреса ajax, и вам нужно опубликовать your_defined_action для действий.

  $.ajax({ type: 'POST', url: ajaxurl, //This is defined only on admin side data: { action: 'your_defined_action', some_var: 'Some Var Content' }, success: function (response) { alert(response); } });