Ich benutze die *_add_form_fields
Aktion, um einer benutzerdefinierten Taxonomie Felder hinzuzufügen. Eines dieser Felder ist ein wp_editor ().
Das Problem, dem ich gegenüberstehe, ist, dass wenn ich den WordPress-Editor wie folgt auf der Seite ausgebe:
wp_editor('test', 'mydescription', array('textarea_name' => 'my_description'));
und wenn ich dann im editor auf die seite klicke und den voreingestellten wert von test
auf something else
die $_POST['my_description']
variable ändere wird immer noch auf gesetzttest
Sollte ich meinem Editor eine zusätzliche Einstellung hinzufügen? Gibt es einen Grund, warum ich den Wert des Textbereichs nicht ändern kann?
BEARBEITEN
Unten sehen Sie einen sehr einfachen Testfall, der dies zeigt. Fügen Sie dies in Ihre functions.php-Datei ein und erstellen Sie ein neues Tag . Der eingegebene Wert für "my_description" wird nicht geändert.
class Test{
function __construct() {
add_action('add_tag_form_fields', array($this, 'add_tag_form_fields'));
add_action('created_term', array($this, 'created_term'));
}
function add_tag_form_fields($tag){
if ( current_user_can( 'publish_posts' ) ): ?>
<div class="form-field">
<?php wp_editor('test', 'mydescription', array('textarea_name' => 'my_description')); ?>
</div>
<?php
}
function created_term($tag){
echo '<pre>';
print_r($_POST);
echo '</pre>';
die();
}
}
new Test();
BEARBEITEN
Dies geschieht NUR beim Anhängen an die Aktion "created_term". Wenn Sie an "edited_terms" anhängen, funktioniert es wie erwartet und ich denke, dies ist ein Ergebnis der Verwendung von Ajax auf der Seite zum Erstellen von Begriffen ... Ich habe den Testcode aktualisiert, um dies anzuzeigen.
Array ( [action] => add-tag [screen] => edit-post_tag [taxonomy] => post_tag [post_type] => post [_wpnonce_add-tag] => 4f7d3df228 [_wp_http_referer] => /wp-admin/edit-tags.php?taxonomy=post_tag [tag-name] => Test99 [slug] => [description] => [my_description] => something else )
Vielleicht ist etwas anderes in deinem Code ein Problem?Antworten:
Das tinyMCE-
<textarea>
Element wird von der verwendeten Serialisierungsfunktion anfangs nicht gesehen:Sie müssen anrufen
tinyMCE.triggerSave()
, um es sichtbar zu machen.Unten ist ein einfaches Snippet, das den Trick machen sollte:
Dies in einer externen Datei, die mit
wp_enqueue_script()
; es funktionierte für den Test, den ich durchgeführt habe.quelle
In Ihrer
edited_terms
Funktion müssen Sie den Wert speichern und in Ihreradd_tag_form_fields
durchtest
die gespeicherten Daten ersetzen .etwas wie:
Wenn Sie Ihren Tags / Kategorien oder benutzerdefinierten Taxonomiebearbeitungsformularen zusätzliche Felder aller Art hinzufügen möchten, ohne das Rad neu zu erfinden, schauen Sie sich das an
TAX Meta Class
quelle
Nach dem Codex für wp_editor sollte das erste Argument der Inhalt sein. Anstatt also zu testen, sollten Sie festlegen,
$_POST['my_description']
ob dies der ursprüngliche Inhalt ist.quelle