Как я могу удалить запрос версии вар из функции включения jquery в WordPress - PullRequest
2 голосов
/ 10 марта 2011

Здесь есть несколько похожих вопросов, но ни один из них, похоже, не касается моего конкретного случая, по крайней мере, я не нашел.Вот код, который я использую, чтобы включить последнюю версию jquery в мою тему WP, а также чтобы убедиться, что она появляется в нижнем колонтитуле.

function current_jquery($version) {
    global $wp_scripts;
    if ( ( version_compare($version, $wp_scripts -> registered[jquery] -> ver) == 1 ) && !is_admin() ) {
        wp_deregister_script('jquery');
        wp_register_script('jquery',
            'http://ajax.googleapis.com/ajax/libs/jquery/'.$version.'/jquery.min.js',
            false, $version, true);
    }
}
add_action('wp_head', current_jquery('1.5.1'));

Затем я использую wp_enqueue_script("jquery"); в header.php, и он работает, за исключением того, что я получаю jquery include, который заканчивается на «jquery.min.js? ver = 1.5.1», и я хочу избавиться от части запроса.

Я проверил функцию wp_register_script и из чегоЯ прочитал, чтобы избавиться от запроса, мне нужно просто заменить 2-ую из последней переменной пустой строкой ''.Однако, когда я это делаю, вместо этого я получаю версию WordPress по умолчанию, то есть «jquery.min.js? Ver = 3.0.1» (или что бы то ни было в то время).

Потому чтоЯ не на 100% понимаю все, что здесь происходит (между current_jquery, add_action и wp_enqueue_script). Я даже не уверен, с чего начать (получает ли $ version присвоенное значение WP-версии как-то?) Все, что я знаю, это то, что wp_register_script не 'Кажется, что он реагирует на ввод версии так, как она задокументирована.Что мне здесь не хватает?

Я должен добавить, что я хотел бы избежать использования строковых операций (split, reg_replace, что у вас) для выходной строки "src", чтобы сделать это, потому что должен бытьлучший способ.

1 Ответ

6 голосов
/ 10 марта 2011

В комментариях выше wp_register_script предлагается передать NULL для отключения строки запроса версии:

 * @param string|bool $ver (optional) Script version (used for cache busting), set to NULL to disable

и похоже, что его явно сравнивают с null в WP_Scripts:

 if ( null === $this->registered[$handle]->ver ) // Line 93 in 3.0

... так что я бы передал null, а не пустую строку, и посмотрю, как у вас получится.

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