2017-06-08 18 views
1

WordPressの管理メニューに2つの追加サブメニュー項目を追加します。私がフックしたいトップレベルのメニューは、WooCommerceによって作成された 'Products'メニューです。WordPress Adminサブメニューからフィルタリングされたページに移動

edit.php?post_type=product 

表示するメニュー項目には、商品カテゴリで商品をフィルタリングすることでアクセスできます。例えば。

http://dev3.benefacto.org/wp-admin/edit.php?s&post_type=product&product_cat=manchester 

私はこれを行うには(下)作業溶液を作ってみた - しかし、それは私が単に「メニュースラグに何かを追加することができるはずのように私は感じたときに関数を呼び出す必要があるため、それが無粋ですおそらく変数。

大変ありがとうございます。

// Hook into the Admin Menu 

add_action('admin_menu', 'lnz_wp_adminmenu_addproductpages'); 

// Add Product Categories 
function lnz_wp_adminmenu_addproductpages() { 
add_submenu_page('edit.php?post_type=product', 'Manchester Charities - Page', 'Manchester Charities- Menu', 'manage_options', 'product_cat_manchester', 'lnz_wp_adminmenu_redirectmanchester'); 
add_submenu_page('edit.php?post_type=product', 'London Charities - Page', 'London Charities- Menu', 'manage_options', 'product_cat_london', 'lnz_wp_adminmenu_redirectlondon'); 
} 

// Create Redirects for relevant links 
function lnz_wp_adminmenu_redirectmanchester() { 
    header('Location: http://dev3.benefacto.org/wp-admin/edit.php?s&post_type=product&product_cat=manchester'); 
    exit(); 
} 

function lnz_wp_adminmenu_redirectlondon() { 
    header('Location: http://dev3.benefacto.org/wp-admin/edit.php?s&post_type=product&product_cat=london'); 
    exit(); 
} 

答えて

1

私の知る限りでは、WPのフックを使用して、またはglobal $submenuのようなものを修正すること、これを達成するための直接的な方法はありません...

それはjQueryのサブメニュー項目のhref属性を変更することで行うことができます。

add_action('admin_menu', function() { 
    add_submenu_page('edit.php?post_type=product', 'Manchester', 'Manchester', 'manage_options', 'cat_manchester', '__return_null'); 
    add_submenu_page('edit.php?post_type=product', 'London', 'London', 'manage_options', 'cat_london', '__return_null'); 
}); 

add_action('admin_footer', function(){ 
    ?> 
    <script> 
     jQuery(document).ready(function($) { 
      var admin_url = 'http://dev3.benefacto.org/wp-admin/edit.php'; 
      $('#menu-posts-product').find('a[href*="cat_manchester"]').attr('href',admin_url+'?s&post_type=product&product_cat=manchester'); 
      $('#menu-posts-product').find('a[href*="cat_london"]').attr('href',admin_url+'?s&post_type=product&product_cat=london'); 
     }); 
    </script> 
    <?php 
}); 
+0

ありがとうございます。私は明日それを渦巻きにし、それがどのように動作するかを参照して戻ってくるでしょう! –

関連する問題