Wie können Sie überprüfen, ob Sie sich auf einer bestimmten Seite im Abschnitt WP Admin befinden?Wie kann ich beispielsweise überprüfen, ob ich mich auf der Seite Benutzer> Ihr Profil befinde?
-
-
Ein sanfter Anstoß,um Sie aneine Antwort zuerinnern,wurdenicht akzeptiert.Wenn keine der Antworten Ihre Frage ausreichendbeantwortet oder Sie Schwierigkeiten haben,diebereitgestellten Informationen zu verstehen,kommentieren Sie diesbitte,um uns diesmitzuteilen.Gentle nudge to remind you an answer has not been accepted. If none the answers provided answer your question sufficiently or you're struggling to understand the information provided please comment to let us know.
- 1
- 2011-02-24
- t31os
-
5 Antworten
- Stimmen
-
- 2011-01-19
Um dies zutun,verwenden Sie den Hook 'admin_enqueue_scripts',um diebenötigten Dateienin die Warteschlange zu stellen.Diesem Hook wirdein $ hook_suffix übergeben,das sich auf die aktuellgeladene Seitebezieht:
function my_admin_enqueue($hook_suffix) { if($hook_suffix == 'appearance_page_theme-options') { wp_enqueue_script('my-theme-settings', get_template_directory_uri() . '/js/theme-settings.js', array('jquery')); wp_enqueue_style('my-theme-settings', get_template_directory_uri() . '/styles/theme-settings.css'); ?> <script type="text/javascript"> //<![CDATA[ var template_directory = '<?php echo get_template_directory_uri() ?>'; //]]> </script> <?php } } add_action('admin_enqueue_scripts', 'my_admin_enqueue');
The way to do this is to use the 'admin_enqueue_scripts' hook to en-queue the files you need. This hook will get passed a $hook_suffix that relates to the current page that is loaded:
function my_admin_enqueue($hook_suffix) { if($hook_suffix == 'appearance_page_theme-options') { wp_enqueue_script('my-theme-settings', get_template_directory_uri() . '/js/theme-settings.js', array('jquery')); wp_enqueue_style('my-theme-settings', get_template_directory_uri() . '/styles/theme-settings.css'); ?> <script type="text/javascript"> //<![CDATA[ var template_directory = '<?php echo get_template_directory_uri() ?>'; //]]> </script> <?php } } add_action('admin_enqueue_scripts', 'my_admin_enqueue');
-
- 2011-01-19
In wp-admingibt eseine globale Variablenamens $pagenow ,die den Namen der aktuellen Seiteenthält,z. B.edit.php,post.php usw.
Sie können auch die Anforderung $ _GET überprüfen,um Ihren Standort weitereinzugrenzen,z. B.:
global $pagenow; if (( $pagenow == 'post.php' ) && ($_GET['post_type'] == 'page')) { // editing a page } if ($pagenow == 'users.php') { // user listing page } if ($pagenow == 'profile.php') { // editing user profile page }
There is a global variable in wp-admin called $pagenow which holds name of the current page, ie edit.php, post.php, etc.
You can also check the $_GET request to narrow your location down further, for example:
global $pagenow; if (( $pagenow == 'post.php' ) && ($_GET['post_type'] == 'page')) { // editing a page } if ($pagenow == 'users.php') { // user listing page } if ($pagenow == 'profile.php') { // editing user profile page }
-
`global $pagenow;if (('admin.php'===$pagenow) && ('Präfix-Theme-Einstellungen'===$ _GET ['Seite'])) {Logik ..} `prüftbeispielsweise,ob Sie sichin einerbenutzerdefinierten VersionbefindenTheme-Einstellungsseite `admin.php?page=Präfix-Theme-Einstellungen`.`global $pagenow; if ( ( 'admin.php' === $pagenow ) && ( 'prefix-theme-settings' === $_GET['page'] ) ) { logic.. }` for example checks if you are on a custom theme settings page `admin.php?page=prefix-theme-settings`.
- 1
- 2018-02-14
- lowtechsun
-
- 2013-09-06
Die umfassendste Methodeist
hinzugefügt wurdeget_current_screen
,dasin WordPress 3.1$screen = get_current_screen();
gibt
zurückWP_Screen Object ( [action] => [base] => post [id] => post [is_network] => [is_user] => [parent_base] => edit [parent_file] => edit.php [post_type] => post [taxonomy] => )
The most comprehensive method is
get_current_screen
added in WordPress 3.1$screen = get_current_screen();
returns
WP_Screen Object ( [action] => [base] => post [id] => post [is_network] => [is_user] => [parent_base] => edit [parent_file] => edit.php [post_type] => post [taxonomy] => )
-
"Nutzungsbeschränkungen - Diese Funktionist auf denmeisten Administrationsseiten definiert,jedochnicht auf allen.Dahergibt es Fälle,in denenis_admin ()true zurückgibt. Der Versuch,get_current_screen () aufzurufen,führtjedoch zueinem schwerwiegenden Fehler,da diesernicht definiertist.Einbekanntes Beispielist wp-admin/customize.php. Die Funktiongibt null zurück,wenn sie vom Hook admin_init aufgerufen wird.Die Verwendungin einem späteren Hook wie current_screen solltein Ordnung sein."- [Codex] (https://codex.wordpress.org/Function_Reference/get_current_screen)."Usage Restrictions -- This function is defined on most admin pages, but not all. Thus there are cases where is_admin() will return true, but attempting to call get_current_screen() will result in a fatal error because it is not defined. One known example is wp-admin/customize.php. The function returns null if called from the admin_init hook. It should be OK to use in a later hook such as current_screen. " -- [Codex](https://codex.wordpress.org/Function_Reference/get_current_screen).
- 3
- 2018-01-26
- That Brazilian Guy
-
@ThatBrazilianGuy Eine schnelle Überprüfung zeigt,dass diesnichtmehr der Fallist,soweitich sehe,dassget_current_screen () auf allen Administrationsseiten sicher verwendet werden kann.@ThatBrazilianGuy A quick check suggests this is no longer the case, as far as I can see `get_current_screen()` is safe to use on all admin pages.
- 0
- 2019-01-27
- Steven
-
@shahar diesistimmernoch der Fall,gemäß der oben verlinkten Dokumentation undmeiner Erfahrung.@shahar this is still the case, according to the documentation linked above and my experience.
- 1
- 2019-03-14
- fabrik
-
- 2011-01-27
Umeine alternative Methode/einen alternativen Ansatzfür die obige Frage anzubieten.
// When you are viewing the users list or your editing another user's profile add_action( 'admin_print_scripts-users.php', 'your_enqueue_callback' ); // When you are editing your own profile add_action( 'admin_print_scripts-profile.php', 'your_enqueue_callback' ); function your_enqueue_callback() { wp_enqueue_script( .. YOUR ENQUEUE ARGS .. ); }
Diese Methode zielt direkter auf die spezifischen Seiten ab und vermeidet die Notwendigkeiteinerbedingten Logikin Ihrem Rückruf (da Sie diese Unterscheidungbereitsim ausgewählten Hook vorgenommen haben).
To offer an alternative method/approach to the above question.
// When you are viewing the users list or your editing another user's profile add_action( 'admin_print_scripts-users.php', 'your_enqueue_callback' ); // When you are editing your own profile add_action( 'admin_print_scripts-profile.php', 'your_enqueue_callback' ); function your_enqueue_callback() { wp_enqueue_script( .. YOUR ENQUEUE ARGS .. ); }
This method targets the specific pages more directly and avoids needing conditional logic inside your callback(because you've already made that distinction in the selected hook).
-
Ich wünschte,ich wüsste,warum diese Antwortnichtmehr Stimmenerhielt,deckt dengenauen Anwendungsfallin der Frage ab undbietet die Lösungin einerminimalen Menge an Code.Feedback wärenett ..Wish i knew why this answer didn't get more votes, covers the exact use case in the question, and provides the solution in a minimal amount of code. Feedback would be nice..
- 0
- 2014-01-28
- t31os
-
- 2017-10-24
Ichfindees seltsam,dassniemand die Tatsacheerwähnt hat,dass die Funktion add_menu_pageeinen Aktions-Hook zurückgibt,mit dem Siebestimmte Aktionennur auf diesen Seiten ausführen können
$hook = add_menu_page($menu_title, $page_title, $capability, $slug, $function, $icon_url, $position); add_action( 'load-' . $hook, 'my_admin_enqueue_scripts' ); function my_admin_enqueue_scripts() { wp_enqueue_script(/*...*/); wp_enqueue_style(/*...*/); }
Wenn Sie den $ hookbenötigen und die Menüseitenicht selbst hinzugefügt haben,lautet das Dokument hier
Der Hookfüreine Menüseite der obersten Ebene lautetbeispielsweise
load-toplevel_page_ $ MenuSlug
Der Hookfüreine Untermenüseiteist
load- $ MenuSlug_page_ $ SubMenuSlug
Nach dieser Logik lautet der Hookfür die Profilseite des Benutzers
load-users_page_profile
I find it weird that no one has mentioned the fact that the add_menu_page function returns an action hook which you can use to do certain actions only on those pages
$hook = add_menu_page($menu_title, $page_title, $capability, $slug, $function, $icon_url, $position); add_action( 'load-' . $hook, 'my_admin_enqueue_scripts' ); function my_admin_enqueue_scripts() { wp_enqueue_script(/*...*/); wp_enqueue_style(/*...*/); }
If you need the $hook and you didn't add the menu page yourself the doc is here
For instance the hook for a top level menu page is
load-toplevel_page_$MenuSlug
The hook for a submenu page is
load-$MenuSlug_page_$SubMenuSlug
Following that logic, the hook for the user's profile page is
load-users_page_profile
Icherstelleein Plugin undmöchte Javascriptin den Admin-Kopfeinfügen,abernurfürbestimmte Admin-Seiten.Ichmeine nicht Seiten wiein einer WordPress-Seite,die Sie selbsterstellen,sondern vorhandene Seitenim Admin-Bereich wie "Ihr Profil","Benutzer" usw. Gibteseine WP-Funktion speziellfür diese Aufgabe?Ich habegesucht und kannnur dieboolesche Funktion
is_admin
und Aktions-Hooksfinden,aber keineboolesche Funktion,dienurprüft.