web-dev-qa-db-ja.com

カテゴリのメタボックスから "+新しいカテゴリの追加"リンクを削除する方法

そのことに関してWordpressのカテゴリメタボックスやカスタム分類ボックスの中に "+ Add New Category"というテキストのリンクがあるのですが、このリンクを隠すためにJSやCSSのハックに頼らずに削除できる方法はありますか?ある種のフィルタやアクションフックを使ってそれを隠す方法が最善です。

それを削除するためのアクションフックやフィルタメソッドが存在しない場合は、最後の手段としてJSとCSSのソリューションを利用することができます。

私がこれをしている理由は、私がMagentoと統合されたWordpressインストールを持っていて、ポストがブランドに割り当てられることができるように私がMagentoデータベースからのブランドのリストで「ブランド」と呼ばれるカスタム分類学を作成して移植しているからです。明らかに、これは私がユーザーが自分自身の用語で追加することができず、それをMagentoと同期させるために動的に追加されたブランドを選択することしかできないことを意味します。

ありがとうございました。

9

デフォルトのメタボックスはファイルwp-admin/includes/meta-boxes.phpに登録されています。分類メタボックスを生成する関数post_categories_meta_box()があります。現在、出力をフィルタリングするためのフックはありません。ただし、次のいずれかを実行できます。

  1. remove_meta_box()を使用して既存のカテゴリメタボックスを削除し、自分自身をadd_meta_box()に登録します。既存のコードを新しいメタボックス関数にコピーして貼り付け、行345から367までのコードブロックを削除します。
  2. より明確な方法:remove_cap()を使用して、ユーザーロールからedit_terms機能を削除します。 metabox関数を見ると、345行に、ユーザーがedit_termsの機能を持っているかどうかをチェックするifステートメントがあります。もしそうなら、+ Add New XYが表示されます。ここでの問題は、ケーパビリティの名前は動的であり、何でも構いません。誰かが別の機能の命名で分類法を登録した場合、これはおそらく動作しません(テストされていません)。
14
rofflox