Минимальное обновление для comments.php в WordPress 2.7

Если вы еще не хотите/не готовы полностью переработать вашу «тему» для поддержки новой функции комментариев WordPress 2.7, то сделайте хотя бы минимальное изменение:

Откройте ваш файл «темы» comments.php и найдите там строку типа такой:

<legend>Вы вошли как <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="Выйти из текущего аккаунта">Выйти &raquo;</a></legend>

и замените в ней одну часть чтобы получилось так

<legend>Вы вошли как <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo wp_logout_url(get_permalink()); ?>" title="Выйти из текущего аккаунта">Выйти &raquo;</a></legend>

Отличие на первый взгляд малое, но работает кардинально по разному (про новый тег писала недавно Соника (ссылку на пост ставил я на днях у себя)

<?php echo wp_logout_url(get_permalink()); ?>

меняет вашу ссылку «выхода» с примерно такой

http://www.вашсайт.ru/wp-login.php?action=logout

на примерно такую

http://www.вашсайт.ru/wp-login.php?action=logout&redirect_to=http%3A%2F%2Fwww.вашсайт.ru%2Fcategory%2nazvanieposta%2F&_wpnonce=f280f0b1cd

. Основное отличие в дополнительном параметре _wpnonce=f280f0b1cd без которого выход невозможен (кстати это тот самый параметр про кторый я писал что он появился в конфиге WP2.7), а остальное это просто говорит что после выхода редиректиться будет само на этот же пост.

Зачем все это нужно вообще? а чтобы не получить вот такую ошибку например при нажатии на эту самую ссылку «ВЫЙТИ» (и так будет показывать постоянно)
trouble_exit

Связанные записи

24 комментария на запись “Минимальное обновление для comments.php в WordPress 2.7”

  1. Димка 13 февраля 2009 в 0:09

    Изменил как у вас написано, но все равно пишет:

    Вы пытаетесь выйти из…….
    Пожалуйста, попробуйте ещё раз.

  2. Lecactus 13 февраля 2009 в 0:11

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

  3. Димка 13 февраля 2009 в 1:55

    Да все хорошо )))спасибо, а не подскажете, я установил плагин MiniMeta Widget и там такая же проблема с logout. Не подскажете, можно ли как то исправить это, чтобы и в плагине работало нормально

  4. Dymas 28 февраля 2009 в 22:40

    Спасибо огромное! Тока что обнаружил такую ошибку, спросил у Гугла и сразу же попал на этот сайт — сделал все как написано и все тут же заработало! Круто! Обычно приходится долго и нудно возиться, вкуривать что к чему, а тут минута делов и все работает как часы

  5. bookmarklet 1 марта 2009 в 23:50

    Уважаемый Иван,
    я бы только добавил две вещи.

    1. Не во всех темах есть тэги Вы вошли как… (более того, я подозреваю, что тут имеется в виду: …), при поиске нужного места лучше ориентироваться на строчку:
    <a href="" rel="nofollow"></a>
    (вставя ее в поиск по файлу).

    2. Не все темы вообще имеют данную секцию (скажем тема big_pencil моего блога не имеет ее совсем).
    Тогда можно (и нужно!) вставить эту секцию самостоятельно. Ориентироваться нужна на такие вещи:

    Между строчками:

    и

    %2$s ‘, »), get_option(‘siteurl’) . ‘/wp-admin/profile.php’, $user_identity); ?>

    »»
    <?php _e('Выйти »', ''); ?>

    <?php else : ?>

    А после строки:
    <label for="url"><small>Сайт</small></label></p>
    (и перед обычно "заремленной" строкой:
    <!--<p><small><strong>XHTML:</strong> ... -->)
    поставить завершающий тэг пхп-условия:
    <code><?php endif; ?></code>

    Вот и всё! Живи и наслаждайся! ;)
    Иван, Биг-Спасибо за "наводку"!

  6. bookmarklet 1 марта 2009 в 23:52

    Иван, почему-то вопреки использованию тэго "Код" мой каммент с массой строк кода отобразился безобразно плохо! :((((

  7. bookmarklet 2 марта 2009 в 0:01

    Поделитесь секретом, как в вордпрессе добиваться того, чтобы при вставке кодов в сообщение отображение кодов получалось так, как у Вас — красиво и правильно — т.е. через "текстовые формочки"?
    Использование стандартной ф-ции — кнопки "Код" — не приводит к этому… :(

  8. Lecactus 2 марта 2009 в 0:08

    bookmarklet, 1 читаем правила мои на будущее. 2 около кода есть значок «?» и там читаем название модуля. 3 открываем исходник страниц и находим глазами код <link type="text/css" rel="stylesheet" href="http://lecactus.ru/wp-content/plugins/syntaxhighlighter/files/SyntaxHighlighter.css"></link>. 4 меня раздражают такие вопросы. честно. это уже мания пошла на каждом блоге работающем на вп спрашивать в коментах «как у тебя это работает?»

    5. по поводу вашего прошлого комента — даже после открытия комента на редактирования я там увидел кучу обрезанных тегов. на мыло мне отправьте то что хотели написать я посмотрю из-за чего там вырезались теги все

  9. bookmarklet 2 марта 2009 в 0:38

    ОК, отправил на оба мыла!
    Спасибо за советы!

  10. bookmarklet 2 марта 2009 в 1:29

    И все-таки… вопросы остались…

    bookmarklet, 1 читаем правила мои на будущее. 2 около кода есть значок "?" и там читаем название модуля. 3 открываем исходник страниц и находим глазами код <link type="text/css" rel="stylesheet" href="http://lecactus.ru/wp-content/plugins/syntaxhighlighter/files/SyntaxHighlighter.css"></link>. 4 меня раздражают такие вопросы. честно. это уже мания пошла на каждом блоге работающем на вп спрашивать в коментах "как у тебя это работает?"

    1. Читал-перечитывал внимательно, но так и не допёр — чем я Вас здесь не угодил и что конкретно нарушил в Правилах?!
    2. Кстати, там не значок "?", а просто подчеркнутая ссылка слова "код" — не всегда поймешь, что это значит (в отличие от ?, что всегда и везде означает хелп).
    3. Изучение кода css ф-ла и даже самого плагина (последнее все ж пока бегло) не отвечает на вопрос, каким образом удается достичь — НЕ ПРОСТО ПОДСВЕТКИ кодов, а качественного иного оформления — с помещением их, по-видимому, в поле text area… (Что и позволяет выводить на дисплей любые кеоды безо всякого искажения.)
    Попробовал я подключить себе на блоги и тот и другой плагины (syntaxhighlighter и wp-codeshield.0.4) — притом, сразу на двух блогах на двух сайтах — ни в какую! Формы ответов остаются такими, как они были до подключения оных…
    Пока я так и не понял, в чем дело и как добиться желаемого…
    Буду разбираться.
    4. Не понимаю Вашего раздражения — кажется, я не задал столь уж глупый или очень тривиальный вопрос.
    …Обычно я вообще мало кого и о чем справшиваю…
    Наверное Ваш первый день весны прошел, начавшись "не стой ноги"… :)

  11. Lecactus 2 марта 2009 в 1:37

    bookmarklet, цитата из правил блога (ссылка жирная в самом верху страницы)

    1

    Я не отвечаю на вопросы относительно того какие плагины установлены у меня для каких-либо функций — не поленитесь и посмотрите исходник страницы. В 90% случаев сразу станет понятно, т.к. некоторые плагины выводят в комментариях свои названия и версии.

    догадаться по приведенному пути что за плагин стоит (по названию папки) и потом найти название плагина — дело 5минут (яндекс/гугл ведь для чего то придумали)
    2 у меня кроме кодешилда стоит еще другой плагин для контроля тегов вводимых в коменты
    3

    Не понимаю Вашего раздражения

    когда у вас сотню-другую раз спросят подобное где ни попадя в любом посте где явно или неявно это относится вы еще не так будете раздражаться. для ленивых и любознательных есть форумы и поиск.(где опять же вместо того чтобы искать пишут сотни раз одну и туже фигню с глупыми вопросами «помогите новичку») просто уже откровенно куда на блог созданный на ВП не приду, везде встречаю коменты подобного типа, даже если на блоге про ВП вообще не пишут. это мода такая что ли? или просто мания такая и привычка дурная? причем спрашивают это многократно бывает одно и тоже. даже поиском влом поискать по блогу. вот одно хорошо во всяких ЖЖ и т.п. — там такой фигни не спрашивают и не раздражают

  12. bookmarklet 2 марта 2009 в 1:50

    Lecactus: "у меня кроме кодешилда стоит еще другой плагин для контроля тегов вводимых в коменты"
    — вот с этого и нужно было начинать а не наводить тень на плетень.
    Вообще если бы не баг с отображением кодов, которым я хотел поделиться с вами, котоырй возник у вас при вводе текста — я бы ни в жисть не стал спрашивать такие глупости!.
    Прощайте!
    Хочешь сделать людям хорошее, а получишь по шапке (с)

  13. Lecactus 2 марта 2009 в 1:54

    bookmarklet, кодешилдер и плагин оформления кода синтаксхайлайтер никак не связаны (а вы завели разговор именно про хайлайтер), а тот плагин что я имел ввиду кроме шилдера он для коментов (разрешает только те что я разрешил в настройках)

    а про

    Хочешь сделать людям хорошее, а получишь по шапке (с)

    это практически мои слова 1,5 годовалой давности

  14. Offnickname 7 мая 2009 в 17:29

    Поправил код в дефолтной теме следующим образом:

    <?php printf(__('Logged in as %2$s.', 'kubrick'), get_option('siteurl') . '/wp-admin/profile.php', $user_identity); ?> <?php _e(‘Log out of this account’, ‘kubrick’); ?>

    «><?php _e('Log out »', 'kubrick'); ?>
    Ошибка осталась.
    В логаутном линке параметр «_wpnonce=f280f0b1cd» почему-то не подставляется.

  15. Offnickname 12 мая 2009 в 18:37

    Разобрался.
    Происходил сброс куков, поэтому сообщение «Вы пытаетесь выйти из……. Пожалуйста, попробуйте ещё раз.» и вылазило. Неумно сделано. В таком случае принято выводить сообщение «Вы не вошли».

    P.S. А плагинчик WP-Codeshield глючит. Может, из админ.панели вставленный код и нормально смотрится, а на внешней странице — криво.

  16. Lecactus 12 мая 2009 в 20:29

    Offnickname, 1 пример кривости покажите. 2 поставьте еще HTML Purified чтобы настроить разрешенные и запрещенные теги в коментах. 3 по кукам примем к сведению

  17. Offnickname 13 мая 2009 в 0:28

    Да вот, что далеко ходить. :)

    В оригинале было следующее (пощу без тегов code):
    <?php printf(__('Logged in as %2$s.', 'kubrick'), get_option('siteurl') . '/wp-admin/profile.php', $user_identity); ?> <?php _e('Log out »', 'kubrick'); ?>

  18. Lecactus 13 мая 2009 в 6:40

    проверяю запостить тоже самое, взятое из комментс.пхп дефолтной темы

    <p>Logged in as <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo wp_logout_url(get_permalink()); ?>" title="Log out of this account">Log out &raquo;</a></p>

  19. Offnickname 13 мая 2009 в 19:15

    А это запощено с админской панели или с сайта?

    Попробую картинку того, что я пытался запостить выше, показать.
    ST9WZ5SJ6p.gif

  20. Lecactus 13 мая 2009 в 20:41

    Offnickname, с сайта

  21. Evgeny 28 мая 2009 в 15:19

    у меня такая питрушка:

    Вы вошли как <?php echo $user_identity; ?>. Выйти »

    заменил на:

    Вы вошли как <?php echo $user_identity; ?>. Выйти »

    что я сделал неправильно?

  22. Evgeny 28 мая 2009 в 15:24

    у меня такая петрушка:
    вот это

    Вы вошли как <?php echo $user_identity; ?>. Выйти »

    заменил на вот это

    Вы вошли как <?php echo $user_identity; ?>. Выйти »

    сообщение : Вы пытаетесь выйти с… Пожалуйста, попробуйте еще раз.

  23. Никита 14 сентября 2011 в 20:59

    А можно ли получить этот wpnonce через аякс после входа в систему (не перезагружая страницу)? Дело в том, что wpnonce для залогиненного и незалогиненного юзера выводиться разный. У меня возвращается для незалогиненного, и поэтому при выходе перекидывает на «Вы пытаетесь выйти с…»

  24. Никита 14 сентября 2011 в 21:00

    А можно ли получить этот wpnonce через аякс после входа в систему (не перезагружая страницу)? Дело в том, что wpnonce для залогиненного и незалогиненного юзера выводиться разный. У меня возвращается для незалогиненного, и поэтому при выходе перекидывает на “Вы пытаетесь выйти с…”