WPメタボックスのデフォルトの位置を変更する方法


回答:


22

remove_meta_boxを使用してデフォルトのメタボックスを削除し、add_meta_boxを使用して別の位置に再追加できます。

add_action('do_meta_boxes', 'wpse33063_move_meta_box');

function wpse33063_move_meta_box(){
    remove_meta_box( 'postimagediv', 'post', 'side' );
    add_meta_box('postimagediv', __('Featured Image'), 'post_thumbnail_meta_box', 'post', 'normal', 'high');
}

これにより、サイドカラムから削除され、メインカラムに追加されます。postこの例では、カスタム投稿タイプの名前に変更します。


これは理想的なように思えますが、再びミロに感謝します。
Mr.Brown

@Milo:関数名add_meta_box()が必要な$callbackように、WordPressで使用される関数の名前を知るにはどうすればよいですか?サイドバーのmeta_box 'Categories'(#categorydiv)に同じことをしたいとしますか?
マイエンウルイスラム

5
@MayeenulIslamはファイル/wp-admin/edit-form-advanced.phpを見ると、WordPressがすべてのコアメタボックスとそれが使用するコールバックと引数を追加する場所がわかります。カテゴリーの場合はpost_categories_meta_boxです。
ミロ

5

私もこれに苦労しました。特に、レイアウト/順序を再定義するための明確な方法を見つけられませんでした-特に、ユーザーがボックスをドラッグしたとき/ドラッグしたときに変更できるためです。

私はワードプレスで「やりたい」ことをするのが好きで(通常は報われます)、それと衝突するよりも格好よく、ワードプレスのやり方は次のとおりです:

wordpressは、画面ごとにユーザーごとにドラッグされた位置を保存し、どのページ/画面が表示されているかに応じて使用されるユーザーメタキーがたくさんあります。

そのため、新しいユーザーごとにアクションまたはフィルターを追加して、ユーザー設定を既定の方法に設定できます。
1)影響を与えたいページをドラッグして配置し、2)phpmyadminでユーザーメタのIDを確認し、wpに保存されている内容を確認します。3)次に、ユーザーがその設定をまだ設定していない場合(個人的な選択を上書きしないように)、新しいユーザーアクションを次のようにコーディングします。

探しているユーザーメタメタキーのアイデアを得るには、次のスクリーンショットを参照してください:http ://wpusersplugin.com/related-plugins/amr-user-templates/screenshots-for-user-templates/

(私は一般的なプラグインを書いて、管理者としてすべての種類のページ/画面のすべてのユーザーの好みのレイアウトを定義できるようにしました。その後、彼らはそれを変更できます。私のプラグインはテンプレートのユーザー値を取得するだけで、値をハードコードされた値に設定しようとさえしません。)


1
私はこのアプローチの背後にあるアイデアが好きですが、Miloのソリューションははるかに速いようですので、代わりにそのショットを与えるつもりです。後日、この方法の使用方法について詳しく説明します。あなたのコメントを1upしました。
Mr.Brown

3
Anmariが提案するプラグインは有料の商用プラグインです...昨年8月から更新されたようには見えません。あなたはまだそのプラグインを維持していますか?そうでない場合は、Githubで共有することを検討しましたか?
unfulvio

このアプローチを共有してくれた@anmariに感謝します。
マオールバラザニー

0

メタボックスを正確に注文する場合は、次のプラグインを使用できます:https : //wordpress.org/plugins/post-meta-box-order/

ユーザーオプション(テーブルwp_usermeta)のmeta-box-order_postで再生されます。

注1:フラグの末尾を変更することで、この手法をカスタムCPTに適用できます:meta-box-order_ [YOUR_CPT]

注2:プラグインのコード内のハッシュを変更して、新しい注文をすべての既存ユーザーに適用することを忘れないでください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.