Ich frage mich, ob es eine Möglichkeit gibt, die Standardposition von Wordpresses-Metaboxen wie "Featured Image" für benutzerdefinierte Beitragstypen zu ändern, ohne sie manuell ziehen zu müssen.
Beispiel:
Ich frage mich, ob es eine Möglichkeit gibt, die Standardposition von Wordpresses-Metaboxen wie "Featured Image" für benutzerdefinierte Beitragstypen zu ändern, ohne sie manuell ziehen zu müssen.
Beispiel:
Antworten:
Sie können die Standard-Meta-Boxen mit remove_meta_box entfernen und sie an einer anderen Position mit add_meta_box erneut hinzufügen:
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');
}
Dadurch wird es aus der Seitenspalte entfernt und der Hauptspalte hinzugefügt. Ändern Sie post
in diesem Beispiel den Namen Ihres benutzerdefinierten Beitragstyps.
add_meta_box()
einen $callback
Funktionsnamen braucht , woher weiß ich den Namen der von WordPress verwendeten Funktion? Angenommen, ich möchte dasselbe mit der Seitenleiste meta_box 'Categories' (#categorydiv) tun.
/wp-admin/edit-form-advanced.php
und Sie werden sehen, wo WordPress alle Kern-Meta-Boxen und die Rückrufe und Argumente, die es verwendet, hinzufügt. für Kategorien ist es post_categories_meta_box
.
Damit hatte ich auch zu kämpfen. Ich habe nicht wirklich eine saubere Möglichkeit gefunden, das Layout / die Reihenfolge neu zu definieren - zumal es von den Benutzern geändert werden kann, wenn / wenn sie die Felder ziehen.
Ich mag es, Dinge mit WordPress zu tun (das zahlt sich normalerweise aus), mich zu überschneiden, als mit WordPress zusammenzustoßen, und die Art und Weise, wie WordPress es tut, ist wie folgt:
WordPress speichert die gezogenen Positionen pro Benutzer und Bildschirm und es gibt eine ganze Reihe von Benutzer-Meta-Tasten, die es verwendet, je nachdem, auf welcher Seite / auf welchem Bildschirm es sich befindet.
Sie können also für jeden neuen Benutzer eine Aktion oder einen Filter hinzufügen, um den Benutzer so einzustellen, wie Sie es möchten.
1) Ziehe und ordne die Seite an, die du beeinflussen möchtest, und 2) schaue in phpmyadmin in deinem User-Meta nach deiner ID und finde heraus, was wp dort gespeichert hat. 3) Codieren Sie dann die neue Benutzeraktion wie folgt, wenn ein Benutzer diese Einstellung NICHT bereits festgelegt hat (um zu vermeiden, dass eine persönliche Auswahl überschrieben wird). Sie können sie so festlegen, wie Sie es möchten - mit dem Wert, den Sie durch manuelles Festlegen erhalten haben.
In den folgenden Screenshots können Sie sich ein Bild von den von Ihnen gesuchten Benutzer-Meta-Metas machen: http://wpusersplugin.com/related-plugins/amr-user-templates/screenshots-for-user-templates/
(Am Ende habe ich ein allgemeines Plugin geschrieben, damit ich als Administrator mein bevorzugtes Layout für alle Benutzer für alle Arten von Seiten / Bildschirmen definieren kann. Dann könnten sie das ändern, z Dinge wie das Plug-in ruft nur die Benutzerwerte der Vorlage ab, es versucht nicht einmal, den Wert auf einen fest codierten Wert zu setzen.)
Wenn Sie genau Ihre Meta-Boxen bestellen möchten, können Sie dieses Plugin verwenden: https://wordpress.org/plugins/post-meta-box-order/
Es wird auf der Meta-Box-Order_post der Benutzeroption (Tabelle wp_usermeta) abgespielt.
Hinweis 1: Diese Technik kann auf jede benutzerdefinierte CPT angewendet werden, indem das Ende des Flags geändert wird: meta-box-order_ [YOUR_CPT]
Hinweis 2: Vergessen Sie nicht, den Hash im Code des Plugins zu ändern, um Ihre neue Bestellung auf alle vorhandenen Benutzer anzuwenden.