IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WordPress PHP Discussion :

"tag_slug__and" qui se comporte comme "tag_slug__in"


Sujet :

WordPress PHP

  1. #1
    Futur Membre du Club Avatar de Mutaronogra
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut "tag_slug__and" qui se comporte comme "tag_slug__in"
    Bonjour,

    J'essaye de faire une recherche par tag sélectionné avec des checkboxes.

    Quand j'utilise les tag id, il ne me retourne rien dans le résultat de ma recherche.
    Quand j'utilise les tag slug, cela fonctionne avec 1 tag sélectionné. Si j'en sélectionne 2, ca me retourne tous les résultats qui ont un tag OU l'autre.
    J'aimerais que cela me retourne tous les résultats qui ont les 2 tags (ou plus) sélectionnés.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    // advanced search functionality
    function advanced_search_query($query) {
    	if ( ! is_admin() && $query->is_main_query() && $query->is_search() )
    	{
    		$paramTagList = $_GET['tag'];
     
    		// tag search
    		if (isset($paramTagList)) 
    		{
    			$query = new WP_Query( array( 'tag_slug__and' => $paramTagList ) );
    			//$query = new WP_Query( array( 'tag__and' => $paramTagList ) );
    		}
    		return $query; 
    	}
    }
    add_action('pre_get_posts', 'advanced_search_query');

    Pourtant "tag_slug__and" devrait faire un "ET", alors que "tag_slug__in" devrait faire un "OU" selon la documentation.
    La, "tag_slug__and" et "tag_slug__in" font des "OU": si Post contient Tag1 OU Tag2, affiche le résultat.


    Idéalement j'utiliserais "tag__and" si cela fonctionnait.

    Qu'est-ce que je fais de faux ou ne comprends pas?

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    déjà j'ai l'impression que l'argument "tag" dans l'URL est directement utilisé par WP_Query. donc il vaut mieux faire par exemple ?s=texte&recherche_etiquettes=etiquette1,etiquette2

    ensuite dans "pre_get_posts", l'objet peut être modifié directement et "tag_slug__and" attend un tableau de slug.

    tout ça mis ensemble, ça devrait fonctionner comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    function advanced_search_query($query) {
     
     
    	if (	!is_admin()
    		&&	$query->is_main_query()
    		&&	$query->is_search()
    		&&	isset($_GET["recherche_etiquettes"])
    	) {
     
    		$paramTagList = explode(",", $_GET["recherche_etiquettes"]);
     
    		$query->query_vars["tag_slug__and"] = $paramTagList;
     
    	}
     
     
    }

  3. #3
    Futur Membre du Club Avatar de Mutaronogra
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Waaaahhhh enfin ça fonctionne !!!!


    Merci ! J'en ai passé des heures la dessus !


    Cela fonctionne si je n'utilise pas le explode.

    Merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CSS 3] Div en "Flex" et ancre qui se comporte comme un block ?
    Par cocaaladioxine dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 10/10/2016, 10h50
  2. [EJB3] Un Ejb Stateless qui se comporte comme unEjb Stateful
    Par clem_alain dans le forum Java EE
    Réponses: 5
    Dernier message: 04/02/2011, 12h00
  3. Applet qui se comporte comme un textarea ?
    Par Rakken dans le forum Applets
    Réponses: 1
    Dernier message: 10/11/2008, 16h26
  4. GUI qui se comporte comme VS
    Par AlligO dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/05/2008, 13h09
  5. Browser qui se comporte comme mozilla ou comme ie, etc.
    Par Bad_Lemon dans le forum Réseau
    Réponses: 5
    Dernier message: 25/04/2007, 07h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo