Come ottenere un campo immagine personalizzato da un ID post specifico

19 dic 2012, 22:32:56
Visualizzazioni: 16.9K
Voti: 0

Ho una pagina dove sto estraendo contenuti da un altro post, al di fuori del loop.

Sono riuscito a ottenere il contenuto del post specificato, ma non riesco a ottenere l'immagine da un campo personalizzato (advanced custom image field).

Questo funziona per ottenere il contenuto dal post con ID 299:

$my_id = 299;
$post_id_299 = get_post($my_id);

$content_299 = $post_id_299->post_content;
$content_299 = apply_filters('the_content', $content_299);
$content_299 = str_replace(']]>', ']]>', $content_299);
$content_299_chars = 238; 
$modcontent_299 = substr($content_299, 0, $content_299_chars);

<p><?php echo $modcontent_299; ?></p>

Questo è quello che sto provando per ottenere l'immagine dal post con ID 299 (se esiste):

$attachment_id = get_field('image', 299);
$size = 'full';
$image = wp_get_attachment_image_src( $attachment_id, $size ); 

if( get_field('image') ):
   echo '<img src="' . $image[0] . '" alt="' . the_title() .'" width="238" height="158" />';
endif; 

Sono sicuro che devo modificare alcune di queste variabili per ottenere il campo immagine dall'ID del post specifico, simile a come viene fatto per ottenere il contenuto, ma a questo punto sono confuso su come farlo per un campo personalizzato...

0
Tutte le risposte alla domanda 2
3

vedi la documentazione per get_field. modifica:

$attachment_id = get_field('image');

per passare l'ID del post come secondo argomento:

$attachment_id = get_field('image', 299);

oppure:

$attachment_id = get_field('image', $my_id);
19 dic 2012 22:56:47
Commenti

Grazie per la risposta Milo, purtroppo non funziona - non restituisce nulla.

ByteMyPixel ByteMyPixel
19 dic 2012 23:00:04

il tuo campo è impostato per restituire l'ID dell'immagine, e non un oggetto immagine o un array di qualche tipo?

Milo Milo
19 dic 2012 23:01:21

Ho capito - il problema rimanente era nel condizionale, dovevo anche aggiornare if( get_field('image') ): con if( get_field('image', 299) ): - era questo! Grazie per il tuo aiuto!

ByteMyPixel ByteMyPixel
19 dic 2012 23:07:27
0

Penso che tu stia usando il tuo codice per mostrare titolo e alt sull'immagine del post, allora provalo.

    $post_title  = get_the_title($my_id);

    echo get_the_post_thumbnail($my_id,
        'full', 
        array(
            'alt'   => $post_title, 
            'title' => $post_title,
            'class' => 'my_post_img_class'
        )
    );

Produrrà

<img src="your_image_path.jpg" alt="post_title" title="post_title" class="my_post_img_class" />

oppure usa questa funzione qui sotto per ottenere il campo personalizzato del post get_post_field('post_content', $my_id);

14 mag 2013 11:51:22