web-dev-qa-db-ja.com

カスタム投稿タイプの管理メニューリンクを編集する

WordPress管理者でカスタム投稿タイプのメニューリンクを編集しようとしています - これは可能ですか?

たとえば、現在は

/wp-admin/edit.php?post_type=application

でこれを更新したい

/wp-admin/edit.php?s&post_status=all&post_type=application&cat=36&paged=1

お時間をいただきありがとうございます

1
venomphil

admin_menuフックを使うことができます。すべてのメニューをループすることができます。

add_action( 'admin_menu', 'wpse_306432_edit_post_type_admin_menu', 11);
function wpse_306432_edit_post_type_admin_menu()
{
    global $menu;

    foreach($menu as $k => $v){
        if($v[1] == 'edit_applications') // possibly 'edit_application', I'm not sure
        {
            $menu[$k][2] = 'edit.php?post_status=all&post_type=application&cat=36&paged=1'; // I modify your query
            break;
        }
    }
}

あなたのために働くべきです:)

ニースを追加することを躊躇しないでください:

echo '<pre>';
var_dump($menu);
echo '</pre>';
die();

global $menuの後でそれがどのように機能するかを理解し、そしてもっと変更しましょう!

あなたの答えをありがとう:)それは私が思い付いたものより良い解決策のように見えます!

私は管理者にJavaScriptを追加し、そのようにリンクを更新しました

function custom_admin_js() {
$url = get_bloginfo('template_directory') . '/library/js/wp-admin-XXX.js';
if( current_user_can( 'XX' ) ){ 
    echo '"<script type="text/javascript" src="'. $url . '"></script>'";
}; } add_action('admin_footer', 'custom_admin_js');
0
venomphil