Статьи

Создание фиктивного текста в WordPress

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

Плагин, который вы создадите, добавит кнопку в редактор WYSIWYG, которая при нажатии откроет окно и запросит количество параграфов фиктивного текста для создания. Пользователь введет номер, и контент будет вставлен!

Обратите внимание, что этот плагин использует библиотеку TinyMCE 4.0, которая была недавно интегрирована в WordPress 3.9, что означает, что этот плагин будет работать только в 3.9 и новее.

Для начала создайте новую папку в каталоге wp-content/plugins вашего сайта и присвойте ей название. В этом уроке я буду использовать «dummy-text-generator» в качестве заголовка, хотя, поскольку вы будете использовать относительные ссылки в файлах плагинов, это может быть что угодно.

Затем добавьте новый файл PHP в новый каталог с названием вашего каталога, а затем с расширением .php . Например, dummy-text-generator.php .

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

01
02
03
04
05
06
07
08
09
10
<?php
/*
Plugin Name: Dummy Text Generator
Plugin URI: http://code.tutsplus.com
Description: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Version: 1.0
Author: Sam Berson
Author URI: http://www.samberson.com
License: GPLv2 or later
*/

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

Вам также следует создать новый каталог в папке вашего плагина с именем js и создать новый файл с именем tinymce-plugin.js . Это понадобится вам позже, а пока оставьте это поле пустым.

Последний шаг — активировать новый плагин, что можно сделать на странице плагинов в серверной части вашего сайта. Как только вы активировали свой плагин, вы готовы перейти к кодированию самого плагина.

Этот плагин использует несколько основных функций: одну для проверки типа поста и включения функциональности плагина на посте или странице, одну для добавления кнопки в редактор WYSIWYG, одну для включения файла JavaScript, необходимого для работы плагина, и один инициализирует действия кнопки.

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

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

01
02
03
04
05
06
07
08
09
10
11
12
13
add_action( ‘admin_head’, ‘add_tinymce_dummytext’ );
function add_tinymce_dummytext() {
    global $typenow;
 
    // only on Post Type: post and page
    if( ! in_array( $typenow, array( ‘post’, ‘page’ ) ) ) {
        return ;
    }
 
    add_filter( ‘mce_external_plugins’, ‘add_tinymce_dummytext_plugin’ );
    // Add to line 1 form WP TinyMCE
    add_filter( ‘mce_buttons’, ‘add_tinymce_dummytext_button’ );
}

Вторая функция вызывает файл JavaScript, который вы создали ранее, и сообщает плагину, где его можно найти.

1
2
3
4
5
6
7
// include the js for tinymce
function add_tinymce_dummytext_plugin( $plugin_array ) {
 
    $plugin_array[‘dummytext_plugin’] = plugins_url( ‘/js/tinymce-plugin.js’, __FILE__ );
 
    return $plugin_array;
}

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

1
2
3
4
5
6
7
8
// Add the button key for address via JS
function add_tinymce_dummytext_button( $buttons ) {
 
    array_push( $buttons, ‘dummytext_button’ );
    // Print all buttons
    //var_dump( $buttons );
    return $buttons;
}

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
/*
Plugin Name: Dummy Text Generator
Plugin URI: http://code.tutsplus.com
Description: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Version: 1.0
Author: Sam Berson
Author URI: http://www.samberson.com
License: GPLv2 or later
*/
 
add_action( ‘admin_head’, ‘add_tinymce_dummytext’ );
function add_tinymce_dummytext() {
    global $typenow;
 
    // only on Post Type: post and page
    if( ! in_array( $typenow, array( ‘post’, ‘page’ ) ) ) {
        return;
    }
 
    add_filter( ‘mce_external_plugins’, ‘add_tinymce_dummytext_plugin’ );
    // Add to line 1 form WP TinyMCE
    add_filter( ‘mce_buttons’, ‘add_tinymce_dummytext_button’ );
     
}
 
 
// inlcude the js for tinymce
function add_tinymce_dummytext_plugin( $plugin_array ) {
 
    $plugin_array[‘dummytext_plugin’] = plugins_url( ‘/js/tinymce-plugin.js’, __FILE__ );
 
    return $plugin_array;
}
 
 
// Add the button key for address via JS
function add_tinymce_dummytext_button( $buttons ) {
 
    array_push( $buttons, ‘dummytext_button’ );
     
    return $buttons;
}

Фиктивный текст, который вы будете создавать, находится в файле JavaScript, который вы создали ранее, и называется tinymce-plugin.js в каталоге js .

Давайте начнем с сообщения WordPress о том, что мы добавляем функцию, и что dummyContent равно абзацу HTML, содержащему некоторый фиктивный текст «Lorem ipsum».

1
2
( function() {
   dummyContent = ‘<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Теперь вы собираетесь инициализировать функцию ‘dummytext_plugin’ в редакторе, который вы сделали ранее в файле PHP.

1
tinymce.PluginManager.add( ‘dummytext_plugin’, function( editor, url ) {

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
// Add a button that opens a window
       editor.addButton( ‘dummytext_button’, {
 
           text: ‘Dummy Text Generator’,
           icon: false,
           onclick: function() {
               // Open window
               editor.windowManager.open( {
                   title: ‘Dummy Text Generator’,
                   body: [{
                       type: ‘textbox’,
                       name: ‘number’,
                       label: ‘Number of Paragraphs’
                   }],

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

1
2
3
4
5
6
7
8
onsubmit: function( e ) {
                       if(isNaN(e.data.number)) { alert(‘Please enter a valid number’);
                        
                       // Insert content when the window form is submitted
                       for (var i = 0; i < e.data.number; i++) {
                           editor.insertContent( dummyContent );
                       }
                   }

Последний шаг — закрыть все скобки, которые были открыты во время создания файла JavaScript, и после того, как вы это сделаете, сохраните свои изменения в файлах PHP и JS.

1
2
3
4
5
} );
            }
        } );
    } );
} )();

Наконец, ваш файл JavaScript будет выглядеть примерно так, как показано ниже, и теперь вы можете протестировать и наслаждаться с помощью созданного вами плагина!

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
( function() {
    dummyContent = ‘<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
 
    tinymce.PluginManager.add( ‘dummytext_plugin’, function( editor, url ) {
 
        // Add a button that opens a window
        editor.addButton( ‘dummytext_button’, {
 
            text: ‘Dummy Text Generator’,
            icon: false,
            onclick: function() {
                // Open window
                editor.windowManager.open( {
                    title: ‘Dummy Text Generator’,
                    body: [{
                        type: ‘textbox’,
                        name: ‘number’,
                        label: ‘Number of Paragraphs’
                    }],
                    onsubmit: function( e ) {
                        if(isNaN(e.data.number)) { alert(‘Please enter a valid number’);
                         
                        // Insert content when the window form is submitted
                        for (var i = 0; i < e.data.number; i++) {
                            editor.insertContent( dummyContent );
                        }
                    }
                } );
            }
        } );
    } );
} )();

Вот и все — теперь вы успешно создали свой собственный текстовый плагин в WordPress, используя PHP и JavaScript!

Если у вас есть какие-либо вопросы по поводу этого плагина, пожалуйста, не стесняйтесь оставлять комментарии ниже, и я обязательно вернусь к вам.