Ayuda para añadir filtro a buscador

Inicio Foros WordPress Plugins Ayuda para añadir filtro a buscador

Etiquetado: 

Este debate contiene 1 respuesta, tiene 2 mensajes y lo actualizó  LGrusin hace 6 años, 3 meses.

  • Autor
    Publicaciones
  • #65079

    cobychr
    Participante

    Estimados, estoy tratando de que el buscador de mi pagina solo realice la búsqueda en los títulos de las entradas y no en el contenido. De esta forma es como luce mi functions.php sin modificaciones:

    <?php
    if ( function_exists(‘register_sidebar’) )
    register_sidebars(2, array(
    ‘before_widget’ => ‘<li><div id=”%1$s” class=”%2$s”>’,
    ‘after_widget’ => ‘</div></li>’,
    ‘before_title’ => ‘<h3>’,
    ‘after_title’ => ‘</h3>’
    ));
    function widget_mytheme_search() {
    ?>

    <li><div>

    <form method=”get” action=”<?php bloginfo(‘home’); ?>”>
    <input type=”text” name=”s” id=”s” size=”35″ />
    <input class=”searchbutton” type=”submit” value=”<?php _e(‘Search’); ?>” />
    </form>

    </div></li>
    <?php
    }
    if ( function_exists(‘register_sidebar_widget’) )
    register_sidebar_widget(__(‘Search’), ‘widget_mytheme_search’);

    ?>

    Ahora encontré una pagina con este código para lo que necesito:
    add_filter(‘posts_search’, ‘mi_search_title’);
    function mi_search_title($search) {
    preg_match(‘/%([^%]+)%/’, $search, $m);
    if (isset($m[1])) {
    // Original
    // ” AND (((wp_posts.post_title LIKE ‘%termino%’) OR (wp_posts.post_content LIKE ‘%termino%’))) AND (wp_posts.post_password = ”) ”
    return ” AND wp_posts.post_title LIKE ‘%$m[1]%’ AND (wp_posts.post_password = ”) “;
    } else {
    return $search;
    }
    }
    En que parte debería agregar ese filtro?, trate de hacerlo pero algo hice mal y el login (wp-admin) dejó de funcionar mostrando un error de estilo Warning: Cannot Modify Header Information… lo cual afortunadamente pude solucionar volviendo a subir el functions.php original vía ftp.
    Alguien sabe como hacerlo?. Gracias de antemano.
    Saludos.

  • #65319

    LGrusin
    Miembro

    Suponiendo que funcione ese código, añadelo al principio del archivo functions.php de tu theme. Editalo con el editor archivos de WordPress.

    <?php

    add_filter(‘posts_search’, ‘mi_search_title’);

    function mi_search_title($search) {
    preg_match(‘/%([^%]+)%/’, $search, $m);
    if (isset($m[1])) {
    // Original
    // ” AND (((wp_posts.post_title LIKE ‘%termino%’) OR (wp_posts.post_content LIKE ‘%termino%’))) AND (wp_posts.post_password = ”) ”
    return ” AND wp_posts.post_title LIKE ‘%$m[1]%’ AND (wp_posts.post_password = ”) “;
    } else {
    return $search;
    }
    }
    ?>

    Un saludo

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

Pin It on Pinterest

Ir al contenido