我试图通过自定义创建的主题插件,而不是functions.php文件,将自定义按钮添加到WordPress仪表板。
我尝试过使用add_menu_page()方法https://developer.wordpress.org/reference/functions/add_menu_page/,但我认为我并不完全理解它,因为它根本不适用于我:
<?php
add_action('admin_menu', 'mt_add_pages');
function mt_add_pages() {
add_menu_page( 'Custom Admin Page Title', 'Custom Menu Title', 'manage_options', 'custom_admin_page_slug', 'pg_building_function','',3 );
}
function mt_toplevel_page() {
echo "<h2>" . _( 'page contents for the menu' ) . "</h2>";
}
此外,我希望能够直接在按钮上创建链接以转到自定义内部/外部URL(target ='_ blank') - 不仅仅是在点击时在仪表板中创建了管理页面。
我做错了吗?我可以使用这种方法来做到这一点吗?
答案 0 :(得分:2)
add_menu_page
发生错误,回调为pg_building_function
,但您展示的功能为mt_toplevel_page
。
一种选择是重定向页面而不是打印任何内容:
add_action('admin_menu', 'mt_add_pages');
function mt_add_pages() {
add_menu_page( 'Custom Admin Page Title', 'Custom Menu Title', 'manage_options', 'custom_admin_page_slug', 'pg_building_function','',3 );
}
function pg_building_function() {
wp_redirect( 'https://google.com' );
exit;
}
另一个是使用JavaScript:
function pg_building_function() {
echo "<script>window.open('https://google.com');</script>";
}
最后,一些jQuery修改了菜单属性:
add_action( 'admin_menu', 'mt_add_pages' );
add_action( 'admin_head', 'redirect_custom_menu' );
function mt_add_pages() {
add_menu_page( 'My Menu', 'My Menu', 'manage_options', 'custom_admin_page_slug', __return_null,'',3 );
}
function redirect_custom_menu(){
?>
<script type="text/javascript">
jQuery(document).ready( function($) {
$('a.toplevel_page_custom_admin_page_slug').attr('href','https://google.com').attr('target','_blank');
});
</script>
<?php
}