在wp-admin的外观菜单下放置一个直接指向定制样式表的链接

时间:2013-04-28 作者:gurung

FINAL UPDATE: @birgire更新的代码解决了我的问题。如果您面临类似问题,请阅读公认的答案。

<小时>ORIGINAL QUESTION IN DETAIL: 目前,在admin的外观菜单下,有一个名为“编辑器”的链接,单击该链接将导致可编辑的主样式表,我的努力是将链接放在自定义样式表上,因为这样更方便,从长远来看,我可以节省大量时间。这个链接可能会显示为外观下的一个子菜单项(直接链接到我的自定义样式表.css),我倾向于比其他任何东西都更频繁地单击它。

为了实现这一目标,我按照this article 关于如何在wp中添加菜单项,我能够构建下面的代码。

add_action(\'admin_menu\', \'add_appearance_menu\');
          function add_appearance_menu() {
add_submenu_page( \'themes.php\', \'Custom Stylesheet\', \'customstyle\', \'manage_options\', \'custom-style.css\', \'$function\'); }
但是,代码仍然不完整,因为您可以看到,我不知道在第3行的实际函数中插入什么。如果您必须知道,自定义样式表。css位于主题文件夹的根目录中,而且我正在使用高级主题,但我不确定这是否是主题级别的问题。

这段不完整的代码在其他方面似乎仍能正常工作,因为我可以在外观菜单下看到一个添加的菜单。所以,我想要实现的目标似乎并不荒谬。尽管当我单击创建的菜单链接时,它抛出了一个无效的函数错误。请给我一个提示,我应该在哪里寻找这个函数。

3 个回复
最合适的回答,由SO网友:birgire 整理而成

你可以退房this 尤金·曼努伊洛夫的回答很好。在您的情况下,相关的管理页面操作是:

load-appearance_page_customstyle
以及要编辑的自定义样式表的url:

get_admin_url().\'theme-editor.php?file=custom-stylesheet.css&theme=\'. get_stylesheet().\'&scrollto=0\';
那么您的代码示例将是:

add_action(\'admin_menu\', \'add_appearance_menu\');    
function add_appearance_menu() {
    add_submenu_page( \'themes.php\', \'Custom Stylesheet\', \'customstyle\', \'manage_options\', \'customstyle\', \'__return_null\'); 
}

add_action( \'load-appearance_page_customstyle\', \'custom_redirect\' );
function custom_redirect() {
    if ( \'customstyle\' === filter_input( INPUT_GET, \'page\' ) ) {
        $file2edit = "custom-stylesheet.css"; // change this to your needs
        $location = get_admin_url().\'theme-editor.php?file=\'.$file2edit.\'&theme=\'. get_stylesheet().\'&scrollto=0\';
        wp_redirect( $location, 301);
        exit();
    }
}
单击子菜单链接时

http://example.com/wp-admin/themes.php?page=customstyle
customstyle

钩子load-appearance_page_customstyle 从…起

do_action(\'load-\' . $page_hook);
在中/wp-admin/admin.php 使用上面定义的重定向激活。

SO网友:montrealist

从…起the documentation:

$function

(回调)(可选)要调用以输出此页面内容的函数。

换句话说,这是负责在子菜单页面上输出内容的功能。您需要创建它,给它一个好的唯一名称,然后将此名称指定为中的最后一个参数add_submenu_page:

public function wp2804_submenu_output_function {
    ?>
    <h1>here be the title</h1>
    <?php
} // end of wp2804_submenu_output_function 
add_submenu_page( \'themes.php\', /* all the other stuff */ \'wp2804_submenu_output_function\');

SO网友:sadman

您可以尝试插入带有子菜单的css菜单小部件。你可以从

http://freebietemplate.com/css_designs/css_designs.html

结束

相关推荐