Mostrar lista de publicaciones que contienen un valor de campo de relación [ACF]
Tengo un tipo de publicación llamado 'Escritores' y otro tipo llamado 'Documentos'.
Utilizo el campo de Relación en Advanced Custom Fields para vincular una lista de Escritores (objetos de publicación) a un Documento. Esto significa que el campo es básicamente un array que contiene múltiples escritores (algunos contienen solo uno).
Tengo una plantilla en mi tema donde muestro información adicional para cada Escritor dentro de sus publicaciones individuales. Me gustaría mostrar una lista de documentos en los que han contribuido (es decir, Publicaciones que contienen el nombre del escritor en el campo de relación).
He intentado la siguiente consulta pero no funciona:
$item = 0;
$writerName = get_the_title();
$my_contributions = new WP_Query( array(
'post_type' => 'documents',
'posts_per_page' => -1,
'meta_key' => 'doc_contributors',
'meta_value' => $writerName,
'meta_compare' => 'LIKE'
) );
if( $my_contributions->have_posts() ) :
while( $my_contributions->have_posts() ) :
$my_contributions->the_post();
$item++;
?>
<div class="list-line margint10 clearfix">
<?php echo esc_attr( $item ) . ". " ?><a href="<?php the_permalink(); ?>"><?php get_the_title( $my_contributions->ID ); ?></a>
<br />
</div>
<?php
endwhile;
endif;
wp_reset_query();

Estoy actualizando mi respuesta completa basado en tu aclaración en el comentario abajo. Espero que esto ayude:
<div class="entry-content">
<h2>Documentos escritos por este autor</h2>
<?php
/*
* Consulta posts para un valor de relación.
* Este método usa meta_query LIKE para coincidir el string "123" con el valor de la base de datos a:1:{i:0;s:3:"123";} (array serializado)
*/
$documents = get_posts(array(
'post_type' => 'document',
'meta_query' => array(
array(
'key' => 'writer', // nombre del campo personalizado
'value' => '"' . get_the_ID() . '"', // coincide exactamente con "123", no solo 123. Esto evita que coincida con "1234"
'compare' => 'LIKE'
)
)
));
?>
<?php if( $documents ): ?>
<ul>
<?php foreach( $documents as $document ): ?>
<li>
<a href="<?php echo get_permalink( $document->ID ); ?>">
<?php echo get_the_title( $document->ID ); ?>
</a>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</div>

Hola ItsMePN, lamento no haber explicado correctamente. El campo de relación realmente contiene un array de "Escritores" que están vinculados a Documentos. Entonces, quiero mostrar una lista de Documentos que contengan el nombre del Escritor actual. Gracias.

Esta fue también mi solución. Es vitalmente importante poner el meta_query en un array DENTRO de otro array para que funcione. ¡Gracias!
