Система Orphus

Пишем плагин для WordPress


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

Функции плагина.

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

С чего начинать писать плагин?

Создаем файл php и даем ему название нашего плагина, например, «members_only_content». Содержание плагина будет начинаться со служебной информации о плагине.
<?php
/*
Plugin Name: Members only content
Plugin URI: https://github.com/karsky/members-only-content
Description: Using shortcodes to show members-only content.
Version: 1.0
Author: Evgeny
Author URI: http://code-is-poetry.ru
License: GPLv2 or later
*/
Пол дела сделано. Теперь нам остается добавить функции, которые будут включаться при активации нашего плагина. Обратимся к первому источнику и добавим первые функции.
<?php
/*
Plugin Name: Members only content
Plugin URI: https://github.com/karsky/members-only-content
Description: Using shortcodes to show members-only content.
Version: 1.0
Author: Evgeny
Author URI: http://code-is-poetry.ru
License: GPLv2 or later
*/
add_shortcode( 'visitor', 'visitor_check_shortcode' );

function visitor_check_shortcode( $atts, $content = null ) {
	 if ( ( !is_user_logged_in() && !is_null( $content ) ) || is_feed() )
		return $content;
	return '';
}

add_shortcode( 'member', 'member_check_shortcode' );

function member_check_shortcode( $atts, $content = null ) {
	 if ( is_user_logged_in() && !is_null( $content ) && !is_feed() )
		return $content;
	return '';
}
Тут все я думаю просто. Создаем два шорткода ‘visitor’ и ‘member’ к каждому из которых справедлива своя функция, которая проверяет права пользователя, верней зарегистрирован ли он на сайте или же простой посетитель и соответственно отдает контент заключенный в шорткодах согласно условию. После того, как вы добавили эти функции все уже работает. Проверить это можно путем заключения текста в шорткоды:
[visitor]
Пожалуйста зарегистрируйтесь.
[/visitor]

[member]
Привет участник!
[/member]
Чтобы автоматизировать процесс добавки шорткодов мы обратимся ко второму источнику и возьмем от туда следующую функцию:
add_action('media_buttons','add_sc_select',11);
function add_sc_select(){
    global $shortcode_tags;
     /* ------------------------------------- */
     /* enter names of shortcode to exclude bellow */
     /* ------------------------------------- */
    $exclude = array("wp_caption", "embed");
    echo '&nbsp;<select id="sc_select"><option>Shortcode</option>';
    foreach ($shortcode_tags as $key => $val){
            if(!in_array($key,$exclude)){
            $shortcodes_list .= '<option value="['.$key.'][/'.$key.']">'.$key.'</option>';
            }
        }
     echo $shortcodes_list;
     echo '</select>';
}
add_action('admin_head', 'button_js');
function button_js() {
        echo '<script type="text/javascript">
        jQuery(document).ready(function(){
           jQuery("#sc_select").change(function() {
                          send_to_editor(jQuery("#sc_select :selected").val());
                          return false;
                });
        });
        </script>';
}
Мы создали «экшены» вывода шорткодов в виде выпадающего списка. Все! Наш плагин готов. Теперь необходимо поместить этот файлик в папку с плагинами и из «админки» активировать его. Вот так достаточно просто мы превратили наш обычный блог в приватный. Скачать плагин

Как скачать с GitHub?

ГитХаб

Работа плагина

После установки и активации плагина при добавлении новой записи мы видим вывод наших шорткодов, по мимо созданных тут в массиве все, но это даже отчасти и удобно. Шорткоды Оборачиваем содержимое в шорткоды… Контент в шорткодах И наблюдаем результат работы. Теперь когда мы авторизированны на сайте мы видем Авторизированным пользователям Но стоит нам зайти на сайт как посетителю, то тут же запись меняется Зашли как постетитель

Теги: , , , , ,

Трекбэк с Вашего сайта.

Evgeniy

Пишу на досуге о Wordpress за чашечкой ароматного чая.

Оставить комментарий

%d bloggers like this: