UserJS-скрипт на jQuery для авторизации в WordPress

10 февраля 2009 г.

Давно я обещал опубликовать данный пост и вот, наконец, делаю это сегодня.

Как я уже писал ранее, я интегрировал в браузер Opera свой любимый фреймворк jQuery и по мере необходимости пописываю скрипты на нем. Благодаря этому мне удается сотворить что-нибудь этакое-разэтакое, чего я вряд ли смог бы сделать на простом JavaScript, да и файлы получаются совсем небольшими.

Один из этих скриптов - авторизация на WordPress-сайте через всплывающее окно по нажатию на горячую клавишу, который взят из плагина Login-box.

У меня это выглядит вот так:

Всплывающая форма авторизации WordPress

Данный скрипт должен работать в браузерах Opera (проверено мной), FireFox (не проверял) и других, которые на движке Gecko. Надеюсь, что вы знаете, каким образом устанавливать UserJS-скрипты. Если нет, то, погуглив, легко найдете инструкцию.

Скачать

В архив я положил сам скрипт, плюс фреймворк jQuery (версия 1.3.1). Оба файла нужно закинуть в папку с вашими UserJS-скриптами.

Настройки

Откройте в текстовом редакторе файл wp_login_box.js и укажите адрес сайта, на котором хотите использовать этот скрипт, в следующей строчке:

1
// @include     http://sitename.ru/*

Если сайтов несколько, то сделайте копии этой строки и в каждой укажите нужный адрес. Звездочка на конце адреса означает, что скрипт будет работать на всех страницах сайта. Если вы удалите звездочку, то форма авторизации будет работать только на главной странице сайта.

Что можно сделать еще. Расскажу на моем примере. В верхней части скрипта вы увидите вот такую строчку:

1
if (window.location.href.indexOf('wp-admin')==-1) {

Данный код означает, что скрипт не будет подключаться, если вы находитесь в админке WordPress. Это сделано с целью экономии ресурсов компьютера, чтобы, когда скрипт нам не нужен, вообще его не подключать.

У меня эта строчка выглядит следующим образом:

1
if (!document.getElementById("wpabar") && window.location.href.indexOf('wp-admin')==-1) {

Это означает, что, если я уже авторизован, то при нахождении на любой странице сайта (не в админке), скрипт также не подключается. Это происходит благодаря тому, что я использую плагин WordPress Admin Bar, и после авторизации в коде страниц сайта появляется меню, которое помечено идентификатором id=”wpabar”.

Если вы также используете этот плагин или у вас есть какой-то хтмл-код, содержащий идентификатор, который появляется только после вашей авторизации, то можете поступить по аналогии с моим примером.

Ну и последнее, что осталось сказать - форма авторизации всплывает по нажатию на комбинацию Ctrl+E или Alt+E (в Опере работает только первая комбинация).

Теги: , , , , , , автор: Dimox | рубрика WordPress

Комментарии (16): »

  1. Поставил себе в Оперу - авторизация работает, но при этом дизайн админки совершенно разваливается - не подключается CSS. 2 раза проверил - как убираю скрипты, так все с дизайном нормально, стоит только вернуть - опять css не пашет :(…
    Опера 9.63

    @
  2. Весьма странно. Я использовал этот скрипт и в 9.61, и сейчас в 10-й, ничего подобного не наблюдал. Попробуй поставить оригинальный плагин (ссылка в посте) и посмотри, будет ли он работать, как надо.

  3. О! Огромное спасибо тебе, я так ждал этого поста :)

    @
  4. А можешь еще рассказать, каким плагином ты сделал так чтобы после комментирования показывался только excerpt из поста?

    @
  5. Это просто небольшая функция. В файл functions.php своей темы вставь следующий код:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    function seo_paged_comments_content_filter($t = '') {
      $cpage = intval(get_query_var('cpage'));
      if (!empty($cpage)) {
        remove_filter('the_content', 'seo_paged_comments_content_filter');
        $t = '<p>'.get_the_excerpt().'</p>'."\n";
      }
      return $t;
    }
    add_filter('the_content', 'seo_paged_comments_content_filter');

    Он делает следующее - если находишься на странице, содержащей в адресе comment-page- (когда активирована опция постраничной разбивки комментов), то вместо целой статьи выводится анонс.

  6. Хорошая штука. Я как фанат оперы заценил. Спасибо! Но есть вопрос. Можно как-то добавить в скрипт редирект сразу в админку после входа? А то у меня на паре блогов нету линки “Администрирование” с главной. Подскажите плиз, т.к. я в пхп не рублю. Заранее благодарсвую.

    @
  7. Тут в пхп и не нужно рубить ))) Делается очень просто. В коде скрипта найди следующий код:

    1
    <input type="hidden" name="redirect_to" value="' + window.location.href + '" />

    и замени вот эту часть: ‘ + window.location.href + ‘ на ссылку, куда хочешь переходить после авторизации.

  8. Спасибо, но есть одно НО. Обнаружил, это после первого входа в админку. Вернее в момент входа. Страница так и не загрузилась…
    Скрипт не то чтобы подгружает оперу…. она просто перестает грузить сайты О_о
    Это обнаружил еще до изменений в скрипте

    @
  9. Я использую этот скрипт на разных сайтах и ничего подобного не замечал.

  10. кстати да, мне тоже пришлось его снять, так как у меня такой же глюк. Опера 9.63

    @
  11. Разобрался, в чем дело. Причина в версии jQuery, которая в файле a_jquery.js. Почему-то конфликт с версией 1.3.x. Заменил на 1.2.6. С ней работает. Скачайте архив заново.

    И еще примечание. Если у вас на сайте jQuery уже подключен, то файл a_jquery.js можно вообще не копировать в папку с вашими UserJS.

    Сообщите, плиз, работает ли теперь.

  12. Да Да Да Да Да!
    Теперь заработало!!!!! все дело действительно в в версии jQuery
    О велики маг и кудесник, СПАСИБО АГРОМАДНОЕ!
    Оч удобно теперь. (^_^)

    Еще вопрос. Объясните чайнику что в скрипте вставить вместо

    1
    ' + window.location.href + '

    чтобы работало не только для одного сайта.

    @
  13. Вот это:

    1
    http://' + window.location.hostname + '/wp-admin/
  14. Здравствуйте, хотелось бы задать чисто технический вопрос, а именно, как вы подключили jQuery, не упоминая его в основном файле скрипта?
    В userjs разбираюсь еще только, поэтому знаний не особо много. А вот ваш ответ мог бы очень неплохо меня продвинуть вперед.
    Заранее спасибо!

    @
  15. Я сделал фреймворк отдельным UserJS-файлом, и он подключается браузером автоматически, как самостоятельный скрипт.

Присоединяйтесь к обсуждению!

Отправляя кoммeнтapий, вы автоматически принимаете правила кoммeнтиpoвaния на этом блоге.

Правила кoммeнтиpoвaния на блоге dimox.name:

  1. Первый кoммeнтapий всегда проходит премодерацию.
  2. В поле "URL блога" можно указывать только ссылку на главную страницу вашего блога. Ссылки на прочие веб-ресурсы (в том числе блоги/сплоги, созданные не для людей) будут удалены.
  3. Запрещается использовать в качестве имени комментатора слоганы/названия сайтов, рекламные фразы, ключевые и т.п. слова. В случае несоблюдения этого условия имя изменяется по усмотрению владельца блога. Просьба указывать нормальное имя или ник.
  4. Весьма вероятно, что короткий и неинформативный кoммeнтapий вида "Спасибо!", "Интересная статья", будет удален. Исключение составляют знакомые автору блога комментаторы.
  5. Комментарии не по теме удаляются.

Подписаться, не комментируя
  • Похожие статьи
  • Предыдущие из рубрики