Как создать простой плагин для WordPress

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5
Загрузка...

В создание плагина для WordPress нет ничего сложного, основное правило создать папку с файлом, и разместить комментарий внутри файла с  плагином.

Все файлы с плагинами лежат в папке /public_html/wp-content/plugins, здесь же мы создадим папку test, и создадим внутри этой папки файл test.php

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

<?php
/*
Plugin Name: Test
Author: Иванов Алексей
Description: Мой первый плагин
*/

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

Plugin Name — название плагина (Обязательный параметр)
Author — Автор плагина
Description — описание плагина

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

<?php
/*
Plugin Name: Test
Author: Иванов Алексей
Description: Мой первый плагин
*/

class my_first_plugin{


}

Теперь самое сложное, а что именно мы будем создавать?

Для wordpress есть огромное кол-во бесплатных плагинов, и создать что-то новое будет довольно проблематично. И тут мне пришло в голову создать плагин на базе класса Mobile Detect, о котором я рассказывал чуть ранее в своей статье.

Что будет делать плагин?

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

Давайте скачаем class mobile detect и разместим его (файл Mobile_Detect.php) в корне папки нашего плагина.

Теперь нам нужно подключить класс в нашем плагине, и загрузить его в объект $this->device.

<?php
/*
Plugin Name: Test
Author: Иванов Алексей
Description: Мой первый плагин
*/

class my_first_plugin{

  public function __construct(){
  
    include_once __DIR__.'/Mobile_Detect.php';
  
    //Вызываем класс если он существует

      if(class_exists('Mobile_Detect')){
      
        $this->device=new Mobile_Detect;
        
        //Вызываем функцию load с шорткодом
        
        add_action('init',array($this,'load'));
      }
      
  }

 

В конструкторе мы так же вызовем будущий метод (функцию) load с помощью хука «init», при условие если класс «Mobile_Detect» загружен и существует.

add_action('init',array($this,'load'));

Для создания шорткода, в WordPress существует специальная функция «add_shortcode», теперь нам нужно её применить в нашем плагине. Но прежде чем писать код, давайте разберёмся, какие аргументы принимает функция.

add_shortcode('shortcode','function');

shortcode -название шорткода, только латинские буквы или цифры (без [] кавычек)
function — функция которая будет вызвана при обработке шорткода

function load(){
    
  add_shortcode('mobile_text',array($this,'add_mobile_text'));

}

Наш шорткод будет называться «mobile_text», именно его мы будет подключать в текст записи или страницы вот таким образом:

Функция , которая будет обрабатывать шорткод называется add_mobile_text, которая может принимать два аргумента.

$atts — здесь мы можем передавать различные переменные, но нам он не понадобится
$content — текст который будет показан внутри шорткода (то что нам нужно)

function add_mobile_text($atts,$content){

  if($this->device->isMobile()){
  
    return $content;
  
  }
}

Обратите внимание на функцию isMobile, она создана внутри класса Mobile_Detect (который мы подключили), и с ей помощью мы проверяем браузер пользователя. Если он зашёл с мобильника, покажем ему текст внутри шорткода.

В массиве $atts мы можем передать другие параметры, и сделать более сложную проверку. Например показывать ли текст на ПК или планшете.

function add_mobile_text($atts,$content){

  if($atts['mobile']=='on'){

    if($this->device->isMobile()){
  
      return $content;
  
    }
    
  }
  elseif($atts['tablet']=='on'){

    if($this->device->isTabler()){
  
      return $content;
  
    }
    
  }	
  
  elseif($atts['pc']=='on'){

    if(!$this->device->isTablet() and !$this->device->isMobile()){
  
      return $content;
  
    }
    
  }	
}

И конечно шорткод будет немного другой. Отображение на мобильнике и планшете.

[mobile_text mobile='on' tablet=on'' pc='off']Текст на мобильнике и планшете[/mobile_text]

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

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

new my_first_plugin;

Теперь соберём весь код в один:

<?php
/*
Plugin Name: Test
Author: Иванов Алексей
Description: Мой первый плагин
*/

class my_first_plugin{


  public function __construct(){
  
    include_once __DIR__.'/Mobile_Detect.php';
  
    //Вызываем класс если он существует

      if(class_exists('Mobile_Detect')){
      
        $this->device=new Mobile_Detect;
        
        add_action('init',array($this,'load'));
      }
      
  }
  
  function load(){
  
    add_shortcode('mobile_text',array($this,'add_mobile_text'));
  
  }

  function add_mobile_text($atts,$content){
  
    if($this->device->isMobile()){
    
      return $content;
    
    }
  }

}

new my_first_plugin;

 

Для проверки плагина, в любом месте страницы или записи, разместите шоркод с текстом, и зайдите на сайт с помощью мобильного телефона.

[mobile_text]Этот текст отображается на мобильном устройстве[/mobile_text]

 

Понятное дело, что вместо обычного текста можно прописать картинку, баннер, HTML код, и т.д. Ещё можно добавить div со своими стилями, или названием css класса, всё зависит от ваших хотелок.

Многие спросят зачем заморачиваться и подключать дополнительные библиотеки, если можно воспользоваться css стилям типа @media, и скрыть блок с помощью display:none на мобильном устройстве? Но я уже рассказывал этот момент, ведь блок в любом случае будет на странице, только в скрытом виде.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*
*