2014-01-20 2 views
1

Я действительно надеюсь, что это не дублирующий вопрос. Я начинаю свое путешествие в тему создания Wordpress. Я использую Codex как документацию для записи каждого создаваемого компонента. Тем не менее, я натолкнулся на фрагмент, который по какой-то причине я не могу понять.Если пользователь не является администратором, отменяет регистрацию jQuery?

if (!is_admin()) { 
    wp_deregister_script('jquery'); 
    wp_register_script('jquery', ('ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js'), false, null, true); 
    wp_enqueue_script('jquery'); 
} 

Чтение сниппет в чистом английском языке он говорит, если пользователь не администратор, дерегистрировать JQuery, зарегистрировать его снова, и поставить его в очередь для вывода, когда страница отправляется в нужное время. Зачем мне это делать, когда я могу просто добавить jQuery в набор '< скрипт > </script >' и сделать с ним?

EDIT

должен был упомянуть, где я обнаружил этот фрагмент кода. Я нашел его в файле functions.php на Blank Theme по http://digwp.com/2010/02/blank-wordpress-theme/

+2

Без дополнительного контекста мы не можем понять, почему кто-то это сделает. –

+1

Имеет ли смысл WordPress? – m59

+0

Я этого не понимаю ??? Я много часов пробовал в Интернете, и в нескольких статьях упоминалось о добавлении jQuery в бэкэнд для админов, но это было бы не так, поскольку он проверяет, не является ли пользователь администратором. – W3Geek

ответ

2

is_admin() проверяет, является ли текущая страница отображается это страница администратора Dashboard. Чтобы проверить, является ли администратором , вы должны использовать current_user_can('administrator') - или, еще лучше, проверить наличие определенных возможностей.

Цель этого кода - оставить версию jQuery, которая поставляется с WordPress целыми для страниц администрирования (которые используют много jQuery & AJAX), но загружают другую на тематические страницы. Возможно, они пытались загрузить более новую версию, чем то, что поставлялось с WordPress в то время, или они могли просто пытаться загрузить ее с CDN от Google.

1

Этот скрипт загружает определенную версию jquery, на самом деле довольно старую, поскольку версия 1.10.2 является текущей обновленной версией.

Возможно, он используется в плагине, где некоторые javascript-функции разбиты на более поздние версии jquery.

Если возможно, постарайтесь избежать установки сценариев непосредственно в голове с помощью тегов скриптов. Таким образом, вы можете создавать динамические сценарии загрузки/выгрузки (как вы продемонстрировали).

+0

Да, я видел, сколько лет прошло, и я подумал, а? Зачем использовать более старую версию jQuery, когда я могу использовать новую, если захочу. Да, я думаю, это имеет смысл. Я не могу найти много документации по этому фрагменту, кроме [здесь] (http://wpsnipp.com/index.php/functions-php/loading-jquery-from-the-google-cdn-with-wp_register_script/), [здесь ] (http://wordpress.org/support/topic/linking-to-jquery-the-right-way) и [здесь] (http://www.webinbangla.com/wp_deregister_script-wordpress/#.Ut1SHRAo6Uk) которые в значительной степени бесполезны в способах описания того, как работает код. – W3Geek

0

Логика вероятно:

register_unminified_jquery(); 
if(!admin) { 
    unregister(); 
    register_minified_jquery(); 
} 
+0

http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js Фактически он регистрирует мини-версию jQuery. Я должен был упомянуть, но я нашел эту тему под названием Blank Theme http://digwp.com/2010/02/blank-wordpress-theme/ – W3Geek

+2

@ W3Geek: она регистрирует мини-версию jquery _for non admins_. Возможно, в другом месте он регистрирует unminified – Eric

+0

О, я даже не думал об этом. Я посмотрел повсюду, где он должен загружать неминифицированную версию jQuery и ничего не мог найти. – W3Geek

Смежные вопросы