Изменяем стандартное сообщение защищенной паролем записи в WordPress

Когда вы устанавливаете пароль на запись в WordPress, стандартный текст, который при этом выводится, не всегда отражает корректную суть. В сегодняшней статье мы покажем вам как быстро изменить защищенное паролем сообщение в WordPress.

Обратите внимание, что в статье описывается изменение текста в виде плагина, однако, основной код может просто быть добавлен в файл functions.php вашей темы.

Шаг 1

Для начала создайте новую папку в папке с плагинами в вашем WordPress и задайте ей название по вашему усмотрению. Мы назвали директорию protected-text.

Шаг 2

Создайте новый файл под названием protected-text.php и добавьте в него следующую информацию о плагине:

<?php
/*
Plugin Name: Password Protected Text
Plugin URI: http://wpincode.com
Description: This plugin changes the default password protected text.
Version: 1.0
Author: wpincode.com
Author URI: http://wpincode.com
*/

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

Шаг 3

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

function password_protected_change( $content ) {
  global $post;
  if ( ! empty( $post->post_password ) && stripslashes( $_COOKIE['wp-postpass_'.COOKIEHASH] ) != $post->post_password ) {

Шаг 4

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

Вы можете добавить ваше основное сообщение в том месте, где мы написали «Добавьте Ваше произвольное сообщение!», а также лейбл для поля с паролем в разделе label for=»post_password».

  $output = '

  <form action="' . get_option( 'siteurl' ) . '/<span class="skimlinks-unlinked">wp-pass.php</span>" method="post">
    '.__( "Добавьте Ваше произвольное сообщение!" ).'

      <label for="post_password">Пароль:</label>
      <input name="post_password" class="input" type="password" size="20" />
      <input type="submit" name="Submit" class="button" value="' . __( "Отправить" ) . '" />

  </form>

  ';
  return $output;
}

Шаг 5

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

} else {
    return $content;
}

Шаг 6

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

add_filter( 'the_content','password_protected_change' );

Заключение

Вот и все, вы создали простой плагин для перезаписи стандартной формы защиты записи паролем.

По всем вопросам и отзывам просьба писать в комментарии ниже.

Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.

VN:F [1.9.22_1171]
Rating: 5.0/5 (3 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
  • Роман

    Плагин не был активирован, потому что он вызвал фатальную ошибку. Не получилось, хотя тупо скопировал ваш код

    • ADv

      попробуйте добавить закрывающий тег php

  • Денис

    подскажите пожалуйста, в какой файл вносить записи начиная с Шага 3.
    И можно вообще избавиться от слова «Защищено» пример в прикрепленном файле.

    • ADv

      Вносить всё в тот же файл protected-text.php, о котором мы говорим в начале статьи.

  • MindCoachRu

    Добрый день!
    После установки плагина и попытки зайти в защищенный раздел появляется
    конец строки кода wp-pass.php «method=»post» (см. рисунок).
    После ввода пароля, появляется ошибка 404 (см. рисунок).
    Подскажите пожалуйста, как исправить эту ошибку.
    С уважением
    Дмитрий.

Scroll To Top