Ich versuche, in der Admin-Seitenleiste einen Link hinzuzufügen, der auf eine der Seiten verweist, die ich im Abschnitt SEITEN erstellt habe. Ich habe zum Beispiel eine ABOUT-Seite erstellt. Also möchte ich in der Seitenleiste einen Link zu "Über", der diesen Link lädt: post.php?post=7&action=edit
Warum? Ich versuche dies zu tun, weil ich an einer Website mit 4 benutzerdefinierten Beitragstypen und 3 Seiten arbeite. Die benutzerdefinierten Beitragstypen haben Admin-Menü-Links. Ich denke, es wäre eine bessere Benutzererfahrung, wenn die 3 Seiten auch direkte Links in der Seitenleiste hätten, anstatt auf SEITEN zu klicken und dann die Liste der 3 Seiten anzuzeigen und auf "" klicken zu müssen. BEARBEITEN "(und dann würde ich den Link im Abschnitt SEITEN im Admin-Menü ausblenden).
Ich war auf dem Weg dorthin, aber es scheint nicht das zu sein, was ich will/brauche (ich kann nicht erreichen, dass es zu dem Link führt, zu dem ich will): http://codex.wordpress.org/Administration_Menus#Inserting_the_Pages
Zum dynamischen Hinzufügen von Menüelementen können Sie WP_Query verwenden, insbesondere get_posts oder get_pages. Seiten abrufen ist konsistenter. Im Folgenden finden Sie ein Beispiel zum Hinzufügen aller Seiten zum Menü "Seitenverwaltung". Sie können die Parameter in den unten stehenden $ args so ändern, dass sie ausgeschlossen, eingeschlossen, sortiert usw. werden. Um zu einem benutzerdefinierten Beitragstyp zu wechseln, ändern Sie einfach $ custom variable in den Namen Ihres Beitragstyps.
/*-----------------------------------------------------------------------------------*/
/* All Pages Dropdown List */
/*-----------------------------------------------------------------------------------*/
if ( !function_exists( 'admin_menu_links_to_all_edit_post_type_custom' ) ) {
function admin_menu_links_to_all_edit_post_type_custom() {
if ( !is_admin() ) // Only Run if On Admin Pages
return;
$custom = 'page'; // Change this to your custom post type slug ( So for "http://www.example.com/wp-admin/edit.php?post_type=recipes" you would change this to 'recipes' )
// Full List of Paramaters - http://codex.wordpress.org/Template_Tags/get_posts
$args = array(
'orderby' => 'modified', //Orderr by date , title , modified, etc
'order' => 'DESC', // Show most recently edited on top
'post_type' => $custom, // Post Type Slug
'numberposts' => -1, // Number of Posts to Show (Use -1 to Show All)
'post_status' => array('publish', 'pending', 'draft', 'future', 'private', 'inherit'),
);
$types = get_posts( $args ); // Get All Pages
foreach ($types as $post_type) {
add_submenu_page( // add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function );
'edit.php?post_type='.$custom
, esc_attr(ucwords($post_type->post_title)) // Get title, remove bad characters, and uppercase it
, esc_attr(ucwords($post_type->post_title)) // Get title, remove bad characters, and uppercase it
, 'edit_posts' // Require Edit Post/Page/Custom Capability
, 'post.php?post=' . $post_type->ID . '&action=edit' // Get the page link by its id
, '' // No function callback
);
}
wp_reset_postdata();
}
add_action('admin_menu', 'admin_menu_links_to_all_edit_post_type_custom');
}
if ( !function_exists( 'admin_menu_links_to_all_edit_post_type_custom_css' ) ) {
function admin_menu_links_to_all_edit_post_type_custom_css() {
?>
<style type="text/css">
ul#adminmenu li.wp-has-submenu > ul.wp-submenu.wp-submenu-wrap {
max-height: 700px;
overflow-x: scroll;
}
</style>
<?php
}
add_action('admin_head', 'admin_menu_links_to_all_edit_post_type_custom_css');
}
Oder einfach einzeln hinzufügen:
/*-----------------------------------------------------------------------------------*/
/* Single URL Submenu */
/*-----------------------------------------------------------------------------------*/
if ( !function_exists( 'single_submenu_dropdown_link_example' ) ) {
function single_submenu_dropdown_link_example() {
global $submenu;
$link_to_add = 'post.php?post=7&action=edit';
// change edit.php to the top level menu you want to add it to
$submenu['edit.php'][] = array('About', 'edit_posts', $link_to_add);
}
add_action('admin_menu', 'single_submenu_dropdown_link_example');
}
Dies wird Toplevel Admin-Menüs zu Ihren anderen Seiten hinzufügen:
/*-----------------------------------------------------------------------------------*/
/* Toplevel Page Menus */
/*-----------------------------------------------------------------------------------*/
if ( ! function_exists( 'toplevel_admin_menu_pages' ) ) {
function toplevel_admin_menu_pages(){
if ( !current_user_can('administrator') ) { // If the user is not the administrator remove and add new menus
remove_menu_page( 'index.php' ); //Dashboard
remove_menu_page( 'edit.php' ); //Posts
remove_menu_page( 'upload.php' ); //Media
remove_menu_page( 'edit.php?post_type=page' ); //Pages
remove_menu_page( 'edit-comments.php' ); //Comments
remove_menu_page( 'themes.php' ); //Appearance
remove_menu_page( 'plugins.php' ); //Plugins
remove_menu_page( 'users.php' ); //Users
remove_menu_page( 'tools.php' ); //Tools
remove_menu_page( 'options-general.php' ); //Settings
add_menu_page( 'Home', 'Home', 'edit_posts', 'post.php?post=39&action=edit', '', 'dashicons-admin-home', 6 );
add_menu_page( 'About', 'About', 'edit_posts', 'post.php?post=15&action=edit', '', 'dashicons-editor-help', 7 );
add_menu_page( 'Services', 'Services', 'edit_posts', 'post.php?post=24&action=edit', '', 'dashicons-admin-tools', 8 );
}
}
add_action( 'admin_menu', 'toplevel_admin_menu_pages' );
}
if ( !function_exists( 'wp_toolbar_frontend_admin_menu_links_extras' ) ) {
function wp_toolbar_frontend_admin_menu_links_extras($wp_admin_bar) {
if ( is_admin() || !is_admin_bar_showing() )
return;
if ( !current_user_can('edit_pages') )
return;
$wp_admin_bar->add_node(array(
'id' => 'homepage',
'title' => 'Home',
'href' => admin_url() . 'post.php?post=39&action=edit' ,
'parent' => 'site-name',
'meta' => array(
'class' => 'homepage'
)
));
$wp_admin_bar->add_node(array(
'id' => 'aboutus',
'title' => 'About',
'href' => admin_url() . 'post.php?post=36&action=edit' ,
'parent' => 'site-name',
'meta' => array(
'class' => 'aboutus'
)
));
$wp_admin_bar->add_node(array(
'id' => 'services',
'title' => 'Services',
'href' => admin_url(). 'post.php?post=32&action=edit' ,
'parent' => 'site-name',
'meta' => array(
'class' => 'services'
)
));
}
add_action('admin_bar_menu', 'wp_toolbar_frontend_admin_menu_links_extras', 99);
}