web-dev-qa-db-fra.com

Exécuter les fonctions uniquement dans la zone d'administration?

J'aimerais que ce code ne soit exécuté qu'à l'intérieur de la zone d'administration, car il utilise également les éléments de la barre d'administration côté public.

  /* 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');
2
agileapricot

Il n’ya que très peu de temps à payer pour assigner quelques filtres sur des crochets qui ne se déclenchent tout simplement pas au début.

En général, ce serait quelque chose comme ça:

add_action('init', 'admin_only');

function admin_only() {

    if( !is_admin() )
        return;

    // filter assignemnts and such go here
}

De plus, create_function() n'est pas recommandé pour des raisons de performance ou autres. Il est préférable d’utiliser des fonctions anonymes plus modernes , mais pour de tels cas, WordPress propose une fonction __return_true() toute prête.

4
Rarst

utilisez le hook admin_init et les hooks ultérieurs, le init-Hook est vraiment plus ancien que l'administrateur. Mais il est important que vous utilisiez init lorsque vous utilisez li18n-functions ou AJAX.

1
bueltge

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";
}
0
Andrey Shandrov