Ich habe ein Plugin und möchte den Beitragsinhalt durch einige Filter ausführen können, bevor er in der Datenbank gespeichert wird. Wenn ich mir die Plugin-API ansehe , sehe ich, dass zwei Hooks hilfreich sein könnten:
save_post
wp_insert_post
Das einzige Problem ist, dass es so aussieht, als save_post
müsste keine Variable zurückgegeben werden. Ich weiß also nicht, wie ich den Inhalt filtern soll, und es wp_insert_post
sieht dokumentiert aus.
Ich würde gerne so etwas machen:
add_action('whatever_hook_name','my_function');
function my_function($post_content){
return $post_content.' <br> This post was saved on '.time();
}
Ich werde etwas Nützlicheres tun, als einen Zeitstempel anzufügen, nämlich einige Regex-Filter auszuführen, aber dies ist die allgemeine Art von Filter / Aktion, die ich hinzufügen möchte.
Aktualisieren
Bitte beachten Sie, dass ich die Daten abfangen möchte, während sie in der Datenbank gespeichert werden - nicht, wenn sie im Beitrag angezeigt werden (z. B .: Nicht durch Hinzufügen eines Filters zu the_content
).
This post was...
„s 2. Daten , wie dies sollte man als Meta - Wert des Post gespeichert werden :-) BTW:save_post
wird aufgerufen , nachdem Daten gespeichert wurden, also nach dem es wurde in der Datenbank gespeichert (nicht was Sie wollen).Antworten:
Der Filter wp_insert_post_data kann dies tun:
quelle
add_action
anstattadd_filter
. auch Siewpse35931_filter_post_data
undfilter_handler
sind inkongruent ...wp_insert_post_data
funktioniert, ist aber etwas überfordert für das, was OP (und vielleicht auch andere) erreichen wollen. Eine einfachere Option in dieser Situation istcontent_save_pre
die von @drzaus empfohlene.wp_insert_post_data
Filter: developer.wordpress.org/reference/hooks/wp_insert_post_dataVerwenden Sie den Filter
content_save_pre
genauso wiethe_content
- der Unterschied besteht darin, dass er beim Speichern eines Beitrags ausgeführt wird und nicht angezeigt wird.http://codex.wordpress.org/Plugin_API/Filter_Reference/content_save_pre
quelle
Sie können auch nach dem Haken suchen
pre_post_update
quelle
Fügen Sie den folgenden Code zu dem aktiven Thema zu ersetzen
<shell>
mit[shell]
vor dem Speichern:quelle
Wenn Sie am Ende aller Beiträge nur etwas Ähnliches hinzufügen möchten, empfehle ich Ihnen, den
the_content
Filter zu verwenden.quelle