Wordpress: Jquery для темы и админ конфликта - PullRequest
0 голосов
/ 02 марта 2012

Может быть, есть очень простое решение, но я столкнулся с проблемой, чтобы решить эту проблему как новую для всех.

Я ставлю jquery и другой скрипт из php-файла моей функции темы. Ниже мой код

function mediaplus_scripts() {
        if (!is_admin()) {
            wp_deregister_script( 'jquery' );
            wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js');
            wp_enqueue_script( 'jquery' );
        }

        wp_enqueue_script( 'theme-js', get_template_directory_uri() . '/js/theme.js', 'jquery' );

        wp_enqueue_script( 'listgrid-cookie', get_template_directory_uri() . '/js/list-grid/cookie.js', 'jquery' );

        wp_enqueue_script( 'listgrid', get_template_directory_uri() . '/js/list-grid/listgrid.js', 'jquery' );

        wp_enqueue_script( 'slider-easing', get_template_directory_uri() . '/js/jquery.easing.1.3.js', 'jquery' );

        wp_enqueue_script( 'home-slider', get_template_directory_uri() . '/js/slides.min.jquery.js', 'jquery' );

        wp_enqueue_script( 'home-ajax-content', get_template_directory_uri() . '/js/dynamic-page/dynamicpage.js', 'jquery' );

        /* wp_enqueue_script( 'mediaplus-script', get_template_directory_uri() . '/js/functions.js', 'jquery' ); */ 

    } 
    add_action('init', 'mediaplus_scripts');

    function add_admin_scripts() {

        wp_deregister_script( 'jquery' );
        wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js');
        wp_enqueue_script( 'jquery' );

        wp_enqueue_script( 'mediaplus_options', 'http://cdn.jquerytools.org/1.2.6/jquery.tools.min.js', 'jquery' );

    }
    add_action('init', 'add_admin_scripts');

Проблема с кодом заключается в том, что функция постановки администратора конфликтует с функцией темы, в результате отключается весь javascript в теме, работает только администратор jquery

Есть ли способ решить эту проблему?

Ответы [ 2 ]

1 голос
/ 05 сентября 2012

Решение вашей проблемы в add_action.

add_action (' wp_enqueue_scripts ', 'mediaplus_scripts');

вместо

add_action ('init', 'mediaplus_scripts');

wp_enqueue_scripts используется для внешнего интерфейса и admin_enqueue_scripts для администратора.Действие init вызвано для обоих.

У меня была та же проблема, и спасибо Джону за ссылку;)

1 голос
/ 02 марта 2012

Я бы сказал, что у вас проблемы, потому что вы отменяете регистрацию библиотеки jQuery по умолчанию, с которой поставляется WordPress (которая использует режим noConflict), а затем заменяете ее версией Google CDN (которая не использует режим noConflict)1001 *

Вам следует взглянуть на этот пост на wp-tuts, который действительно полезен для понимания функций wp_enqueue и рекомендаций по их использованию: http://wp.tutsplus.com/articles/how-to-include-javascript-and-css-in-your-wordpress-themes-and-plugins/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...