In der folgenden Tutorial-Spalte erfahren Sie, wie Sie Meta Box in WordPress hinzufügen. Ich hoffe, dass es für Freunde hilfreich ist, die es benötigen! Die Methode zum Hinzufügen von Meta-Boxen in WordPress erfordert die Verwendung der Aktion „Meta-Boxen hinzufügen“. Mit dieser Aktion können wir Meta-Boxen für jeden Artikeltyp registrieren. In dieser Aktion müssen wir die Methode „add_meta_box()“ verwenden, um Meta-Boxen hinzuzufügen Information. Der Code lautet wie folgt
function add_rating_meta_box($post_type, $post) { // 需要哪些post type添加推荐指数 Meta Box $types = array( 'post', 'page' ); foreach ( $types as $type ) { add_meta_box( 'rating_meta_box_id', // Meta Box在前台页面中的id,可通过JS获取到该Meta Box '推荐指数', // 显示的标题 'render_rating_meta_box', // 回调方法,用于输出Meta Box的HTML代码 $type, // 在哪个post type页面添加 'side', // 在哪显示该Meta Box 'default' // 优先级 ); } } add_action( 'add_meta_boxes', 'add_rating_meta_box' );
Hier definieren wir ein benutzerdefiniertes Feld im $types-Array, das sowohl Post als auch Page benötigen, um den Index zu empfehlen, und weisen dann WordPress an, die Methode „render_rating_meta_box“ zu verwenden, um die gefundene Meta-Box zu rendern in der Seitenleiste (Seite). Da nicht viel Inhalt vorhanden ist, reicht die Seitenleiste aus. Wenn mehr Inhalt vorhanden ist, können Sie „Seite“ auf „Erweitert“ ändern, sodass die Meta-Box im Hauptinhaltsbereich gerendert wird.
Als nächstes schauen wir uns an, wie es gerendert wird
function render_rating_meta_box( $post ) { // 添加 nonce 项用于后续的安全检查 wp_nonce_field( 'rating_nonce_action', 'rating_nonce_name' ); // 获取推荐指数的值 $rating_key = 'rating'; $rating_value = get_post_meta( $post->ID, $rating_key, true ); $rating_value = (int)$rating_value; $html = '<select name="rating_field">'; for ($i = 0; $i <= 10; $i++) { $selected = ''; if ($i == $rating_value) { $selected = 'selected="selected"'; } $html .= sprintf('<option value="%s" %s>%s星</option>', $i, $selected, $i/2); } $html .= '</select>'; echo $html; }
Hier verwenden wir zuerst wp_nonce_field(), um ein Nonce-Feld zur Sicherheitsüberprüfung hinzuzufügen, lesen dann den Wert des empfohlenen Indexes und durchlaufen 1~10, um die verfügbaren Optionen If auszugeben Der Wert entspricht dem empfohlenen Index und wird standardmäßig ausgewählt. Durch das Dropdown-Feld kann das Problem der umständlichen Eingabe und der Unfähigkeit zur Überprüfung gelöst werden. Merken Sie sich den Wert des Namensattributs des Dropdown-Felds (rating_field), das verwendet wird, um den ausgewählten Wert im folgenden Code zu erhalten.
Wenn der Artikel schließlich gespeichert wird, muss auch der Empfehlungsindex gespeichert werden
function save_rating_post_data( $post_id ) { // 检查nonce是否设置 if (!isset($_POST['rating_nonce_name'])) { return $post_id; } $nonce = $_POST['rating_nonce_name']; // 验证nonce是否正确 if (!wp_verify_nonce( $nonce, 'rating_nonce_action')) { return $post_id; } // 如果是系统自动保存,则不操作 if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return $post_id; } // 检查用户权限 if ($_POST['post_type'] == 'post') { if (!current_user_can('edit_post', $post_id )) { return $post_id; } } $rating_key = 'rating'; // 获取数据 $rating_value = $_POST['rating_field']; // 更新数据 update_post_meta( $post_id, $rating_key, $rating_value ); } add_action( 'save_post', 'save_rating_post_data' );
Hier werden eine Reihe von Prüfungen durchgeführt, darunter die gerade festgelegte Nonce-Prüfung, die Prüfung der Benutzerberechtigungen und der Ausschluss des automatischen Speicherns. Verwenden Sie dann die Methode update_post_meta(), um die Daten in der Datenbank zu speichern.
Zu diesem Zeitpunkt haben wir die Änderung des benutzerdefinierten Felds des Empfehlungsindex abgeschlossen und können den Empfehlungsindex des Artikels problemlos auswählen.
Warte. . .
Aufmerksame Freunde haben vielleicht herausgefunden, dass die Funktion nach Anwendung der oben genannten drei Codeteile tatsächlich realisiert werden kann. Unter dem Standardbereich für benutzerdefinierte Spalten können Sie jedoch sehen, dass es eine Spalte mit dem Namen „Bewertung“ gibt, bei der es sich um den Empfehlungsindex handelt, den wir gerade ausgewählt haben. Wenn Sie nicht möchten, dass es in der benutzerdefinierten Spalte angezeigt wird, können Sie $rating_key im obigen Code so ändern, dass es mit einem Unterstrich beginnt, sodass WordPress es nicht anzeigt. Beachten Sie, dass es zwei Orte zum Ändern gibt.
// 原来的代码 $rating_key = 'rating'; // 改后的代码 $rating_key = '_rating';
Das obige ist der detaillierte Inhalt vonSo fügen Sie Meta Box zu WordPress hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!