Establecer manualmente las variables globales $post con un ID para usar etiquetas de plantilla
Tengo una función que recupera IDs de entradas por medios muy específicos.
Necesito poder establecer el global $post
para usar funciones como the_content()
, que no permite un ID como parámetro.
¿Cómo puedo lograr esto?

Para trabajar con publicaciones fuera del bucle intenta usar:
get_post(post_id)
para obtener una publicación con un ID específico fuera del bucle. Cuando haces esto, el objeto global $post contendrá la publicación que acabas de seleccionar. Ahora puedes obtener el contenido usando:
$post->post_content
.
Consulta la documentación de get_post en el Codex de WordPress

Puedes usar una sola línea para restablecer el objeto global post.
setup_postdata( $GLOBALS['post'] =& $custom_post_object );
Cuando termines tu plantilla o bucle, asegúrate de restablecer el post global para no afectar otras plantillas más adelante en la pila.
wp_reset_postdata();
Nota: PHPCS con los estándares de WordPress mostrará un aviso al sobrescribir el post global, por lo que si estás usando los estándares de WordPress, necesitarás deshabilitarlo para esa línea de la siguiente manera:
setup_postdata( $GLOBALS['post'] =& $post ); //phpcs:ignore
