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 siffleux.wordpress.com.
fermé
non résolu