[WP.org] regle particuliere au url, action pre_get_posts
-
je veux appliquer une regle particuliere au url
je procede en utilisant l’action
add_action(‘pre_get_posts’, array(&$this, « pre_get_posts ») );la fonction « pre_get_posts » est plus bas
si j’affecte $query->is_page = TRUE
alors j’ai des erreurs :
« Trying to get property of non-object in /www/htdocs/dossiers/portail_phaneuf/wp-includes/query.php on line 3324 »
c’est la fonction function is_page( $page = » ) !?si $query->is_page = NULL OU FALSE
je n’ai pas d’erreur de traitement suaf que le mauvais template / model est utulisé
WP ne trouve pas le bon template / model qui devrait etre le model affecter dans ce post ( defaut ou specifique )y a un pro qui m’indiquer quelques piste ?
function pre_get_posts($arg)<br /> {<br /> /*<br /> ref sur le sujet<br /> http://codex.wordpress.org/Plugin_API/Filter_Reference/request<br /> http://codex.wordpress.org/Custom_Queries<br /> http://codex.wordpress.org/Function_Reference/query_posts<br /> http://codex.wordpress.org/Plugin_API/Filter_Reference/posts_where<br /> http://codex.wordpress.org/Plugin_API/Filter_Reference/posts_request<br /> */</p> <p> $mod = FALSE;<br /> $str_url = $this->get_curURL();<br /> if ( (strpos($str_url, "wp-admin") === FALSE) )<br /> {</p> <p> $query = $arg;<br /> $query_int = $arg;</p> <p> /*<br /> segmentation :<br /> wp_url/segment_0/segment_1/segment_2/</p> <p> possibilités :<br /> lang/categorie/slug<br /> lang/slug<br /> categorie/slug<br /> slug<br /> */<br /> $arr_segments = $this->get_segments();<br /> $s = array(<br /> "lang" => NULL,<br /> "cat" => NULL,<br /> "slug" => NULL); </p> <p> if ( count($arr_segments) > 0 )<br /> {<br /> // calcul structutre<br /> if( in_array($arr_segments[0], array("fr","en")) )<br /> {<br /> $s["lang"] = $arr_segments[0];<br /> if( isset($arr_segments[1]) )<br /> {<br /> if( isset($arr_segments[2]) )<br /> {<br /> // possibilité : lang/categorie/slug<br /> $s["cat"] = $arr_segments[1];<br /> $s["slug"] = $arr_segments[2];<br /> }<br /> else<br /> {<br /> // possibilité : lang/slug<br /> $s["slug"] = $arr_segments[1];<br /> }<br /> }<br /> }<br /> else<br /> {<br /> if( isset($arr_segments[1]) )<br /> {<br /> // possibilité : categorie/slug<br /> $s["cat"] = $arr_segments[0];<br /> $s["slug"] = $arr_segments[1];<br /> }<br /> else<br /> {<br /> // possibilité : slug<br /> $s["slug"] = $arr_segments[0];<br /> }<br /> }</p> <p> // applique regle à la structure, sera selon dictionnaire FR/EN<br /> // 'post_type' => 'commerce',<br /> // $post_type = "post";<br /> // $post_type = "page";<br /> //<br /> $mod = FALSE;<br /> $post_type = "page";<br /> if ( $s["slug"] == "parking" )<br /> {<br /> $s["slug"] = "stationement";<br /> $mod = TRUE;<br /> $post_type = "page";<br /> }</p> <p> // altere requete si stucture modifier<br /> if ($mod)<br /> {<br /> // si on modifi la requet sql<br /> // $where = " AND (wp_posts.post_name='".$s["slug"]."') AND (wp_posts.post_type = '".$post_type."') AND (wp_posts.post_status = 'publish') ";</p> <p> // si on modifie $query</p> <p> // $arr_query = array();<br /> if (isset($s["slug"]))<br /> {<br /> $query->query_vars["pagename"] = $s["slug"];<br /> $query->query_vars["category_name"] = "";<br /> $query->query_vars["tax_query"] = NULL;<br /> $query->is_category = FALSE;<br /> $query->is_archive = FALSE;<br /> $query->is_404 = FALSE;<br /> $query->is_search = FALSE;<br /> $query->is_tax = FALSE;<br /> $query->is_front_page = FALSE;<br /> $query->is_home = FALSE;<br /> $query->is_attachment = FALSE;<br /> $query->is_single = FALSE;<br /> $query->is_tag = FALSE;<br /> $query->is_author = FALSE;<br /> $query->is_date = FALSE;<br /> $query->is_archive = FALSE;<br /> $query->is_comments_popup = FALSE;<br /> $query->is_paged = FALSE;</p> <p>// ***********************************************************<br /> // si $query->is_page = TRUE<br /> // j'ai des erreurs :<br /> // "Trying to get property of non-object in /www/htdocs/dossiers/portail_phaneuf/wp-includes/query.php on line 3324"<br /> // c'est la fonction function is_page( $page = '' ) !<br /> //<br /> // si $query->is_page = NULL OU FALSE<br /> // WP ne trouve pas le bon template / model qui devrait etre le model affecter dans ce post ( defaut ou specifique )<br /> $query->is_page = NULL;<br /> }</p> <p> $query->query_vars["include"] = '';<br /> $query->query_vars["post_status"] = 'publish';<br /> $query->query_vars["post_type"] = $post_type;<br /> $query->query_vars["post__in"] = array();</p> <p> }<br /> }</p> <p> return;<br /> }L’adresse du blog concerné est (visible uniquement pour les utilisateurs connectés).
-
Je regrette, mais vous n’êtes pas dans le bon forum, car votre site utilise WordPress (mais n’est pas hébergé par WordPress.com).
Lisez attentivement le message qui apparaît en évidence à la page d’accueil :
https://fr.forums.wordpress.com/topic/message-important-a-lire-avant-dutiliser-ces-forums?replies=1 (premier point)
- Le sujet ‘[WP.org] regle particuliere au url, action pre_get_posts’ est fermé aux nouvelles réponses.