'Pages - > new/edit'のテキストフィールドの下に 'Appearance - > Widgets'メニューを表示したいです。管理者の一部になって他の場所に表示することは可能ですか?
いくつかの答えを読むと、この質問は誤解されているようです。ウィジェット編集adminをページ編集管理画面に表示する方法を探しています。
私がよく理解しているならあなたはメタボックスの中でインターフェースを追加したり削除したりするウィジェットを見せたいです。
簡単ですが、少し汚い方法でiframeを使用します。
function metaboxed_widgets_admin() {
if ( ! current_user_can( 'edit_theme_options' ) ) return;
add_meta_box('metaboxed_widgets', __('Widgets'), 'metaboxed_widgets_admin_cb', 'page');
}
add_action( 'add_meta_boxes', 'metaboxed_widgets_admin' );
function metaboxed_widgets_admin_cb() {
if ( ! current_user_can( 'edit_theme_options' ) ) return;
$format = '<div style="margin:0px;padding:0px;">';
$format .= '<iframe src="%s" frameborder="0" %s></iframe></div>';
// add a query arg to recognize when inside iframe, used to hide menu and admin bar
$url = add_query_arg(
array( 'iframe'=> wp_create_nonce('widgets') ), admin_url( 'widgets.php' )
);
printf( $format, $url, 'style="height:1200px;width:100%;" height="100%" width="100%"' );
}
function metaboxed_widgets_hide_stuff() {
if ( ! is_admin() || get_current_screen()->id !== 'widgets' ) return;
$iframe = filter_input( INPUT_GET, 'iframe', FILTER_SANITIZE_STRING );
if ( wp_verify_nonce( $iframe, 'widgets' ) ) {
echo '<style>'
. '#wpadminbar, #adminmenuback, #adminmenuwrap, #wpfooter, '
. '#screen-meta-links, .wrap > h2 { display:none!important; }'
. '#wpcontent { margin-left:25px!important; }'
. '.wrap{ margin-top:0!important; }</style>';
}
}
add_action( 'admin_head-widgets.php', 'metaboxed_widgets_hide_stuff' );
ウィジェットを見ることができるユーザーだけがウィジェットメタボックスを見ることになることに注意してください。 'edit_theme_options'
機能を与えない限り、編集者には何も表示されません。
はい、そうです。これは非常に便利な機能です。ウィジェットの「隠れ場所」は、WordpressのバックエンドであるIMHOの最も直感的ではないデザインの1つです。
次のようなプラグインを使うことができます: ページ上のウィジェット
あるいはおそらく、 Widgetize Pages のようなもっと最新のものです。
あるいは、自分でコードを作成し、それを管理者の他の場所(ダッシュボードなど)に配置することもできます。チュートリアル このような はその追求に役立つはずです。
または伝説の 高度なカスタムフィールドプラグイン を使用して、任意の個々のページに追加できる1つ以上の独自の/必須の「ウィジェット」を作成できます。