Fügen Sie dem Admin-Menü im Backend einen „externen“ Link hinzu

7

Ich versuche, meinem Admin-Menü (Dashboard / Backend) einen Link hinzuzufügen, der zum Frontend von WordPress führt. Daher möchte ich im Menü einen Link, der mich zum Blog führt.

Ich habe ein paar Möglichkeiten gefunden, um dem Admin-Menü neue Inhalte hinzuzufügen, aber ich konnte keine Verknüpfung zu home_url herstellen. Es scheint, dass das Admin-Menü nur dazu dient, Sie mit Inhalten innerhalb des wp-admin zu verknüpfen . Hat das jemand geschafft?

Bearbeiten:
Versucht mit diesem: https://gist.github.com/792b7aa5b695d1092520

add_admin_menu_item('Overview',array( 
      'title' => 'View Site',
      'slug' => get_bloginfo('url')
  ));

Was mir den Link hxxp: //myurl.com/myurl.com gibt
Mit diesem Plugin (hxxp: //wordpress.org/extend/plugins/admin-menu-editor/) erhalte ich:
hxxp: //myurl.com /wp-admin/www.test.com

INT
quelle
Da dies immer noch im oberen Suchergebnis angezeigt wird und nach vielen Stunden der Suche, ist dies eine Möglichkeit, dies ohne Weiterleitung zu tun. techedg.com/2014/09/06/5575/…

Antworten:

7

Sie können eine Funktion erstellen, die wie folgt zum Front-End umleitet:

function redirect_home_987(){
  wp_redirect( home_url() ); 
  exit;
}

und rufen Sie diese Funktion in der WordPress-Standardfunktion add_menu_page wie folgt auf:

add_menu_page( 'redirecting', 'View Site', 'read', 'my-top-level-handle', 'redirect_home_987');

Hoffe das hilft

Bainternet
quelle
Ich bin mir nicht sicher, ob ich dich richtig verstehe. Ich habe dies jetzt zu meiner functions.php hinzugefügt: add_action ('admin_menu', 'add_viewsite'); Funktion add_viewsite () {add_menu_page ('Weiterleiten', 'Site anzeigen', 'Lesen', 'Handle der obersten Ebene', 'Redirect_home_987'); } // Rufe diese Funktion für eine "Home" -Linkfunktion auf. Redirect_home_987 () {wp_redirect (home_url ()); Ausfahrt; } Was mir einen Link gibt, der so aussieht: url.com/wp-admin/admin.php?page=my-top-level-handle
INT
1
Ich hatte das gleiche Problem - einige der Header wurden bereits gesendet. Versuchte ein paar Optionen; Die einzige, die zu funktionieren schien (mit der ich nicht wirklich zufrieden bin), ist die Kombination des oben genannten mit Javascript, wie diese Antwort
Hobo
Es wird ein Fehler "Header bereits gesendet" ausgelöst.
Joel James
1

Der Name der Site (oben links neben dem WP-Logo) verweist auf das Front-End. Reicht das nicht aus?

Es wäre auch hilfreich, wenn Sie Code, den Sie bisher ausprobiert haben, in die Frage aufnehmen würden.

Selten
quelle
Danke für deine Antwort. Ich habe den Namen der Site entfernt, da dadurch das Layout meines benutzerdefinierten Backends beschädigt wurde. Daher muss ich stattdessen im Menü einen Link zum Frontend implementieren.
INT
1

Sie können den Administratormenüs keine Elemente hinzufügen, die auf externe URLs verweisen. Die Funktionen zum Hinzufügen von Menüs unterstützen dies nicht und lassen dies auch nicht zu.

Wenn Sie jedoch einen Rückruf an den admin_menuHook anhängen , können Sie einige Elemente manuell einfügen und das nicht externe URL-Problem vollständig lösen. Ich mache das selbst und bin ziemlich überrascht, dass noch niemand auf das Problem mit externen Menü-Links hingewiesen hat.

Ich habe ein Beispiel für die Beantwortung des Hinzufügens eines beliebigen Links zum Admin-Menü angegeben.

Lassen Sie mich wissen, ob das hilft.

t31os
quelle
Tatsächlich scheint diese Frage ein genaues Duplikat dieser Frage zu sein. Also habe ich meine Stimme bekommen, um es zu schließen!
Jan Fabry
@ Jan Fabry - Ich dachte, als ich auf die andere Frage verlinkt habe, habe ich auch dafür gestimmt, als Duplikat zu schließen (der Benutzer sollte auch die Antwort haben, nach der er jetzt sucht, so dass das Schließen nicht als schlechte Sache angesehen werden muss ).
t31os
0
add_action('admin_menu', 'example_admin_menu');

/**
* add external link to Tools area
*/
function example_admin_menu() {
    global $submenu;
    $url = 'http://www.example.com/';
    $submenu['tools.php'][] = array('Example', 'manage_options', $url);
}
iAmirhosseinhpv
quelle
-1

füge einfach ../ als Slug-Präfix hinzu:

add_admin_menu_item('Overview',array( 
  'title' => 'View Site',
  'slug' => '../slug'          // relative url
));
Massimo Galante
quelle
1
Bitte bearbeiten Sie Ihre Antwort und fügen Sie eine Erklärung hinzu: Warum könnte das das Problem lösen?
Fuxia