Добавьте ссылку на меню (на страницу Wordpress) в Меню администратора/Боковой панели
Я пытаюсь добавить ссылку на боковой панели администратора, которая ссылается на одну из страниц, которые я создал в разделе СТРАНИЦЫ. Например, я создал страницу "О компании". Поэтому на боковой панели я хотел бы получить ссылку на "О программе", которая загружает эту ссылку: post.php?post=7&action=edit
Почему? Я пытаюсь это сделать, потому что я работаю на веб-сайте, на котором есть 4 пользовательских типа сообщений и 3 страницы. Пользовательские типы записей имеют ссылки в меню администратора, поэтому я думаю, что было бы лучше, если бы на 3 страницах также были прямые ссылки на боковой панели, вместо того, чтобы нажимать СТРАНИЦЫ, а затем просматривать список из 3 страниц и нажимать "РЕДАКТИРОВАТЬ" (а затем я бы скрыл ссылку на раздел "Страницы" из меню администратора).
Я шел по этому пути, но, похоже, это не то, что мне нужно/нужно (я не могу связать это с тем, где я хочу): http://codex.wordpress.org/Administration_Menus#Inserting_the_Pages
2 answers
Для динамического добавления пунктов меню вы можете использовать WP_Query, в частности get_posts или get_pages. Получить страницы более последовательно. Вот пример добавления всех страниц в меню администратора страниц. Вы можете изменить параметры, чтобы исключить, включить, упорядочить и т. Д. В приведенных ниже $args. Чтобы перейти на пользовательский тип записи, просто измените переменную $custom на имя вашего типа записи.
/*-----------------------------------------------------------------------------------*/
/* 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');
}
Или просто добавить по отдельности:
/*-----------------------------------------------------------------------------------*/
/* 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');
}
Это добавит меню администратора верхнего уровня в другие ваши страницы:
/*-----------------------------------------------------------------------------------*/
/* 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);
}