Wie kann ein Filter verknüpft werden, um get_post_meta abzufangen, wenn eine benutzerdefinierte Feldausgabe abgewechselt wird?
Ich habe ein benutzerdefiniertes Feld (Metadaten) in einem Beitrag wie folgt ausgefüllt:
<!--:de-->Nominale spanning<!--:--><!--:zh/cn-->额定电压<!--:--><!--:en-->Arrester Accessories<!--:-->
Ich muss diese Ausgabe übersetzen lassen, also frage ich mich, wie ich mich vor der Metadatenausgabe in "get_post_meta" einbinden kann.
Hier ist, was ich seit ein paar Tagen versucht habe, aber kein Glück.
function getqtlangcustomfieldvalue($metadata, $object_id, $meta_key, $single){
$fieldtitle="fields_titles";
if($meta_key==$fieldtitle&& isset($meta_key)){
//here is the catch, but no value has been passed
}
}
//Specify 4 arguments for this filter in the last parameter.
add_filter('get_post_metadata', 'getqtlangcustomfieldvalue', 10, 4);
Antworten:
Nachdem ich viel herumgespielt habe, denke ich, dass ich hier eine ziemlich gute Lösung gefunden habe. Mir ist klar, dass dies über ein Jahr ist, nachdem Sie gefragt haben, aber das hat mich gestört und ich konnte bis jetzt keine gute Lösung finden.
Das Problem ist, dass Sie mit der Funktion get_post_metadata nicht auf den aktuellen Wert zugreifen können. Dies bedeutet, dass Sie den Wert nicht transformieren können. Ersetzen Sie ihn einfach. Ich musste Inhalte an ein Metafeld anhängen, und wo sie ausgegeben wurden, waren keine Filter zulässig.
Hier ist meine Lösung, die an die Anforderungen dieser Frage angepasst wurde:
Dadurch bleiben alle anderen get_post_metadata-Filter intakt und der ursprüngliche Wert kann geändert werden.
quelle
Hatte gerade das gleiche Problem und mit dem obigen Code habe ich Folgendes gelöst:
Ich habe versucht, apply_filters, get_metadata, get_post_meta direkt in der Funktion zu verwenden, aber sie erlaubten mir nicht, die resultierende Ausgabe zu manipulieren, also habe ich auf $ wpdb zurückgegriffen.
quelle
get_post_meta()
Hier ist meine Lösung zum Filtern von Post-Meta. Dies ruft dann eine benutzerdefinierte Funktion auf, um alle erforderlichen Datenmanipulationen durchzuführen.
quelle