WordPress, wie man wp_editor in einem Array hinzufügt

Lesezeit: 4 Minuten

Benutzeravatar von Syed mohamed aladeen
Syed Mohammed Aladeen

Ich hatte ein kleines Problem in meinem WordPress-Code. Ich muss einen WordPress wp_editor auf meiner Seite anzeigen, wo er ein Array von Werten enthält. Die Werte sind wie folgt definiert

    $fields[] = array(
        'name' => __('Class', 'my-theme'),
        'desc' => __('', 'my-theme'),
        'id' => 'class'.$n,
        'std' => ( ( isset($class_text[$n]['class']) ) ? $class_text[$n]['class'] : '' ),
        'type' => 'text');

Wenn ich meinen wp_editor wie das obige Array definiere, wird er nicht dort angezeigt, wo ich möchte. Stattdessen werden alle Editoren oben vor allen Inhalten auf allen Seiten angezeigt.

Ich habe versucht, wie das folgende Array für den Editor:

    $fields[] = array(
        'name' => __('My Content', 'my-theme'),
        'id' => 'sectioncontent'.$n,
        'std' => ( ( isset($class_text[$n]['content']) ) ? $class_text[$n]['content'] : '' ),
        'type' => wp_editor( '', 'sectioncontent'.$n ));

Anbei das Bild meines Problems:

Geben Sie hier die Bildbeschreibung ein

  • Von welchem ​​Hook rufst du wp_editor auf?

    – Francisco Félix

    27. Oktober 2015 um 3:03 Uhr

  • Ich denke, wp_editor ist eine Standard-Editor-Funktion in WordPress. Ich habe gerade als meinen obigen Code aufgerufen.

    – Syed Mohammed Aladeen

    27. Oktober 2015 um 5:04 Uhr

  • Das Wo bestimmt das Wann. Sie können Skripte einfach nicht ändern. Sie müssen wissen, welche Dateien Sie hinzufügen/ändern und welche Funktionen Sie aufrufen müssen, um das gewünschte Ziel zu erreichen. Bitte überprüfen Sie diese Seite codex.wordpress.org/Plugin_API/Action_Reference Ich helfe Ihnen gerne, wenn Sie mir genau sagen, wo und wann Sie den Editor benötigen (die Bearbeitungsseite eines normalen Beitrags, die Bearbeitungsseite eines benutzerdefinierten Beitragstyps, die Optionsseite Ihres Plug-ins usw.).

    – Francisco Félix

    27. Oktober 2015 um 6:54 Uhr

Benutzeravatar von Touqeer Shafi
Touqeer Shafi

Weil

Standardmäßig wp_editor druckt den Textbereich, weshalb Sie ihn keiner Variablen oder keinem Array zuweisen können.

Lösung

Sie können verwenden Ausgangspufferung von php, um gedruckte Daten in Variablen wie folgt zu erhalten:

ob_start(); // Start output buffer

// Print the editor
wp_editor( '', 'sectioncontent'.$n );

// Store the printed data in $editor variable
$editor = ob_get_clean();

// And then you can assign that wp_editor to your array.

$fields[] = array(
        'name' => __('My Content', 'my-theme'),
        'id' => 'sectioncontent'.$n,
        'std' => ( ( isset($class_text[$n]['content']) ) ? $class_text[$n]['content'] : '' ),
        'type' => $editor); // <-- HERE

  • vielen Dank für Ihre Antwort, aber es funktioniert nicht, es wird nur eine leere Seite angezeigt.

    – Syed Mohammed Aladeen

    30. Oktober 2015 um 11:40 Uhr


  • Op ist, ich habe einen Tipp in meine Antwort bekommen, jetzt überprüfen.

    – Touqeer Shafi

    2. November 2015 um 6:00 Uhr

  • Die Codierung des Textbereichs befindet sich in der Klasse wie folgt: class=”section section-

    localhost/wordpress/wp-includes/css/dashicons.min.css?ver=4.3.1
    ‘ type=’text/css’ media=’all’ /> localhost/wordpress/wp-includes/css/editor.min.css?ver=4.3.1‘ type=’text/css’ media=’all’ /> “

    – Syed Mohammed Aladeen

    2. November 2015 um 6:34 Uhr

  • @syedmohamed Hallo Syed, basierend auf der Tatsache, dass Sie diese Ausgabe im Klassenattribut des Abschnittsmarkups erhalten, bin ich mir jetzt sicher, dass Sie Redux verwenden. Sehen Sie sich meine Antwort für die Auflösung an oder ersetzen Sie einfach $editor durch ‘editor’ in den $fields[] Array-Definition 🙂

    – Chris O’Kelly

    2. November 2015 um 6:59 Uhr

  • Nur den Editor zu definieren, hat nicht viele Optionen. wie das Hochladen von Medien und andere

    – Syed Mohammed Aladeen

    2. November 2015 um 7:31 Uhr

Benutzeravatar von Chris O'Kelly
Chris O’Kelly

Sieht für mich so aus, als würdest du verwenden Redux-Framework zum Einrichten Ihrer Themen-/Plug-in-Optionsseite – Wenn Sie den Standard-WYSIWYG-Editor von WordPress (What You See Is What You Get – derselbe Editor wie auf der Seite zum Bearbeiten von Beiträgen im Backend) dort hinzufügen möchten, müssen Sie ihn verwenden der Typ: ‘Editor’.

Es kann verwirrend sein – die wp_editor() Funktion, die Sie verwenden, ist der richtige Ausgangspunkt, wenn Sie diese Optionsseite von Grund auf neu einrichten, aber Sie müssten einiges an Arbeit leisten, damit sie angezeigt wird, wo und wie Sie es möchten. Redux et al. machen dies für Sie ein wenig einfacher, indem sie den Editor für Sie generieren. Anstatt also die Funktion wp_editor überhaupt zu verwenden, teilen Sie Redux einfach mit, dass Sie ein Editorfeld namens “Mein Inhalt” als eines der Felder haben möchten die Seite.

Die Dokumentation für das Editorfeld ist hier: https://docs.reduxframework.com/core/fields/editor/

Wenn ich richtig liege, dass Sie Redux verwenden, lautet der richtige Code zum Ersetzen dessen, was Sie haben:

 $fields[] = array(
        'name' => __('My Content', 'my-theme'),
        'id' => 'sectioncontent'.$n,
        'std' => ( ( isset($class_text[$n]['content']) ) ? $class_text[$n]['content'] : '' ),
        'type' => 'editor');

Um die anderen Teile dieses Feldarrays zu erklären:

  • „Name“ wird in der Bezeichnung für dieses Feld angezeigt. In diesem Fall verwenden Sie die Lokalisierungsfunktionen in WordPress (__()), um einen Ausdruck aus dem lokalen Wörterbuch in der Domäne „my-theme“ abzurufen.
  • ‘id’ ist das, was Sie verwenden werden, um abzurufen, was in dieses Feld eingegeben wurde. Es wirkt sich auch auf das den HTML-Elementen auf der Optionsseite zugewiesene ID-Attribut aus.
  • „std“ ist der Standardwert für das Feld, das der Wert des Felds sein wird, wenn die Optionsseite zum ersten Mal angezeigt wird, bevor der Benutzer Optionen festgelegt hat

Auf der oben verlinkten Editor-Dokumentationsseite sehen Sie die Details verschiedener anderer Optionen, die Sie definieren können, z. B. ob Medien-Upload-Schaltflächen angezeigt werden sollen und ob die Eingabe durch wpautop ausgeführt werden soll, um Zeilenumbrüche im Editor zu ersetzen <p> Tags (standardmäßig sind beide wahr).

1397220cookie-checkWordPress, wie man wp_editor in einem Array hinzufügt

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy