Запустить функции только в области администратора?
-
16-10-2019 - |
Вопрос
Я бы хотел, чтобы этот код запускался только внутри административной области, так как он также прибегает к предметам на общедоступной боковой панели администратора.
/* Reorder Admin Menu to put "Pages" at the top */
function menu_order_filter($menu) {
$content_menu = array('edit.php?post_type=page');
array_splice($menu, 2, 0, $content_menu);
return array_unique($menu);
}
add_filter('custom_menu_order', create_function('', 'return true;'));
add_filter('menu_order', 'menu_order_filter');
Решение
Существует очень мало накладных расходов, чтобы назначить пару фильтров на крючках, которые просто не будут стрелять на переднем крае.
В общем, это было бы что -то вроде этого:
add_action('init', 'admin_only');
function admin_only() {
if( !is_admin() )
return;
// filter assignemnts and such go here
}
Также create_function()
не рекомендуется для производительности и некоторых других причин. Лучше использовать более современный Анонимные функции, но для таких случаев, как этот WordPress __return_true()
функция
Другие советы
Используйте Hook Admin_init, а затем крючки, инициатор, крючка, по-настоящему приходит в действие только администратора. Но важно, когда вы используете LI18N-функции или AJAX, чем лучше, что вы используете init.
https://codex.wordpress.org/function_reference/is_admin
if ( ! is_admin() ) {
echo "You are viewing the theme";
} else {
echo "You are viewing the WordPress Administration Panels";
}