Wie verstecke ich den Seiteneditor (WYSIWYG-Editor), wenn die aktuelle Seite auf eine bestimmte Vorlage eingestellt ist?
Ich habe den folgenden Code bereits in benutzerdefinierten Meta-Feldern hinzuzufügen, wenn bestimmte Vorlagen ausgewählt werden:
add_action('admin_init','my_meta_init');
function my_meta_init()
{
$post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'];
$template_file = get_post_meta($post_id, '_wp_page_template', TRUE);
$savemeta = true;
if ($template_file == 'template-page-2quotes.php') {
add_meta_box('main_quote_meta-meta', 'Top Quote', 'main_quote_meta', 'page', 'side', 'low');
add_meta_box('sub_quote_meta-meta', 'Right Hand Side Quote', 'sub_quote_meta', 'page', 'normal', 'low');
} elseif ($template_file == 'template-page-1quote.php') {
add_meta_box('sub_quote_meta-meta', 'Right Hand Side Quote', 'sub_quote_meta', 'page', 'normal', 'low');
} elseif ($template_file == 'template-page-factsnfigures.php') {
add_meta_box('facts_n_figures-meta', 'Amount Raised', 'facts_n_figures', 'page', 'normal', 'low');
} elseif ($template_file == 'template-page-fundraising.php') {
add_meta_box('fundraising_ideas-meta', 'Fundraising Ideas', 'fundraising_ideas', 'page', 'side', 'low');
} else {
$savemeta = false;
}
if($savemeta == true) {
add_action('save_post','my_meta_save');
}
}
Was ich zum Beispiel möchte, ist, dass der Editor entfernt wird, wenn $template_file == 'template-page-2quotes.php'
Bearbeiten (Arbeitscode):
add_action('admin_init','my_meta_init');
function my_meta_init()
{
$post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'];
$template_file = get_post_meta($post_id, '_wp_page_template', TRUE);
$savemeta = true;
$hideeditor = false;
if ($template_file == 'template-page-2quotes.php') {
add_meta_box('main_quote_meta-meta', 'Top Quote', 'main_quote_meta', 'page', 'side', 'low');
add_meta_box('sub_quote_meta-meta', 'Right Hand Side Quote', 'sub_quote_meta', 'page', 'normal', 'low');
} elseif ($template_file == 'template-page-1quote.php') {
add_meta_box('sub_quote_meta-meta', 'Right Hand Side Quote', 'sub_quote_meta', 'page', 'normal', 'low');
} elseif ($template_file == 'template-page-factsnfigures.php') {
add_meta_box('facts_n_figures-meta', 'Amount Raised', 'facts_n_figures', 'page', 'normal', 'low');
} elseif ($template_file == 'template-page-fundraising.php') {
add_meta_box('fundraising_ideas-meta', 'Fundraising Ideas', 'fundraising_ideas', 'page', 'side', 'low');
} elseif($template_file == 'template-page-news.php') {
$hideeditor = true;
$savemeta = false;
} else {
$savemeta = false;
}
if($savemeta == true) {
add_action('save_post','my_meta_save');
}
if($hideeditor == true) {
add_action('admin_print_styles', 'admin_no_editor_style');
}
}
function admin_no_editor_style() {
echo "<style>#postdivrich{display:none;}</style>";
}
pages
visual-editor
templates
Scott
quelle
quelle
'supports' => array('editor')
gefragt haben, ob es einen Filter oder Hook gibt, den Sie auslösen können, um den Editor zu entfernen ...Antworten:
quelle
Sie können dies in Ihre vorhandene Logik zum Erkennen der aktuellen Seitenvorlage einbinden, sodass Sie den Editor nur für bestimmte Seiten deaktivieren.
Siehe: http://codex.wordpress.org/Function_Reference/remove_post_type_support
quelle
Sie können eine einfache CSS-Regel mit
display:none;
in Ihrem Metabox-Funktionscode hinzufügen :quelle
Zusätzlich zu den hervorragenden Nur-WP-Antworten können Benutzer des Plugins " Erweiterte benutzerdefinierte Felder" ihren Felddefinitionen einfach eine einzige Direktive hinzufügen, um den Editor von den zugehörigen Seiten zu entfernen:
Da dies in den WP-Shops, mit denen ich gearbeitet habe, ein außerordentlich häufiges Plugin zu sein scheint, sollte diese Methode erwähnt werden.
quelle