Изображение редактора WordPress для шорткода - PullRequest
7 голосов
/ 13 августа 2011

Быстрый вопрос о WordPress. Я гуглил повсюду и не могу найти ответ.

По сути, я пытаюсь повторить то, что происходит при добавлении галереи: чтобы изображение отображалось как шорткод галереи [gallery]. Шорткод виден при редактировании HTML.

Я хотел бы точно скопировать этот эффект: когда шорткод вставляется в редактор, я хочу, чтобы его отображали как изображение.

Вещи, которые я пробовал:

  • Вставка элемента (image, div, я обнаружил, что ввод довольно ненадежный и т. Д.), Который заключен в шорткод (Это работает нормально, не очень хорошо. Короткий код все еще виден, и WP автоматически добавит абзацы к элемент для создания пространства, в которое пользователи могут, возможно, добавлять контент, который будет съеден коротким кодом) -
  • Вставка короткого кода в качестве комментария <! - -> (Это также не очень хорошо работает, WP иногда будет использовать его, перемещаясь между Visual / HTML. Комментарии ТАКЖЕ поглощают ваш контент <! - [шорткод] -> заполнитель <! - [/ шорткод] -> = <! - предоставленный шорткод ->)

Это та степень, в которой я думал о вещах. Я не могу найти руководство о том, как имитировать поведение [галереи], и не могу найти его, изучив интуицию wp-admin.

Спасибо!

1 Ответ

6 голосов
/ 16 августа 2011

Хорошо, нашел ответ благодаря подсказке Дэна. Вот как это сделать:

Сначала (как предложил Дэн) рассмотрим, как они добавляют плагин Gallery в Tiny MCE. На самом деле есть несжатый js-файл, который даст вам необходимый обзор, найдите его в:

/ WP-включает / JS / TinyMCE / плагинов / wpgallery / editor_plugin.dev.js

Это выходит за рамки добавления этого типа плагина в TinyMCE ( подробнее здесь ). Чтобы WP загрузил файл .js с плагином TinyMCE, см. Это полезное руководство .

В основном вот код:

if ( get_user_option('rich_editing') == 'true') {
    add_filter("mce_external_plugins", "add_jolokia_tinymce_plugin");
//Applying the filter if you're using the rich text editor
}

function add_jolokia_tinymce_plugin($plugin_array) {
    $plugin_array['example'] =  '/path/to/example.js';
    return $plugin_array;
}

Добавьте это в плагин или файл function.php в теме И все хорошо!

...