2017-05-10 38 views
2

我試圖通過自定義創建的主題插件而不是functions.php文件來將它自定義按鈕添加到WordPress儀表板。如何添加具有自定義鏈接到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')的鏈接 - 不僅僅在點擊時在儀表板中創建了管理頁面。

我做錯了什麼?我能用這種方法做到這一點嗎?

回答

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 
} 
+1

好的答案,我喜歡它! –

相關問題