Beim Einrichten von Meta-Boxen in einem benutzerdefinierten Beitragstyp habe ich den add_meta_boxes
Hook verwendet, z
add_action('add_meta_boxes', 'meta_box_setup');
function meta_box_setup()
{
add_meta_box(
'mb_movie_review',
'Movie Review Details',
'display_movie_review_mb',
'movie-reviews',
'side',
'high'
);
}
Aber ich habe gerade dieses Tutorial gelesen, das das Folgende mit dem admin_init
Haken macht, wie so ...
add_action('admin_init', 'meta_box_setup');
function meta_box_setup()
{
add_meta_box(
'mb_movie_review',
'Movie Review Details',
'display_movie_review_mb',
'movie-reviews',
'side',
'high'
);
}
Dies ist das erste Mal, dass ich es mit dem admin_init
Haken gesehen habe.
Frage
Die letztere Methode (mit admin_init
) funktioniert , aber ...
- Ist dies die bevorzugte Methode? (dh optimierter?)
- nur eine andere Art, die gleichen Ergebnisse zu erzielen, oder
- ein schlechter Weg, um Meta-Boxen hinzuzufügen? (Wenn ja warum?)
custom-post-types
metabox
admin-menu
Schläfer
quelle
quelle
add_meta_boxes
wird dies bevorzugt.add_meta_boxes
. Wir haben noch"add_meta_boxes_$post_type"
für eine feinere Kontrolle.Antworten:
Schauen Sie sich diese Liste an: http://codex.wordpress.org/Plugin_API/Action_Reference
add_meta_boxes
wird dies bevorzugt. Eines Tages in der Zukunft kann WordPress etwas ändern und durch die Verwendung der am besten geeigneten Hooks erhöhen Sie Ihre Chancen, dass Ihr Code auch in Zukunft funktioniert.add_theme_support()
der im Allgemeinen mitafter_setup_theme
Aktions-Hook nur für angemeldete Benutzer verwendet wird, die Administratoren sind. Mit diesem Hook können Sie jedoch noch nicht auf diese Informationen zugreifen. Sie müssten daher wahrscheinlich stattdessenset_current_user
oderinit
Action-Hooks verwenden (nach einigen Recherchen, wenn dies sicher ist).quelle
Es gibt mehrere andere Haken:
und sofort danach läuft:
Wenn Sie innerhalb des Hooks / Rückrufs, der die Meta-Boxen tatsächlich registriert, verschiedene Abbruchprüfungen durchführen möchten, verwenden Sie eine der oben genannten Methoden, da das
\WP_Screen
Objekt nicht bereits bei der Ausführung gefüllt wirdadmin_init
.Wenn Sie den allgemeineren
add_meta_boxes
Hook verwendet haben, können Sie ihn anhand seines ersten Arguments überprüfen:Wenn Sie Ihre Meta-Box nicht hinzufügen möchten, solange der Beitrag nicht mindestens einmal gespeichert wurde, können Sie dies überprüfen
und so weiter. Fazit: Wenn Sie eingrenzen möchten, verwenden Sie die oben gezeigten Haken.
quelle