Ich habe ein Plugin geschrieben, das (neben anderen Funktionen) Beiträge aus vorhandenen Inhalten erstellt. Für jeden Beitrag habe ich ein Bild - wie mache ich sie programmatisch ?
Ich mache die:
$id = wp_insert_post( $my_post );
wp_set_object_terms( $id, $cat_ids, 'category' );
und ich möchte, dass mein nächster Schritt das Einfügen von $ image (Dateipfad oder URI) als ausgewähltes Bild ist. Wie?
Danke im Voraus.
Versuchen Sie es mit set_post_thumbnail()
.
Angenommen, Sie wissen bereits, wie Sie den $post
(ID oder Objekt) für das ausgewählte Bild und den $thumbnail_id
(ID) des Bildes bestimmen, das Sie als ausgewähltes Bild festlegen möchten:
set_post_thumbnail( $post, $thumbnail_id );
set_post_thumbnail ermöglicht es, 1 Anhang von id auf einen Beitrag mit der angegebenen id zu setzen.
Wenn Sie die Anhangs-ID nicht haben oder direkt über die URL erstellen möchten, müssen Sie zuerst den Anhang erstellen (siehe wp_insert_attachment ).
sie können das Bild auch mit media_sideload_image hochladen.
Sie können wp_insert_attachment () und wp_generate_attachment_metadata () verwenden, um das Bild als Anhang zum Beitrag zu verwenden. Und Sie machen es mit set_post_thumbnail () zu einem vorgestellten Bild. (Es ist wirklich nur ein benutzerdefiniertes Feld _thumbnail_id.
So etwas wie:
$attach_id = wp_insert_attachment( $attachment, $filename, $post_id );
$attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
wp_update_attachment_metadata( $attach_id, $attach_data );
set_post_thumbnail( $post_id, $attach_id );
Stellen Sie Empfohlene Bilder programmgesteuert ein.
function setFeaturedImages() {
$base = dirname(__FILE__);
$imgfile= $base.DS.'images'.DS.'14'.DS.'Ascot_Anthracite-Grey-1.jpg';
$filename = basename($imgfile);
$upload_file = wp_upload_bits($filename, null, file_get_contents($imgfile));
if (!$upload_file['error']) {
$wp_filetype = wp_check_filetype($filename, null );
$attachment = array(
'post_mime_type' => $wp_filetype['type'],
'post_parent' => 0,
'post_title' => preg_replace('/\.[^.]+$/', '', $filename),
'post_content' => '',
'post_status' => 'inherit'
);
$attachment_id = wp_insert_attachment( $attachment, $upload_file['file'], 209 );
if (!is_wp_error($attachment_id)) {
require_once(ABSPATH . "wp-admin" . '/includes/image.php');
$attachment_data = wp_generate_attachment_metadata( $attachment_id, $upload_file['file'] );
wp_update_attachment_metadata( $attachment_id, $attachment_data );
}
set_post_thumbnail( 209, $attachment_id );
}
}
Weitere Informationen finden Sie im Tutorial. http://www.pearlbells.co.uk/insert-udpate-wordpress-post-programmatically/