[Résolu] Modifier le widget « recherche » (Créer un compte)

  • Statut : non résolu
15 sujets de 1 à 15 (sur un total de 18)
  • Auteur
    Messages
  • #526043
    NewbieCMS
    Membre
    Padawan WordPress
    60 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : Derniere version
    – Version de PHP/MySQL : 5 toutes les deux
    – Thème utilisé : Kelongtoo free (modifié)
    – Extensions en place :
    – Nom de l’hebergeur : Mon pc.
    – Adresse du site : localhost ^^

    Problème(s) rencontré(s) :
    Petite question simple et, j’en suis sur, stupide, mais je ne trouve pas de réponse qui me semble être la bonne.
    J’utilise sur mon site le widget « recherche » de WordPress dans la sidebar, pour la barre de recherche. J’ai ajouté une fonction afin de légèrement en modifier les résultats (il ne me sors plus que les résultats dans Article, en excluant mes pages). Je met le code si jamais cela intéresse quelqu’un :

    <?php

    // Retourner uniquement les articles comme résultat de recherches (exclut les pages)
    if (! function_exists( 'exclure_pages_recherche' ) ):

    function exclure_pages_recherche($query) {
    if ($query->is_search) {
    $query->set(‘post_type’, ‘post’);
    }
    return $query;
    }
    add_filter(‘pre_get_posts’,’exclure_pages_recherche’);
    endif; ?>

    Enfin la, ma problématique est toute simple: j’aimerais ajouter un « texte » par Default dans cette barre (comme « écrire ici ») qui apparaît lorsque l’utilisateur veut écrire, et ré-apparaître si le champ est vide.) Ça, je sais le faire, pas de soucis (onblur et onfocus si je ne me trompe pas).
    Seulement bah… je trouve pas le fichier pour le faire. Pas de fichier « searchform.php » dans mon thème, j’ai vu qu’apparemment il se situe dans le thème « par défaut » mais c’est a dire ? Ce widget vient-il de twenty ten ? twenty eleven ? twenty twelve ? Ou encore ailleurs et cela voudrait dire que je n’ai rien compris ^^

    #901671
    NewbieCMS
    Membre
    Padawan WordPress
    60 contributions

    A, un autre petit probleme.
    Dans mon theme on me propose de choisir si je veux afficher une page statique ou mes nouveaux articles en tant que page d’acceuil. Je choisi page statique car c’est ce qui correspond a mon besoin. Quand je clique sur le logo du site ou sur « home » je retourne bien a ma page statique pas de soucis.
    Mais si j’entre une recherche vide dans le widget de recherche, on m’enmene sur cette page des « nouveaux articles » dont je ne veux pas…

    #901672
    Flobogo
    Modérateur
    Maître WordPress
    19974 contributions

    Bonsoir,

    Pour votre 1er problème :
    C’est plutôt le fichier search.php qu’il faut trouver. Mais si il existe, c’est dans votre thème ou dans le thème-parent (Kelongtoo Free) qu’il faut le chercher, pas dans un autre thème, même pas ceux par défaut ! Ttwenty ten ou tewenty eleven ou tewenty twelve n’ont rien à voir avec votre thème : pas d’interférence.

    Si vous n’avez pas de fichier search.php dans votre thème ou thème-parent, c’est que l’appel à la fonctions de recherche est défini dans le fichier functions.php. Enfin, je crois … mes compétences s’arrêtent là en création de thèmes 😕

    Quant à votre deuxième problème : une recherche vide qui amène à la « page » des nouveaux articles … Ben c’est logique, puisque vous avez demandé à ce que les recherches se limitent aux articles ! (vous avez exclu les pages du mode recherche)
    Donc, une recherche sur le mot XXXX va amener aux articles contenant ce mot XXXX … mais une recherche sur aucun mot (… donc, tous les mots) va amener à la page qui liste tous les articles.

    Là encore, je ne peux pas vous en dire plus.
    J’espère qu’au moins, ça vous aidera à cibler vos recherches. Ou que quelqu’un de plus compétent prendra la suite.

    #901673
    NewbieCMS
    Membre
    Padawan WordPress
    60 contributions

    Je ne trouve pas fichier « search.php » dans mon theme c’est bien le probleme 😕
    Et dans le fichier function.php, la seul reference a une fonction « search » est celle que j’ai moi meme mise pour exclure les pages des resultats. Pourtant j’avais bel et bien cette barre de recherche bien avant.

    Cette « page » nouveau articles n’est pas vraiment sensée exister, du moins je ne la trouve nulle part et je n’en veux pas a l’heure actuelle =p le fait qu’un visiteur puisse y acceder est un probleme pour moi.

    #901674
    luciole135
    Participant
    Maître WordPress
    13714 contributions

    Un lien de téléchargement de votre thème peut-être ?

    #901675
    Guy
    Participant
    Maître WordPress
    14817 contributions

    le plus simple pour modifier l’apparence du formulaire de recherche est de créer un fichier searchform.php à placer dans les fichiers du thème. Voir celui présent dans twentyeleven par exemple.

    Le texte qui apparait dans le champs d’édition est celui de l’attribut placehoder du input.

    #901676
    NewbieCMS
    Membre
    Padawan WordPress
    60 contributions

    Merci Guy, je vais essayer votre solution.

    Luciole : http://tokokoo.com/portfolio/kelontong-lite-wordpress-ecommerce-themes/

    #901677
    NewbieCMS
    Membre
    Padawan WordPress
    60 contributions

    Merci Guy, votre solution marche a merveille.
    Il me reste néanmoins un leger probleme, lorsque je fait une recherche, le fil d’Ariane m’ecris « search result for XXX ». Possibilitée de passer cette phrase en francais ? Je ne vois pas du tout ou chercher, j’ai essayer de modifier dans searchform.php mais rien n’a d’effet la dessus.

    <form method="get" id="searchform" action=" »>
    <label for="s" class="assistive-text"></label>

    <input type="submit" class="submit" name="submit" id="searchsubmit" value=" » />
    </form>

    Voici le code de mon searchform.php

    ps: a quoi correspondent les ‘twentyeleven’ en parametres ?

    #901678
    Guy
    Participant
    Maître WordPress
    14817 contributions

    le texte inscrit dans un fil d’Ariane n’a rien à voir avec les champs du formulaire.

    Le « twentyeleven » que tu vois est le domaine de traduction, c’est propre à chaque thème et si le tien est traduisible, tu dois pouvoir le trouver dans des focntions comme _e(), __()

    #901679
    NewbieCMS
    Membre
    Padawan WordPress
    60 contributions

    C’est donc plutot dans breadcrumb.php, (ca me semble logique en fait…), je vais essayer de trouver quelque chose.

    Domaine de traduction ? :O Je vais faire des recherches la dessus, je ne sais meme pas ce que c’est a vrai dire.

    SInon, pour mon probleme avec la recherche vide, qui me redirige vers home.php (une page dont je ne veux pas, qui présente les derniers articles), comment faire pour qu’elle redirige plutot vers index.php ?
    Dois-je faire une redirection en dure de home.php vers index.php ? Si oui, comment ? J’avoue ne pas maitriser ce sujet 😕

    #901680
    NewbieCMS
    Membre
    Padawan WordPress
    60 contributions

    C’est bon, il s’agissait bien de breadcrump-trail.php, cette partie du probleme est résolue. Merci a vous Guy.

    Ne me reste plus que ce probleme de recherche « vide » et je devrais etre bon.

    #901681
    Guy
    Participant
    Maître WordPress
    14817 contributions

    Pourquoi ne pas ajouter une page 404.php, en prenant encore une fois modèle sur le thème twentyeleven.

    #901682
    NewbieCMS
    Membre
    Padawan WordPress
    60 contributions

    Pour avoir une 404 personalisée ? Le probleme c’est que faire une recherche « vide » ne m’enmene pas sur une erreur 404 mais sur home.php . J’avoue avoir mal saisi.

    #901683
    Guy
    Participant
    Maître WordPress
    14817 contributions

    arf, oui , j’avasi compris de travers :(

    alors j’avais fait quelque chose à partir d’un plugin développé ici: http://toscho.de/2010/jquery-plugin-leere-formulare-verhindern/

    il faut donc faire un fichier js, appelé ‘searchfilter.js’:

    // JavaScript Document
    jQuery(document).ready(function($) {
    $.fn.preventEmptySubmit = function( options ) {
    var settings = {
    inputselector: « #s »,
    msg : objectL10n.msg_empty
    };
    if ( options ) {
    $.extend( settings, options );
    };
    this.submit( function() {
    var s = $( this ).find( settings.inputselector );
    if (! s.val() ) {
    //alerte dans placeholder
    s.attr(« placeholder », settings.msg);
    //alerte en boite de dialogue
    //alert( settings.msg );
    s.focus();
    return false;
    }
    return true;
    });
    return this;
    };
    $( « #searchform » ).preventEmptySubmit();
    });

    à placer dans un répertoire js du thème.
    Dans le fichier functions.php, ajouter

     __( ‘Recherche vide’, ‘my-text-domain’),
    ) );
    }

    #901684
    NewbieCMS
    Membre
    Padawan WordPress
    60 contributions

    Désolé pour cette periode d’inactivité Guy, j’etais en pleine periode de multi-soutenances et donc un peu debordé.
    Plus qu’une certification Cisco a passer, et je pourrais presque me considérer comme en vacance, enfin.

    Je vais essayer votre solution et vous tiens au courant.

15 sujets de 1 à 15 (sur un total de 18)
  • Vous devez être connecté pour répondre à ce sujet.