web-dev-qa-db-de.com

Wie füge ich programmgesteuert ein Bild hinzu oder ändere es?

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.

4

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 );
7
Chip Bennett

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.

3
Mridul Aggarwal

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 );
3
windyjonas

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/

0
Liz Eipe C