Antworten:
Es gibt keine praktischen Haken, um dieser Box etwas hinzuzufügen.
Sie könnten eines von zwei Dingen tun.
1. Fügen Sie eine neue Meta Box hinzu
Sie tun dies, indem Sie sich an die add_meta_boxes
Aktion anschließen und anrufen add_meta_box
. Sie können in Ihrem Aufruf von add_meta_box eine Rückruffunktion angeben. Dieser Rückruf sorgt dafür, dass Ihre Auswahlliste wiedergegeben wird.
<?php
add_action( 'add_meta_boxes', 'wpse44966_add_meta_box' );
/**
* Adds the meta box to the page screen
*/
function wpse44966_add_meta_box()
{
add_meta_box(
'wpse44966-meta-box', // id, used as the html id att
__( 'WPSE 44966 Meta Box' ), // meta box title, like "Page Attributes"
'wpse44966_meta_box_cb', // callback function, spits out the content
'page', // post type or page. We'll add this to pages only
'side', // context (where on the screen
'low' // priority, where should this go in the context?
);
}
/**
* Callback function for our meta box. Echos out the content
*/
function wpse44966_meta_box_cb( $post )
{
// create your dropdown here
}
2. Entfernen Sie das Meta-Feld Standard-Seitenattribute und fügen Sie Ihre eigene Version hinzu
Der gesamte Inhalt des Post-Editing-Bildschirms mit Ausnahme des Haupteditors und des Titelbereichs ist eine Meta-Box. Sie können sie entfernen, indem Sie anrufen remove_meta_box
, und sie dann durch Ihre eigenen ersetzen.
Ändern Sie daher zunächst die obige Funktion zum Hinzufügen, um einen Aufruf zum Entfernen von Meta-Boxen einzuschließen. Dann müssen Sie den page_attributes_meta_box
Funktionskörper von kopieren wp-admin/includes/meta-boxes.php
und Ihre Daten darunter ablegen.
<?php
add_action( 'add_meta_boxes', 'wpse44966_add_meta_box' );
/**
* Adds the meta box to the page screen
*/
function wpse44966_add_meta_box( $post_type )
{
// remove the default
remove_meta_box(
'pageparentdiv',
'page',
'side'
);
// add our own
add_meta_box(
'wpse44966-meta-box',
'page' == $post_type ? __('Page Attributes') : __('Attributes'),
'wpse44966_meta_box_cb',
'page',
'side',
'low'
);
}
/**
* Callback function for our meta box. Echos out the content
*/
function wpse44966_meta_box_cb( $post )
{
// Copy the the `page_attributes_meta_box` function content here
// add your drop down
}
In jedem Fall müssen Sie sich einbinden save_post
, um den Wert Ihres Feldes mit add_post_meta
und / oder zu speichern update_post_meta
.
<?php
add_action( 'save_post', 'wpse44966_save_post' );
/**
* Save our custom field value
*/
function wpse44966_save_post( $post_id )
{
// check nonces, permissions here
// save the data with update_post_meta
}
Dieses Tutorial könnte Ihnen helfen.
page_attributes_misc_attributes
, der direkt nach dem Feld "Reihenfolge" und kurz vor dem Hilfetext am unteren Rand dieser Meta-Box ausgelöst wird und die Erweiterung der Meta-Box ermöglicht, anstatt sie ersetzen zu müssen. Es wird ein einzelnes Argument übergeben, $ post, das Objekt des aktuellen Posts.