Wie kann ich das “Als Bild verwenden” zu einer benutzerdefinierten Metabox hinzufügen?

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: Bildminiaturansichten mit Links

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!

Solutions Collecting From Web of "Wie kann ich das “Als Bild verwenden” zu einer benutzerdefinierten Metabox hinzufügen?"

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' );