Cómo obtener un campo de imagen personalizado de un ID de publicación específico en WordPress
Tengo una página donde estoy extrayendo contenido de otra publicación, fuera del loop.
He tenido éxito obteniendo el contenido de la publicación específica, pero no puedo obtener la imagen de un campo personalizado (campo de imagen avanzado de ACF).
Esto funciona para obtener el contenido de la publicación 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>
Esto es lo que necesito para obtener la imagen de la publicación con ID 299 (si existe):
$attachment_id = get_field('image', 299); // Obtener ID del adjunto del campo 'image' para el post 299
$size = 'full'; // Tamaño de imagen deseado
$image = wp_get_attachment_image_src( $attachment_id, $size ); // Obtener datos de la imagen
if( get_field('image', 299) ): // Verificar si existe el campo 'image' para el post 299
echo '<img src="' . $image[0] . '" alt="' . the_title() .'" width="238" height="158" />';
endif;
Estoy seguro que necesito cambiar algunas variables para obtener el campo de imagen de la publicación específica, similar a cómo se hace para obtener el contenido, pero estoy confundido sobre cómo hacerlo para un campo personalizado...

consulta la documentación para get_field
. cambia:
$attachment_id = get_field('image');
para pasar el ID del post como segundo argumento:
$attachment_id = get_field('image', 299);
o:
$attachment_id = get_field('image', $my_id);

Gracias por responder Milo, desafortunadamente eso no funciona - no devuelve nada.

¿Tu campo está configurado para devolver el ID de la imagen, y no un objeto de imagen o algún tipo de array?

creo que estás usando tu código para mostrar el título y el texto alternativo en la imagen de la publicación, entonces pruébalo.
$post_title = get_the_title($my_id); // Obtener el título de la publicación
echo get_the_post_thumbnail($my_id,
'full',
array(
'alt' => $post_title, // Texto alternativo para SEO
'title' => $post_title, // Título mostrado al pasar el ratón
'class' => 'my_post_img_class' // Clase CSS para la imagen
)
);
mostrará
<img src="tu_ruta_de_imagen.jpg" alt="titulo_de_publicacion" title="titulo_de_publicacion" class="my_post_img_class" />
o usa esta función para obtener campos personalizados de la publicación get_post_field('post_content', $my_id);
