@artem78

Почему не добавляется кнопка в редактор в Wordpress?

PHP:
<?php
	class BlockHider {
		public static function init() {
			add_action('admin_head', array(__CLASS__, 'addEditorButton'));
		}

		// Кнопка для добавления шорткода в редакторе
		public static function addEditorButton() {
			if ( !current_user_can( 'edit_posts' ) && !current_user_can( 'edit_pages' ) ) {
				return;
			}

			if( ! in_array( $typenow, array( 'post', 'page' ) ) )
				return;

			if ( 'true' == get_user_option( 'rich_editing' ) ) {
				add_filter('mce_external_plugins', array(__CLASS__, 'addEditorScript'));
				add_filter('mce_buttons', array(__CLASS__, 'registerEditorButton'));
			}
		}

		public static function addEditorScript($plugin_array) {
			$plugin_array['hiddenblockButton'] = plugins_url('/js/editor_button.js', __FILE__);
			return $plugin_array;
		}

		public static function registerEditorButton($buttons) {
			array_push($buttons, 'hiddenblockButton');
			return $buttons;
		}
	}
	
	add_action('plugins_loaded', array('BlockHider', 'init'));


editor_button.js:
(function() {
	tinymce.PluginManager.add('hiddenblockButton', function( editor, url ) {
		editor.addButton('hiddenblockButton', {
			text: 'Скрыть блок',
			title: 'Скрывает выбранный участок от поисковых систем',
			//icon: 'icon dashicons-hidden',
			icon: false,
			onclick: function() {
				selection.setContent('[hiddenblock]' + ed.selection.getContent() + '[/hiddenblock]');
			}
		});
	});
})();
  • Вопрос задан
  • 124 просмотра
Решения вопроса 1
@artem78 Автор вопроса
Разобрался сам - я забыл добавить в метод addEditorButton:
global $typenow;

Поэтому здесь происходил выход из функции:
if( ! in_array( $typenow, array( 'post', 'page' ) ) )
        return;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы