web-dev-qa-db-ja.com

カテゴリとしてのカスタム分類:「最も使用されている」タブを削除しますか?

私はこの投稿タイプの一種のカテゴリとして機能するcustom-post-typeのカスタム分類を作成しました。

私の分類法のメタボックスには2つのタブがあります。通常の投稿の通常のカテゴリと同じように、私のカテゴリ用のタブと「よく使用される」という2番目のタブがあります。

この「最もよく使われる」タブを取り除く方法はありますか?

前もって感謝します?

2
mathiregister

はい - まずWordPressが自動的に作成するメタボックスを「登録解除」する必要があります。

add_action( 'admin_menu', 'myprefix_remove_meta_box');  
function myprefix_remove_meta_box(){  
   remove_meta_box('my-tax-metabox-id', 'post', 'normal');  
}  

my-tax-metabox-idはメタボックスのIDです。その後、メタボックスを「再登録」して、出力に生成される独自のコールバック関数を提供します。

//Add new taxonomy meta box  
 add_action( 'add_meta_boxes', 'myprefix_add_meta_box');  
 function myprefix_add_meta_box() {  
     add_meta_box( 'mytaxonomymetabox_id', 'My Taxonomy','myprefix_mytaxonomy_metabox','post' ,'side','core');  
 }  

  function myprefix_mytaxonomy_metabox( $post ) {  
     //This function determines what displays in your metabox
     echo 'This is my taxonomy metabox';  
  } 

それからそれは単に 'default'階層メタボックスマークアップを模倣するが、タブを削除することの問題です。 私が書いたこの記事を見つけることができるかもしれません 。要するに、 http://core.trac.wordpress.org/browser/tags/3.3/wp-admin/includes/meta-boxes.php#L307

それが階層メタボックスの出力を担当する関数です - それをわずかに変更したいでしょう(タブを削除し、$taxonomy変数を定義するなど)。

2
Stephen Harris

より単純な解決策を探している人のために、例えば、問題の分類法が "eventtype"であると仮定して、以下のCSSをバックエンドに追加することができます。

/* make sure tabs and the popular div itself are not shown */
#eventtype-pop,#eventtype-tabs{
    display: none !important;
}
/* make sure the All Terms div is always shown, and remove extra spacing and styles */
#eventtype-all,#eventtype-all,#eventtype-all ul,#eventtype-all ul{
    display: block !important;
    padding:0;
    margin:0;
    background: transparent;
    border:0;
}

このCSSを既存の管理CSSに追加するか、単純な管理フックを使用して追加できます。

add_action('admin_head', 'adminCSS');

function adminCSS(){
    ?><style type='text/css'>
    /* make sure tabs and the popular div itself are not shown */
    #eventtype-pop,#eventtype-tabs{
        display: none !important;
    }
    /* make sure the All Terms div is always shown, and remove extra spacing and styles */
    #eventtype-all,#eventtype-all,#eventtype-all ul,#eventtype-all ul{
        display: block !important;
        padding:0;
        margin:0;
        background: transparent;
        border:0;
    }
    </style><?php
}

この例ではインラインCSSを示していますが、必要なすべての規則を含む外部CSSを追加することもできます。

2
guidod