Ich implementiere eine benutzerdefinierte Meta-Box, die es dem Benutzer ermöglicht, Bilder über ein einfaches Dateieingabefeld hinzuzufügen (basierend auf Code auf dieser Site: Meta Box Script ). Dieser Code ermöglicht es, mehrere Bilder als Anhang zur Seite hinzuzufügen, und zwar ohne den vollständigen Upload-Dialog. Sie wählen einfach die Bilddatei aus und veröffentlichen die Seite, und das Bild wird hochgeladen. Das funktioniert sehr gut, aber ich möchte in der Lage sein, einen Link zu jedem Bild hinzuzufügen, so dass Sie ein Bild als vorgestellten Bild festlegen können.
Hier ist ein Bild, das zeigt, wie das aussieht:
Ich schnüffelte um den Standard-Bild-Uploader herum und kann sehen, dass es eine JS-Datei (/wp-admin/js/set-post-thumbnail.js) gibt, die als AJAX-Aufruf ausgetriggers wird und dadurch das Bild als vordefiniertes Bild setzt. Ich benutze den folgenden Code (echo’ed by PHP daher das Escaping), um den ‘Use as featured image’-Link hinzuzufügen:
ID}", "{$nonce}");return false;\">Use as featured image
Ich habe das mit etwas Trial and Error herausgefunden, aber es funktioniert nicht, da ich einen Fehler Uncaught ReferenceError: setPostThumbnailL10n is not defined
, weil ich kein JS geladen habe, das die setPostThumbnailL10n
und wahrscheinlich auch andere Probleme bietet !
Im Grunde versuche ich herauszufinden, ob es einfach ist, diese eingebaute functionalität zu nutzen. Meine andere Wahl ist, meinen eigenen JS zu rollen, der ein Bild als gekennzeichneten stattdessen speichert. Ich werde auch verlangen, dass ich die Bilder wie dargestellt unscharf stellen kann. Irgendwelche Ideen, die sehr willkommen sind, da dies eine Art von unbekanntem Territorium scheint, da das Googeln nicht mit irgendetwas aufgefüllt wurde!
Selbst wenn Sie alle benötigten Dateien hinzugefügt haben, müssen Sie noch einige zusätzliche versteckte Felder wie _nonce erstellen, um die Dateien zu übergeben
check_ajax_referer( "set_post_thumbnail-$post_ID" );
Außerdem müssten Sie ein verborgenes Aktionsfeld erstellen, um den Fall des Ajax-Aufrufs mit dem Wert "set-post-thumbnail"
zu identifizieren.
Sie erstellen lieber Ihren eigenen Ajax-Aufruf und verwenden ihn einfach in Ihrer Callback-function:
set_post_thumbnail( $post, $thumbnail_id ); //or update_post_meta( $post->ID, '_thumbnail_id', $attachment_id );
und die Verwendung zu deaktivieren
delete_post_meta( $post_ID, '_thumbnail_id' );