0

Ich muß als funktionsfähiges Bild ein Bild benutzerdefiniertes Feld ‚blog_image‘ gesetzt für alle meine benutzerdefinierten Beiträge (blog). Es gibt zu viele Posts, und manuell ist es schwierig. Ich habe Google 2 Tage lang gesucht, aber ich habe nicht die richtige Lösung gefunden.Wordpress - für alle Beiträge benutzerdefiniertes Feld Bild Ausgewähltes Bild gesetzt

Hier ist mein Code von functions.php

// get all posts from blog 
$query = new WP_Query(
    array(
    'post_type' => 'blog', 
    'posts_per_page' => -1, 
    ) 
); 
$all_posts = $query->posts; 
foreach ($all_posts as $one_post) 
{ 
    $value = get_field('blog_image', $one_post->ID); 

    if ($value != '') 
    { 
    $thumbnail_id = $value->id; 
    update_post_meta($one_post->ID, '_thumbnail_id', $thumbnail_id); 
    } 
} 

ich var_dumped haben und print_r alle meine Daten, und ich denke, alles funktionieren sollte, aber es kam nicht.
Wo ich falsch liege?

+0

ist '$ one_post-> ID', die post_id zurückgibt? –

+0

ja, es gibt IDs aller Beiträge – LEX

+0

Ist das in einer Funktion verpackt? Wann heißt es? War es süchtig? – Paul

Antwort

0

Sie sollten nur die Miniaturansicht ID/Bild ID in _thumbnail_id; , die Sie als vorgestellten Bild für blog post_type Post festlegen möchten. WordPress Verwenden Sie diese ID, um vorgestellten Bild anzuzeigen.

Wie Sie sagten, dass blog_image Feld ein Array zurück, so dass man die Thumbnail-ID, die Array zu extrahieren bilden und es dann in _thumbnail_id post_meta speichern.

Sie Code ‚ll wie eine Sache wie folgt aussehen:

//... 
//... 
foreach ($all_posts as $one_post) 
{ 
    $value = get_field('blog_image', $one_post->ID); //it return an array with all the image data 

    if ($value != '') 
    { 
//  echo '<pre>'; 
//  print_r($value); 
//  echo '</pre>'; 
     //extracting the thumbnail ID from an array 
     $thumbnail_id = $value->ID; 
     update_post_meta($one_post->ID, '_thumbnail_id', $thumbnail_id); 
    } 
} 

Bitte beachten Sie: wenn Sie einen Fehler oder $thumbnail_id kehrt nicht die ID dann uncomment print_r und sehen, wie das zu bekommen.

Hoffe, das hilft!

+0

Danke für die Antwort, aber es funktioniert immer noch nicht. = ( – LEX

+0

Bitte aktualisieren Sie Ihre Frage mit der Ausgabe von 'echo‚

'; print_r($value); echo '
‘;' und mir auch eine einfache Abbildung Beispiel lassen wie post_id: 2 sollte ein Bild Namen :: abc.jpg und Bild-ID ist 81. –

+0

es tat. Ich habe nur den ersten Post Dump kopiert, weil es viele von ihnen gibt))) – LEX

Verwandte Themen