Heim >CMS-Tutorial >WordDrücken Sie >Eine kurze Analyse, wie man in WordPress ein benutzerdefiniertes Feldfeld hinzufügt

Eine kurze Analyse, wie man in WordPress ein benutzerdefiniertes Feldfeld hinzufügt

青灯夜游
青灯夜游nach vorne
2023-03-06 19:40:311578Durchsuche

Wie füge ich in WordPress ein benutzerdefiniertes Feldfeld hinzu? Im folgenden Artikel erfahren Sie, wie Sie ein benutzerdefiniertes Feldfeld in WordPress hinzufügen. Ich hoffe, dass er Ihnen weiterhilft!

Eine kurze Analyse, wie man in WordPress ein benutzerdefiniertes Feldfeld hinzufügt

Wenn wir Artikel in WordPress schreiben, verwenden wir häufig einige benutzerdefinierte Felder, wie z. B. die beiden Meta-Tags der Webseitenbeschreibung und der Schlüsselwörter. Zu diesen beiden Tags können Sie lesen, was ich zuvor geschrieben habe: WordPress legt unabhängige Beschreibungen und Schlüsselwörter fest.

Normalerweise gehen wir beim Hinzufügen benutzerdefinierter Felder und ihrer Werte manuell zum Dropdown-Feld „Benutzerdefinierte Felder“ des Moduls, um die entsprechenden Felder auszuwählen, und geben sie dann ein. Der Wert muss übermittelt und abgewartet werden für einen kurzen Zeitraum, was etwas mühsam erscheint. Ist es also möglich, ein separates Panel für diese häufig verwendeten benutzerdefinierten Felder zu erstellen und den Inhalt einfach direkt einzugeben? Genau wie Artikel-Tags können Sie Tags direkt hinzufügen, ohne sie separat einzureichen. Die Antwort ist ja, hier ist die Darstellung:

Eine kurze Analyse, wie man in WordPress ein benutzerdefiniertes Feldfeld hinzufügt

Jetzt werde ich Ihnen die Bedienung beibringen. Fügen Sie einfach den gesamten folgenden Code in die Datei „functions.php“ des aktuellen Themas ein.

1 Erstellen Sie die erforderlichen Feldinformationen

 Hier fügen wir zwei benutzerdefinierte Felder mit den Namen _description_value und _keywords_value hinzu. Sie können dem folgenden Array mehrere Elemente hinzufügen, um den Zweck des Hinzufügens mehrerer benutzerdefinierter Felder zu erreichen.

Das erste Element des Arrays, name, ist der Name des benutzerdefinierten Felds. In diesem Code ist der Name des benutzerdefinierten Felds der Namenswert plus _value, um Konflikte mit anderen Codes zu vermeiden, z. B. _description_value; Wenn Sie für den benutzerdefinierten Feldwert einen Artikel veröffentlichen und das benutzerdefinierte Feld keinen Wert ausfüllt, wird der Standardwert „Titel“ verwendet, der der Titel des benutzerdefinierten Feldmoduls ist, z. B. „Zusammenfassung“, „Kategorie“ und „ Tag“ auf der Artikelbearbeitungsseite, dies ist der Modulname.

$new_meta_boxes =array(
  "description" => array(
    "name" => "_description",
    "std" => "这里填默认的网页描述",
    "title" => "网页描述:"),

  "keywords" => array(
    "name" => "_keywords",
    "std" => "这里填默认的网页关键字",
    "title" => "关键字:"));

2. Erstellen Sie ein benutzerdefiniertes Feld-Eingabefeld

Der folgende Code wird verwendet, um ein benutzerdefiniertes Feld und Eingabefeld zu erstellen. Kopieren Sie ihn einfach

function new_meta_boxes() {
  global $post, $new_meta_boxes;

  foreach($new_meta_boxes as $meta_box) {
    $meta_box_value = get_post_meta($post->ID, $meta_box['name'].'_value', true);

    if($meta_box_value == "")
      $meta_box_value = $meta_box['std'];

    // 自定义字段标题
    echo&#39;<h3>&#39;.$meta_box[&#39;title&#39;].&#39;</h3>&#39;;

    // 自定义字段输入框
    echo &#39;<textarea cols="60" rows="3" name="&#39;.$meta_box[&#39;name&#39;].&#39;_value">&#39;.$meta_box_value.&#39;</textarea><br />&#39;;
  }
   
  echo &#39;<input type="hidden" name="ludou_metaboxes_nonce" id="ludou_metaboxes_nonce" value="&#39;.wp_create_nonce( plugin_basename(__FILE__) ).&#39;" />&#39;;}

3. Erstellen Sie ein benutzerdefiniertes Feldmodul

Der folgende Code fügt der Artikelbearbeitungsseite ein benutzerdefiniertes Feldmodul hinzu, das die WordPress-Funktion zum Hinzufügen von Modulen add_meta_box verwendet. Dies ist genau das Gegenteil von dem, was im vorherigen Artikel „Löschen verwandter Module auf der WordPress-Artikelbearbeitungsseite“ getan wurde.

function create_meta_box() {
  if ( function_exists(&#39;add_meta_box&#39;) ) {
    add_meta_box( &#39;new-meta-boxes&#39;, &#39;自定义模块&#39;, &#39;new_meta_boxes&#39;, &#39;post&#39;, &#39;normal&#39;, &#39;high&#39; );
  }}

4. Speichern Sie die Artikeldaten

Alle Vorbereitungen sind bereits erledigt, aber das Wichtigste ist, die Informationen in unseren benutzerdefinierten Feldern zu speichern.

function save_postdata( $post_id ) {
  global $new_meta_boxes;
   
  if ( !wp_verify_nonce( $_POST[&#39;ludou_metaboxes_nonce&#39;], plugin_basename(__FILE__) ))
    return;
   
  if ( !current_user_can( &#39;edit_posts&#39;, $post_id ))
    return;
               
  foreach($new_meta_boxes as $meta_box) {
    $data = $_POST[$meta_box[&#39;name&#39;].&#39;_value&#39;];

    if($data == "")
      delete_post_meta($post_id, $meta_box[&#39;name&#39;].&#39;_value&#39;, get_post_meta($post_id, $meta_box[&#39;name&#39;].&#39;_value&#39;, true));
    else
      update_post_meta($post_id, $meta_box[&#39;name&#39;].&#39;_value&#39;, $data);
   }}

5. Verbinden Sie die Funktion mit der angegebenen Aktion

Dies ist der letzte Schritt und der wichtigste Schritt. Was wir tun müssen, ist, die Funktion mit der angegebenen Aktion zu verbinden, damit das WordPress-Programm ausgeführt werden kann die Funktion, die wir zuvor geschrieben haben:

rrree

Okay, das ist alles, was wir tun müssen. Jetzt können Sie diese beiden benutzerdefinierten Felder in Ihrem Theme aufrufen und den Header kopieren Wenn Sie den Code vor befolgen, können Sie die Beschreibungs- und Schlüsselwort-Tags für Ihre Webseite anpassen. Für spezifischere Vorgänge verwenden Sie bitte die Suchmaschine:
add_action(&#39;admin_menu&#39;, &#39;create_meta_box&#39;);
add_action(&#39;save_post&#39;, &#39;save_postdata&#39;);

Empfohlenes Lernen: „

WordPress-Tutorial

Das obige ist der detaillierte Inhalt vonEine kurze Analyse, wie man in WordPress ein benutzerdefiniertes Feldfeld hinzufügt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:ludou.org. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen