Несколько полезных хуков для админки WordPress

Добавляем редактор темы в WordPress Admin Bar

Все, что нужно сделать, это добавить код в файл functions.php вашей темы или в плагин для сайта WordPress:

// Добавляем редактор темы в WordPress Admin Bar (для того, чтобы сохранить свое время!)
<div style="float:right;width:350px;margin:0 0 10px 15px;">
<div id="yandex_rtb_R-A-187781-2"></div>
</div>
function admin_bar_theme_editor_option() {
	global $wp_admin_bar;
		if ( !is_super_admin() || !is_admin_bar_showing() )
		return;
		$wp_admin_bar-&gt;add_menu(
			array( 'id' =&gt; 'edit-theme',
			'title' =&gt; __('Редактор темы'),
                        'href' =&gt; admin_url( 'theme-editor.php')
		)
		);
	}

add_action( 'admin_bar_menu', 'admin_bar_theme_editor_option', 100 );

Вот и все. Мы нашли этот код на WordCamp Nashville Hashtag. Работоспособность проверена на версии WordPress 3.3.2 и способ работает. Код должен работать и на других версиях движка.

Отключаем деактивацию плагинов из административной WordPress

Одной из самых замечательных возможностей WordPress является доступность плагинов, которые реально упрощают вашу работу как в качестве пользователя, так и в качестве разработчика. Часто, при разработке сайтов для клиентов мы как разработчики используем плагины, которые необходимы для того, чтобы он мог реализовывать определенные функции. Недавно мы столкнулись с проблемой, когда сайт одного из наших клиентов «поломался». Сайдбар полностью не загружался, исчезли некоторые элементы на отдельных страницах записей в блоге. Причиной оказалось то, что один из новых сотрудников клиента (оказавшийся новичком в WordPress) деактивировал некоторые плагины, которые были необходимы для нормальной работы сайта. Мы попали в админку и включили нужные плагины, однако нужно было что-то придумать, чтобы избежать повторения таких случаев в будущем. Собственно, мы расскажем как запретить деактивацию плагинов из административной WordPress (только определенных плагинов).

Теоретически, можно было воспользоваться плагином от Justin Tadlock Members и создать новые роли для пользователей. Однако, наш клиент не хотел с этим замарачиваться. У них небольшой бизнес и они наняли новых сотрудников для работы с социальными медиа и блогом, поэтому нельзя было полностью запретить доступ. Клиент хотел оставить сотрудникам активировать/деактивировать плагины для выполнения возложенных на них обязанностей. Нужно было найти решение, которое устраивало бы всех. Мы нашли сниппет, который позволяет полностью убрать ссылку «Деактивировать» для ОПРЕДЕЛЕННЫХ плагинов. Также он убирает ссылку Изменить для всех плагинов, ибо нам нужно было запретить клиенту редактировать код плагинов через встроенный в ВП редактор php-файлов.

Итак, все что нужно сделать, это вставить следующий код в файл functions.php темы:

add_filter( 'plugin_action_links', 'disable_plugin_deactivation', 10, 4 );
function disable_plugin_deactivation( $actions, $plugin_file, $plugin_data, $context ) {
	// Убираем ссылку ИЗМЕНИТЬ для всех
	if ( array_key_exists( 'edit', $actions ) )
		unset( $actions['edit'] );
	// Убираем ссылку ДЕАКТИВИРОВАТЬ для необходимых плагинов
	if ( array_key_exists( 'deactivate', $actions ) && in_array( $plugin_file, array(
		'facebook-open-graph-meta-in-wordpress/fbogmeta.php',
		'wp-pagenavi/wp-pagenavi.php'
	)))
		unset( $actions['deactivate'] );
	return $actions;
}

Теперь вам нужно изменить массив $plugin_file, где вы видите список определенных плагинов. Путь к файлу относителен /wp-content/plugins/. Поэтому на примере выше ‘facebook-open-graph-meta-in-wordpress/fbogmeta.php’ это файл, расположенный в папке facebook-open-graph-meta-in-wordpress, которая в свою очередь находится в общей папке plugins. Вы можете изменять список для добавления любого количества плагинов по вашему желанию.

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

В общем, если вы занимаетесь разработкой сайтов, то мы рекомендуем использовать данный трюк во избежание…

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top