Cum să obții câmpul personalizat de imagine pentru un ID specific de postare

19 dec. 2012, 22:32:56
Vizualizări: 16.9K
Voturi: 0

Am o pagină unde preiau conținut dintr-o altă postare, în afara buclei standard.

Am reușit să obțin conținutul postării specificate, dar nu pot obține imaginea dintr-un câmp personalizat (Advanced Custom Image Field).

Acest cod funcționează pentru a obține conținutul postării cu ID-ul 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>

Iar acesta este codul pe care încerc să-l folosesc pentru a obține imaginea din postarea cu ID-ul 299 (dacă există):

$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; 

Sunt sigur că trebuie să modific unele dintre aceste variabile pentru a obține câmpul de imagine din postarea specifică, similar cu modul în care am obținut conținutul, dar sunt confuz în acest moment cum să fac asta pentru un câmp personalizat...

0
Toate răspunsurile la întrebare 2
3

vezi documentația pentru get_field. schimbă:

$attachment_id = get_field('image');

pentru a pasa ID-ul postului ca al doilea argument:

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

sau:

$attachment_id = get_field('image', $my_id);
19 dec. 2012 22:56:47
Comentarii

Mulțumesc pentru răspuns, Milo, din păcate asta nu funcționează - nu returnează nimic.

ByteMyPixel ByteMyPixel
19 dec. 2012 23:00:04

este câmpul tău setat să returneze ID-ul imaginii, și nu un obiect imagine sau un array de un fel?

Milo Milo
19 dec. 2012 23:01:21

Am înțeles - problema rămasă era în condițional, trebuia să actualizez și if( get_field('image') ): cu if( get_field('image', 299) ): - asta a fost! Mulțumesc pentru ajutor!

ByteMyPixel ByteMyPixel
19 dec. 2012 23:07:27
0

cred că folosești codul tău pentru a afișa titlul și textul alternativ pe imaginea articolului, atunci încearcă asta.

    $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'
        )
    );

va afișa

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

sau folosește această funcție de mai jos pentru a obține câmpul personalizat al articolului get_post_field('post_content', $my_id);

14 mai 2013 11:51:22