<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>rewrite_rule &#8211; Développeur Web</title>
	<atom:link href="https://www.julesgaston.fr/tag/rewrite_rule/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.julesgaston.fr</link>
	<description>Sites Internet, logiciels, accompagnement marketing</description>
	<lastBuildDate>Wed, 05 Jun 2019 20:40:17 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.2</generator>
	<item>
		<title>Installer une réécriture d&#8217;URL personnalisée avec paramètre sur WordPress</title>
		<link>https://www.julesgaston.fr/installer-une-reecriture-durl-personnalisee-avec-parametre-sur-wordpress/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=installer-une-reecriture-durl-personnalisee-avec-parametre-sur-wordpress</link>
					<comments>https://www.julesgaston.fr/installer-une-reecriture-durl-personnalisee-avec-parametre-sur-wordpress/#respond</comments>
		
		<dc:creator><![CDATA[camillejg]]></dc:creator>
		<pubDate>Wed, 05 Jun 2019 20:38:41 +0000</pubDate>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[rewrite_rule]]></category>
		<category><![CDATA[urlrewriting]]></category>
		<guid isPermaLink="false">https://www.julesgaston.fr/?p=1634</guid>

					<description><![CDATA[La réécriture d&#8217;adresses est toujours un indispensable du référencement naturel, et peut s&#8217;avérer utile à mettre en place lorsque l&#8217;on développe des pages sur -mesure ou des plugins WordPress. Pour ce faire, et lorsque vous souhaitez passer certains paramètres dans vos URL, il est indispensable de suivre certaines règles éditées par le CMS. Ces déclarations [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>La réécriture d&rsquo;adresses est toujours un indispensable du référencement naturel, et peut s&rsquo;avérer utile à mettre en place lorsque l&rsquo;on développe des pages sur -mesure ou des plugins WordPress.</p>



<span id="more-1634"></span>



<p>Pour ce faire, et lorsque vous souhaitez passer certains paramètres dans vos URL, il est indispensable de suivre certaines règles éditées par le CMS. Ces déclarations sont à faire soit dans votre plugin, soit dans le fichier functions.php de votre thème.<br>Premièrement, la déclaration des variables, qui autorise leur utilisation des les URL chargées.</p>



<pre class="wp-block-code"><code>// Installation de la variable
function wpd_add_query_vars( $qvars ) {
  $qvars[] = 'ma_variable';
  return $qvars;
}
add_filter( 'query_vars', 'wpd_add_query_vars' );</code></pre>



<p>Deuxième étape, la définition de ma règle de réécriture. Pour l&rsquo;exemple ci-dessous, je souhaites que toutes les pages appelées « /mon_url/ », et suivies de n&rsquo;importe quoi d&rsquo;autre, appeleront ma page « mon_url » définie dans mes pages WordPress. J&rsquo;y ajoutes la récupération de ma variable, qui va ici aller chercher le premier paramètre situé après « mon_url/ ».</p>



<pre class="wp-block-code"><code>// Initialisation de la règle de réécriture
function wpd_page_rewrite(){
    add_rewrite_rule(
        '^mon_url/([^/]*)?',
        'index.php?pagename=mon_url&amp;ma_variable=$matches[1]',
        'top'
    );
}
add_action( 'init', 'wpd_page_rewrite' );</code></pre>



<p>Votre réécriture est prête. Reste plus qu&rsquo;à la déclarer à WordPress afin qu&rsquo;elle soit bien prise en compte. Attention, sans cette réinitialisation des règles de réécriture, votre rewriting personnalisé ne sera jamais pris en compte.<br>Dans cette fonction, j&rsquo;ai ajouté un test sur les règles existantes afin que la réinitialisation ne soit prise en compte que dans le cas où « mon_url » n&rsquo;a jamais été prise en compte.</p>



<pre class="wp-block-code"><code>// Installation de la réécriture dans les règles de rewriting de WordPress
function my_flush_rules()
{
    $rules = get_option( 'rewrite_rules' );
    if ( ! isset( $rules['(mon_url)/(\d*)$'] ) ) {
        global $wp_rewrite; $wp_rewrite->flush_rules();
    }
}
add_action( 'wp_loaded','my_flush_rules' );</code></pre>



<p>Et c&rsquo;est gagné ! A vous les belles URL réécrites <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<h2 class="wp-block-heading">Récapitulatif du code à créer :</h2>



<pre class="wp-block-code"><code>// Installation de la variable
function wpd_add_query_vars( $qvars ) {
  $qvars[] = 'ma_variable';
  return $qvars;
}
add_filter( 'query_vars', 'wpd_add_query_vars' );

// Initialisation de la règle de réécriture
function wpd_page_rewrite(){
    add_rewrite_rule(
        '^mon_url/([^/]*)?',
        'index.php?pagename=mon_url&amp;ma_variable=$matches[1]',
        'top'
    );
}
add_action( 'init', 'wpd_page_rewrite' );

// Installation de la réécriture dans les règles de rewriting de WordPress
function my_flush_rules()
{
    $rules = get_option( 'rewrite_rules' );
    if ( ! isset( $rules['(mon_url)/(\d*)$'] ) ) {
        global $wp_rewrite; $wp_rewrite->flush_rules();
    }
}
add_action( 'wp_loaded','my_flush_rules' );</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.julesgaston.fr/installer-une-reecriture-durl-personnalisee-avec-parametre-sur-wordpress/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
