Cómo obtener una ID de publicación con la función Agregar filtro

2

Estoy escribiendo un complemento y estoy tratando de averiguar cómo agregar datos al final de una publicación en función de alguna Información Meta personalizada.

Así que he hecho esto hasta ahora:

add_filter('the_content', 'AppendMeta');

Y aquí está la función "AppendMeta"

AppendMeta($content) {
    echo $content; // Echo out post content
    $PersonName = get_post_meta($post->ID, 'PersonName', true);
    echo 'Person: ' . $PersonName;
}

El código funciona si sustituyo $ post- > ID con el id de la publicación, pero necesito que funcione según la publicación que el usuario está navegando actualmente. ¿Cómo pasaría el ID de publicación como parámetro? $ post- > ID no funciona en este escenario y no puedo averiguar por qué.

    
pregunta Talon 05.05.2012 - 08:26

2 respuestas

7

No importa, descubrí que puedo usar get_the_ID(); .

Esta función devolverá el ID de publicación dentro del filtro the_content . La función simplemente declara el objeto global $post y devuelve su ID.

add_filter('the_content', 'wpse51205_content')
wpse51205_content($content) {
    echo $content; // Echo out post content
    $PersonName = get_post_meta(get_the_ID(), 'PersonName', true);
    echo 'Person: ' . $PersonName;
}

Si no desea utilizar get_the_ID() , simplemente debe declarar el objeto $post global antes de usarlo:

add_filter('the_content', 'wpse51205_content')
wpse51205_content($content) {
    global $post;
    echo $content; // Echo out post content
    $PersonName = get_post_meta($post->ID), 'PersonName', true);
    echo 'Person: ' . $PersonName;
}
    
respondido por el Talon 05.05.2012 - 08:28
4

the_ID() solo se debe usar dentro del bucle, de lo contrario no puedes confiar en él. Utilice mejor el objeto $GLOBALS['post'] dentro de su llamada de función.

    
respondido por el Ashfame 05.05.2012 - 08:59

Lea otras preguntas en las etiquetas