Mostrar contenido de campos personalizados cuando hago búsquedas

Inicio Foros WordPress General WordPress.org Mostrar contenido de campos personalizados cuando hago búsquedas

Este debate contiene 7 respuestas, tiene 2 mensajes y lo actualizó  Tito Destris hace 7 años, 1 mes.

  • Autor
    Publicaciones
  • #21276

    Tito Destris
    Participante

    <p>Buenas,</p>
    <p>Despues de investigar por cientos de foros sin encontrar la solución acudo aquí para ver si alguien me puede ayudar. Os pongo en contexto:</p>
    <p>Estoy utilizando campos personalizados en los post de mi web. El contenido de un post tiene código html y php. El código php es fundamentalmente para usar la función get_post_meta() y the_ID() y algunas variables para poder mostrar el contenido de dichos campos personalizados. Además uso la etiqueta html ‘more’ para mostrar un resumen de mi post. Si visualizo mi post de manera completa todo se muestra bien y en su sitio.</p>
    <p>Hasta aquí todo ok. El problema llega cuando o bien hago una búsqueda de posts en mi widget ‘search’ o bien selecciono una categoría (tengo otro widget que me muestra un menú de categorías). En este caso debería mostrarme el listado de Posts (en modo resumen). Y efectivamente lo hace PERO en dicho resumen me muestra el código php del post (como si no lo reconociera y no me lo ejecuta). Concretamente, me mete un espacio entre el símbolo &lt; y el ?. </p>
    <p>Leyendo en otros foros he visto que recomiendan desactivar la opción "WordPress corregirá de forma automática el XHTML incorrectamente anidado" y otra serie de cosas que ya he probado y ninguna me funciona. Lo curioso es que solo ocurre en las busquedas con el search y por categorías. Si entro al post completo se visualiza todo bien…</p>
    <p>Estoy usando el plugin Exec-PHP y el TDO Mini Form y mi versión de wordpress es la 3.0.1, por si esto ayuda. Espero vuestros consejos.</p>
    <p>GRACIAS DE ANTEMANO!!!
    </p>

  • #52392

    LGrusin
    Miembro

    La culpable es la función the_excerpt que filtra todos esos códigos. A no ser que modifiques o crees tu propia función the_excerpt, lo más fácil es usar [url=http://codex.wordpress.org/Customizing_the_Read_More]the_content[/url] (lee el último ejemplo) o limitar el número de palabras a mostrar bien con algún plugin o con tu propia función. Para los efectos es como hacer un resumen también.

    Lo pones en el archivo search.php y los que usen the_excerpt.

    Un saludo

  • #52393

    Tito Destris
    Participante

    Gracias LGrusin,

    También he estado revisando las plantillas que utilizo y todas usan the_content(). En ningún caso he viso la función the_excerpt() así que creo que por ahí no van a ir los tiros.

    En cuanto a lo de limitar el número de palabras no entiendo muy bien que quieres decir. A mi lo que me interesa es que se muestre el contenido del campo personalizado en el resumen cuando hago búsquedas o selecciono categorías, pero se muestra el código php…

  • #52397

    LGrusin
    Miembro

    Me perdí. Pense que te referías a los códigos que se muestran a los visitantes entre etiquetas PRE o sin ellas.

    Lo de limitar el número de palabras era para emular el “Leer más…” pero sin él tal como hace the_excerpt (resumen). ¿Qué función utiliza el theme para mostar los resumenes o extractos?.

    ¿Has puesto códigos en los posts y no se ejecutan? Entonces habrá que sospechar de Exec-PHP. También puedes comparar el código de los archivos implicados a ver cuales son las diferencias.

    Por cierto, deberías actualizar WordPress y todos los plugins. No es bueno mezclar versiones.

    Saludos

  • #52401

    Tito Destris
    Participante

    Mi theme venía sin un fichero search.php, tira directamente de index.php en las búsquedas y de archive.php cuando selecciono una categoría. No me preguntes por qué, pero lo hace así. Ambos ficheros tienen el mismo código en el loop:

    Sí, en los post tengo metido código php principalmente para usar la función get_post_meta() y mostrar así el contenido de mis campos personalizados. Cuando muestro el Post al completo todo va bien. Cuando hago búsquedas en mi web o selecciono una categoría me muestra una lista de post donde para cada uno sólo se ve el resumen (hasta la etiqueta ‘more’). Pues es en ese resumen donde me muestra el código php que uso para la función get_post_meta() en lugar de ejecutar dicha función y mostrarme el contenido del campo personalizado.

    Descarto el plugin esté mal, porque como te he comentado cuando muestro el post completo todo se visualiza correctamente. Es muy extraño!!

  • #52525

    Tito Destris
    Participante

    He probado con varios plugins para ejecutar php y el resultado siempre es el mismo, así que el problema debe estar en como se comporta la función the_content() cuando es ejecutada a raíz de realizar una búsqueda bien con el buscador de la web o al seleccionar una categoría.

    Desgraciadamente desconozco como es ese funcionamiento interno, si alguien tiene alguna idea, toda ayuda es bienvenida.

    Saludos!

  • #52543

    LGrusin
    Miembro

    Pues fijate en archive.php qué tiene delante del Loop. Busca algo parecido a:
    <?php if ( is_archive() || is_search() ) :

    Lo que ponga debajo es lo que hace diferente a las categorías y a las búsquedas.

    Un saludo

  • #52577

    Tito Destris
    Participante

    Delante del loop tanto en index.php como en archive php lo único que tengo es esto:

El foro ‘General WordPress.org’ está cerrado y no se permiten nuevos debates ni respuestas.

Pin It on Pinterest