Cómo añadir contenido a the_content usando add_filter con un tipo de entrada personalizado

12 sept 2011, 05:48:54
Vistas: 14.6K
Votos: 10

Tengo un tipo de entrada personalizado funcionando correctamente, pero parte del texto en la página es el mismo para todas las entradas, por lo que quiero agregarlo mediante una función.

Tengo esto configurado:

function nuevo_contenido_por_defecto($content) {
global $post;
    if ($post->post_type == 'custom-post-type') {
    $content = 'Texto de prueba aquí';
    }
    return $content;
    }
add_filter('the_content', 'nuevo_contenido_por_defecto');

Sin embargo, cuando actualizo la página, solo veo "Texto de prueba aquí" y no el contenido de la entrada (de the_content).

Si comento esta función, el contenido de la entrada reaparece. ¿Qué estoy haciendo mal?

0
Todas las respuestas a la pregunta 2
4
10

Estás sobrescribiendo completamente el contenido en lugar de añadirlo. Necesitas hacer algo como $content .= 'Texto de prueba aquí'; en su lugar.

12 sept 2011 06:26:40
Comentarios

Mucho poder en ese período, ¡gracias! Otra pregunta: estoy usando un plugin para mostrar botones sociales de Like, +1, etc. y aparecen por encima del new-default-content. ¿Hay alguna forma de hacer que los botones aparezcan debajo? Supuse que este filtro "agruparía" the_content y new_default_content como una sección completa.

George C George C
13 sept 2011 18:45:34

Bueno, estás añadiendo el nuevo contenido, así que aparecerá después. Podrías intentar enganchar el filtro con una prioridad más alta para que se procese antes que el plugin, porque el plugin también está usando el mismo filtro.

helenhousandi helenhousandi
13 sept 2011 20:27:43

Ah, voy a investigar lo de las prioridades. ¡Gracias de nuevo!

George C George C
14 sept 2011 08:46:43

Para tu información, estuve probando con la prioridad y eso solucionó el problema. ¡Gracias de nuevo! :)

George C George C
14 sept 2011 20:56:44
1
-1

De manera simple:

               if ($post->post_type == 'custom-post-type') {
                   $new_content= 'Texto de prueba aquí';
                                }
                       return $content.$new_content;
18 nov 2015 09:22:21
Comentarios

El código por sí solo no se considera una respuesta de buena calidad. Debes explicar qué hace el código y cómo responde a la pregunta; de esta manera, los lectores que son principiantes en programación podrán entender tu respuesta. ¿Puedes explicar tu código?

cybmeta cybmeta
18 nov 2015 14:56:31