• CSS
    • ПРОГРАММИРОВАНИЕ (CODING)
    • Emmet, ul, li, table, form
    • Style, hover, child
    • CSS Hat, font, background
    • Reset, margin, padding, float
    • Base64, relative, z-index
    • Google Fonts, PSD
    • Brackets, Bootstrap
    • Script, src, comments
    • jQuery, Slick Js, Tooltip
    • Bootstrap, Slick Nav, @media
    • Mobile Vew, Font Awesome
    • SASS, Bootstrap
    • Flexbox, Slider
  • Word Press
    • #1. Introduction to WordPress
    • #2. WordPress Files Configuration
    • #3. Kernel Review. Codex
    • #4. Standards of Encoding
    • #5. Develop a plugin, introduction
    • #6. Hooks, Filters, InterNation
    • #7. Adding Admin Menus, JS, CSS
    • #8. HTTP API, Shortcodes, Transients
    • #9. Options API, Settings API
    • #10. Database API, $wpdb object
    • #11. Ajax. Widget API. Dashboard API
    • #12. Post Type. Taxonomies. Metadata
    • #13. Theme Development. Basics
    • #14. Loop. Template. WP_Query
    • #15. File functions.php – I
    • #16. File functions.php – II
    • #17. Child Theme. Shortcode. TinyMCE
    • #18. Frameworks. Blank Theme
    • #19. Framework. Underscores. Unyson
    • #20: Framework Unyson. Options
    • #21. Extensions, Components, Manifest
    • #22. Unyson: Built-in Extensions
    • #23. Unyson: Helpers, Filters & Actions
    • #24. WC: Installation & Updating
    • #25. WC: Settings & Options
    • #26. WC: Product Setup
    • #27. WC: Sell Products, Order
    • #28. WC: Theming
    • #29. WC: Extending
    • #30. WC: Extending
  • PHP
    • Laravel, MVC, Composer
    • FW Yii2
  • JS
    • JS
    • React, Angular
  • Freelance
  • Projects
    • Useful Products
      • Free WordPress Themes (WP)
      • Free CSS templates (CSS, HTML)
      • Стартовая тема Word Press (WP)
    • Project
      • Practic Task
      • Real Democracy Game
      • Research Journal
      • Qubot
      • Cyber-street
      • Amatue

Categories » Word Press

Word Press Lessons

#5. Develop a plugin, introduction

Rostyslav - 7 декабря, 2017 - One comment

    Создание плагина

    Компоновка плагина

    Имя плагина

    Файлы плагина

    Файл Readme

    Заголовки плагина

    Стандартная информация о плагине

    Лицензия

    Программирование плагина

    Класс плагина

    Паттерн Singleton

    Определение путей

    Функции активации, деактивации и удаление

    Автоматическая загрузка классов

    Создать публичный репозиторий на github

    Создать свой плагин

    Проект вести на github

    Документация для разработчика

    Написание плагина

    Стандарты кодирования WordPress

    Plugin Resources

    Plugin API

    Plugins

    Plugin Handbook

    File Header

    Design Patterns in WordPress: The Singleton Pattern

    Паттерн проектирования Singleton на PHP

    register_activation_hook

    register_deactivation_hook

    register_uninstall_hook

    Основы Git

    Git — для новичков

     

    Создание плагина

    • Компоновка плагина

    • Заголовки плагина

    • Программирование плагина

    Пример плагина: github.com/SolomashenkoRoman

    Компоновка плагина:

    • /step-by-step-development-plugin (директория плагина)
      • step-by-step-development-plugin.php (основной php-файл плагина )
      • uninstall.php (файл отмены установок плагина)
      • /includes (папка для включений PHP)
      • /assets
        • /js (папка для файлов JavaScript)
        • /css (папка для файлов стилей)
        • /images (папка для изображений плагина)

    Файл Readme

    Заголовок плагина:

    <?php
    /*
    Plugin Name: Название плагина
    Plugin URI: http://страница_с_описанием_плагина_и_его_обновлений
    Description: Краткое описание плагина.
    Version: Номер версии плагина, например: 1.0
    Author: Имя автора плагина
    Author URI: http://страница_автора_плагина
    */
    ?>

    Например:

    /*
    Plugin Name: Step By Step Development Plugin
    Plugin URI: https://github.com/SolomashenkoRoman/step-by-step-development-plugin
    Description: Step by step development of the plugin.
    Version: 1.0
    Author: romansolomashenko
    Author URI: https://www.linkedin.com/in/solomashenkoroman/
    License: A «Slug» license name e.g. GPL2
    */

    Лицензия:

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

    <?php
    /*  Copyright ГОД  ИМЯ_АВТОРА_ПЛАГИНА  (email: E-MAIL_АВТОРА)

       This program is free software; you can redistribute it and/or modify
       it under the terms of the GNU General Public License as published by
       the Free Software Foundation; either version 2 of the License, or
       (at your option) any later version.

       This program is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
       GNU General Public License for more details.

       You should have received a copy of the GNU General Public License
       along with this program; if not, write to the Free Software
       Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
    */
    ?>

    Паттерн Singleton:

    namespace includes;
    class StepByStepPlugin
    {
       private static $instance = null;
       private function __construct() {   }
       public static function getInstance() {
           if ( null == self::$instance ) {
               self::$instance = new self; }
           return self::$instance;   } 

    }
    StepByStepPlugin::getInstance();

    Для определения URL к любому файлу в директории плагина существует функция plugins_url() :

    <?php echo ‘<img src=»’ .plugins_url( ’images/icon.png’, __FILE__ ). ?>

    Видно, что функция plugins_url( ) принимает два параметра. Первый параметр это путь относительно URL плагина, второй  файл плагина, на который вы хотите
    сослаться

    WordPress снабжен различными функциями для определения URL:

    • admin_url() — администраторский URL (http://…/my-first-site-en/wp-admin/).
    • site_url() — URL сайта для текущего сайта (http://…/my-first-site-en/).
    • home_url() — домашний URL текущего сайта (http://…/my-first-site-en/).
    • includes_url() — URL директории Includes (http://…/my-first-site-en/wp-includes/).
    • content_url() — URL директории Content ( http:/…/my-first-site-en/wp-content/).
    • wp_upload_dir() — возвращает массив с локальной информацией по сконфигурированной директории загрузок.

    Categories : Word Press, www

    • « Older Posts
    • Newer Posts »
    • Word Press
      • #1. Introduction to WordPress
      • #2. WordPress Files Configuration
      • #3. Kernel Review. Codex
      • #4. Standards of Encoding
      • #5. Develop a plugin, introduction
      • #6. Hooks, Filters, InterNation
      • #7. Adding Admin Menus, JS, CSS
      • #8. HTTP API, Shortcodes, Transients
      • #9. Options API, Settings API
      • #10. Database API, $wpdb object
      • #11. Ajax. Widget API. Dashboard API
      • #12. Post Type. Taxonomies. Metadata
      • #13. Theme Development. Basics
      • #14. Loop. Template. WP_Query
      • Lecture #15. functions.php – I
      • Lecture #16. functions.php – II
      • #17. Child Theme. Shortcode. TinyMCE
      • #18. Frameworks. Blank Theme
      • #19. Framework. Underscores. Unyson
      • #20: Framework Unyson. Options
      • #21. Extensions, Components, Manifest
      • #22. Unyson: Built-in Extensions
      • #23. Unyson: Helpers, Filters & Actions
      • #24. WC: Installation & Updating
      • #25. WC: Settings & Options
      • #26. WC: Product Setup
      • #27. WC: Sell Products, Order
      • #28. WC: Theming
      • #29. WC: Extending
      • #30. WC: Extending
    • CSS
      • ПРОГРАММИРОВАНИЕ (CODING)
      • Emmet, ul, li, table, form
      • Style, hover, child
      • CSS Hat, font, background
      • Reset, margin, padding, float
      • Base64, relative, z-index
      • Google Fonts, PSD
      • Brackets, Bootstrap
      • Script, src, comments
      • jQuery, Slick Js, Tooltip
      • Bootstrap, Slick Nav, @media
      • Mobile Vew, Font Awesome
      • Flexbox, Slider
      • SASS, Bootstrap
    • Cron
    • Framework Yii2
    • React, Angular
    • JavaScript
    • Freelance

    Generic selectors
    Exact matches only
    Search in title
    Search in content
    Search in posts
    Search in pages
    Filter by Categories
    CSS
    JavaScript
    Word Press
    www

    2019 Rostyslav N Design © Уроки программирования