Хак: запретить возможность переключать шаблоны

Если у вас на сайте стоит WordPress с активированным режимом Mutisite, то порой может быть полезным возможность запретить пользователям (владельцам блогов) менять шаблон. Для этого есть всякие плагины (конечно же), но зачем нагружать бедный WordPress? Ведь и так жрет памяти не по-детски… Из-за чего я, собственно, уже всерьез смотрю на CodeIgniter – классный фреймворк.

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

add_action('admin_init', 'cd_lock_theme');
function cd_lock_theme() {
	global $submenu, $userdata;
	get_currentuserinfo();
	if ( $userdata->ID != 1 ) {
		unset($submenu['themes.php'][5]);
		unset($submenu['themes.php'][15]);
	}
}

Если же вы не хотите загромождать этот файл кодом, не относящимся непосредственно к шаблону, то можете создать любой php файл, скопировать код туда, а сам файл переместить в папку /wp-content/mu-plugins/. Все php файлы, находящиеся в /mu-plugins/, загружаются автоматически, так что активировать ничего не понадобится.

После этого все ваши пользователи больше не смогут переключать шаблоны.

Но! Вы сможете легко управлять этим процессом, дав определенным пользователям (любимчикам или тем, кто заплатил) доступ к смене темы. Для этого надо отредактировать условие:

if ( $userdata->ID != 1 ) {

добавив туда ID пользователя, которому можно. Делается это так:

if ( $userdata->ID != 1 || $userdata->ID != 7 || $userdata->ID != 33 ) {

где 1 – это вы (супер админ), 7 и 33 – какие-то другие разрешенные пользователи.

1 комментарий

  1. Валерий:

    А как запретить использовать отдельный шаблон? Проблема в том, что шаблон самой BP попадает в список доступных шаблонов для блогов пользователей, что не есть гуд…

Добавить комментарий

Ваш адрес email не будет опубликован.