Sie können ein Bild als Miniaturansicht festlegen, wenn es sich in Ihrer Medienbibliothek befindet. Um ein Bild in Ihre Medienbibliothek aufzunehmen, müssen Sie es auf Ihren Server hochladen. WordPress verfügt bereits über eine Funktion zum Einfügen von Bildern in Ihre Medienbibliothek. Sie benötigen lediglich ein Skript, mit dem Sie Ihre Datei hochladen können.
Verwendungszweck:
Generate_Featured_Image( '../wp-content/my_image.jpg', $post_id );
// $post_id is Numeric ID... You can also get the ID with:
wp_insert_post()
Funktion:
function Generate_Featured_Image( $image_url, $post_id ){
$upload_dir = wp_upload_dir();
$image_data = file_get_contents($image_url);
$filename = basename($image_url);
if(wp_mkdir_p($upload_dir['path']))
$file = $upload_dir['path'] . '/' . $filename;
else
$file = $upload_dir['basedir'] . '/' . $filename;
file_put_contents($file, $image_data);
$wp_filetype = wp_check_filetype($filename, null );
$attachment = array(
'post_mime_type' => $wp_filetype['type'],
'post_title' => sanitize_file_name($filename),
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment( $attachment, $file, $post_id );
require_once(ABSPATH . 'wp-admin/includes/image.php');
$attach_data = wp_generate_attachment_metadata( $attach_id, $file );
$res1= wp_update_attachment_metadata( $attach_id, $attach_data );
$res2= set_post_thumbnail( $post_id, $attach_id );
}
http://codex.wordpress.org/Function_Reference/wp_upload_dir
http://codex.wordpress.org/Function_Reference/wp_insert_attachment
BEARBEITEN: Pfaderstellung hinzugefügt
http://codex.wordpress.org/Function_Reference/wp_mkdir_p
Versuchen Sie es mit
set_post_thumbnail()
.Edit von Otto: Du hast deine Frage geklärt, also kläre ich die Antwort, die Chip gegeben hat.
Grundsätzlich müssen Sie den 'Anhang' auch für den Beitrag erstellen. Wenn ein Bild in die WordPress-Medienbibliothek hochgeladen wird, wird ein spezieller Beitragseintrag mit einem Beitragstyp als Anhang erstellt. Dieser Anhang ist über die Kennung post_parent mit einem bestimmten Beitrag verknüpft.
Wenn Sie also die ID des Anhangs kennen, wird durch Aufrufen von set_post_thumbnail mit dem Beitragsobjekt oder der ID und der Anhangs-ID einfach das Beitrags-Thumbnail-Flag gesetzt.
Wenn Sie den Anhang noch nicht erstellt haben, müssen Sie dies zuerst tun. Am einfachsten geht das mit
wp_insert_attachment()
. Diese Funktion benötigt ein Array mit einigen Parametern, den Dateinamen (die Datei muss sich bereits im richtigen Upload-Verzeichnis befinden) und die Beitrags-ID des übergeordneten Beitrags, an den Sie den Anhang anhängen möchten.Nur eine Datei hochzuladen und an einen Beitrag anzuhängen, führt nicht automatisch zu etwas. Dies ist einfach eine Art Kategorisierungsmechanismus. Der Galerie-Mechanismus verwendet beispielsweise die angehängten Bilder eines Beitrags, um die [Galerie] für diesen Beitrag zu erstellen. Ein Miniaturbild für einen Beitrag ist nur eines der angehängten Bilder, das als Miniaturbild festgelegt wurde.
Weitere Informationen zur Verwendung von wp_insert_attachment finden Sie im Codex (oben verlinkt).
quelle
Ich möchte Robs Antwort verbessern, indem ich die WP-Kernfunktionen
download_url
und verwendemedia_handle_sideload
quelle
set_post_thumbnail()
ist die beste Funktion für diese Anforderung.Ich denke, Sie finden die ID eines Anhangs über
get_children()
oderget_posts()
. Das Ergebnis hat ein Array und in diesem Array befindet sich die ID. Das folgende Beispiel zum Testen; Ich hoffe, es funktioniert; Schreiben Sie ohne Tests, nur von Grund auf.Für Ihre Anforderung ist es wichtig, dass Sie sich
get_the_ID()
mit Ihrem ändernpost-ID
; Geben Sie die ID des Anhangs zurück und verwenden Sie dieseset_post_thumbnail()
.quelle
Habe das gerade gefunden und es viel einfacher gemacht, funktioniert aber ich bin kein Security Scrubber
einfach oder was? Nachdem WordPress die richtigen Dateien erhalten hat, verarbeitet WordPress die Medien, lädt sie hoch und legt sie dann als Miniaturansicht fest.
quelle