すべてのユーザーと管理者に管理者編集パネルとメタボックスの位置と可視性を設定する


10

私のWP 3.3のセットアップには、いくつかの投稿タイプと、カスタムカスタムフィールドプラグイン(多くのメタボックスを作成する)と、SEOメタボックスパネル、ScribuのPosts2Posts接続などの他のプラグインを含むカスタマイズされた編集パネルが含まれます。

問題は、これらのパネルの表示順序が非常にランダムであることが多いことです(高度なカスタムフィールドが何らかの並べ替えを提供している場合でも、他のプラグインにはそれがなく、メタボックスを変更する必要があるため、常に機能するとは限りません)ポストのタイプに応じた位置)。

現在、Wordpressでは、適切な権限を持つ各管理者/ユーザーが、編集パネルのメタボックスを希望どおりに配置することができます。しかし...すべての管理者が自分で手配する必要があります!! デフォルト/固定の順序を準備する方法、または特にsuperadminまたは1人の管理者にEVERYBODYのパネル位置を設定させる方法はありませんか?

私には少なくとも4人の管理者といくつかの編集者/作成者がいます...パネルをそれぞれのアカウントでログインするように設定するのは意味がありません...愚かで時間がかかり、ワードプレスに精通していないユーザーを混乱させます。 。

私のケースに役立つプラグインまたはコードスニペットはありますか?

ありがとうございました


誰かが1年前にwpフォーラムで同じ質問をしました。彼のトピックは回答なしで残され、解決されず、管理者がスレッドwordpress.org/support/topic/…を
unfulvio

回答:


7

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');
}

上記の答えは次のスレッドからですWPメタボックスのデフォルトの位置を変更する方法?

更新

主なフラストレーションが純粋に利用可能なメタボックスの量であり、各ユーザーがすべてのボックスを必要としていると思わない場合は、functions.phpファイルに追加された次のコードを使用して、より低いユーザーロールまたはすべてのロールからボックスを非表示にできます。注-このメソッドはメタボックスを非表示にするだけで、非アクティブ化したり削除したりすることはありません。

//Hide Post Page Options from all except Administrator
if (!current_user_can('administrator')){
function hide_post_page_options() {
global $post;
$hide_post_options = "<style type=\"text/css\"> #wptotwitter_div, wpseo_meta, #al2fb_meta, #misc-publishing-actions .misc-pub-section label, #misc-publishing-actions .misc-pub-section #post-status-display, #misc-publishing-actions .misc-pub-section .edit-post-status, #visibility.misc-pub-section, .al2fb_post_submit, #slugdiv, #edit-slug-box, #screen-options-link-wrap { display: none; }</style>";
print($hide_post_options);
}
add_action( 'admin_head', 'hide_post_page_options'  );
}

//Hide Post Page Options from ALL users
function hide_all_post_page_options() {
global $post;
$hide_all_post_options = "<style type=\"text/css\"> #taxonomy-category li.hide-if-no-js, #commentstatusdiv, #wypiekacz_sectionid, #postexcerpt, #trackbacksdiv, #postcustom, #yarpp_relatedposts { display: none !important; }</style>";
print($hide_all_post_options);
}
add_action( 'admin_head', 'hide_all_post_page_options'  );

基本的には、div IDまたはクラスをカンマで区切って入力するだけです。私はそこにそのままにして、あらゆる種類のメタボックスと領域を非表示にできることを示しました。

#wptotwitter_div - WP to Twitter plugin
#wpseo_meta - Wordpress SEO by Yoastplugin
#al2fb_meta, .al2fb_post_submit - Add Link to Facebookplugin
#misc-publishing-actions .misc-pub-section label, #misc-publishing-actions .misc-pub-section #post-status-display, #misc-publishing-actions .misc-pub-section .edit-post-status, #visibility.misc-pub-section - Default Wordpress Publish Status and Visibility
#slugdiv, #edit-slug-box - The post slug
#screen-options-link-wrap - The "Screen Options" tab at the top of the page
#taxonomy-category li.hide-if-no-js - The "Most Used" categories tab
#commentstatusdiv - The comments on the post
#wypiekacz_sectionid - Wypiekacz plugin
#postexcerpt - Post excerpt
#trackbacksdiv - Trackbacks
#postcustom - Custom post fields
#yarpp_relatedposts - Yet Another Related Posts Plugin

(SEは見出しを表すために#を使用するため、例を「コード」に入れました)

あなたのように、すべてのメタボックスに非常に不満を感じたので、これをあなたに捨てると思いましたが、最終的には、不要なボックスの数が膨大だったと思います。私のウェブサイトの「著者」にとって、タイトル、コンテンツ、下書きとして保存、今すぐ公開するか、投稿予定、タグ、カテゴリ、特集画像など、非常に合理化されました。


それでも私の問題は解決しません。これを行うには、私のwysiwyg設定をすべてのユーザーにコピーします(したがって、パネルの外観を一度だけ設定します)。理由:一部のプラグインは独自のメタボックスを追加します。また、さまざまな投稿タイプについて、それに応じてメタボックスを配置します。Add_meta_boxには通常/高/低のみがあります...役に立たない多くのメタボックスがあります。高度なカスタムフィールドには少なくとも注文番号がありますが、他のメタボックスが存在する場合はうまく機能しません。これを行う最善の方法は、wysiwyg ...
unfulvio

プラグインによって作成されたすべての追加のメタボックスを使用して必要ですか?私にとって、不要なメタボックスはすべて私をいつも苛立たせるものなので、私は尋ねます。それが実際にあなたのケースである場合、私は上記のUPDATEを作成しました。特定のユーザーロールに不要なボックスを単に非表示にすると、問題が解消される可能性があります。
Travis Pflanz 2012

メタボックスをスタイリングで単に隠すのではなく、ユーザーごとに削除してみませんか?
スティーブンハリス

削除するすべてがメタボックスであるとは限らず、一部はメタボックスの一部であるため、2つではなく1つの関数を使用することを考えました。
Travis Pflanz 2012

トラビス、これにこれを使ってくれてありがとう。ただし、CSSソリューションはメタボックスの移動の問題を解決しません(以前のフィルタリングと再配置のソリューションは部分的に解決します)。先に述べたように、私のセットアップには、私が作成した特別なメタボックスを持つ多くのカスタム投稿タイプがあり、それらはそこにある必要があります。非表示にしたいものはほとんどありません(ただし、一部の管理者にとっては便利なため、それらを完全に削除したくないので、CSSで非表示にするのはよくありません)。この問題に対する満足のいく解決策はまだ見つけていません。とにかく頑張ってくれてありがとう。
unfulvio 2012

1

Adminimizeプラグインを調べましたか?

ユーザーの役割ごとにメタボックスをアクティブ化/非アクティブ化したり、位置を設定したりできます。設定には少し時間がかかり、ドキュメントはまあまあですが、まあまあですが、説明している内容を処理できるはずです。


そのプラグインでは、「位置を構成」することできませ。可視性のみです。それは非常に素晴らしいプラグインです..
frnhr

私はプラグインをそれほど注意深く見ていなかったことを告白しますが、プラグインがそれを操作できる場合、おそらくいくつかのコード追加を介して他を操作することができます。素晴らしい出発点になります。
JCL1178 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.