Запустить функции только в области администратора?

wordpress.stackexchange https://wordpress.stackexchange.com/questions/5726

  •  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";
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top