J'ai un modèle de page que je veux charger, chaque fois que mon $_SERVER['REQUEST_URI']
est comme ceci, www.site.com/link/147
où le nombre 147
sera variable.
c’est-à-dire que je voudrais appeler un modèle de page chaque fois que mon $_SERVER['REQUEST_URI']
contient /link/
.
Si vous pouvez compter sur l'URI en suivant toujours le même modèle, par exemple, /link/###
, vous pouvez alors charger de manière sélective un modèle différent à l’aide d’une variable de requête et d’une réécriture (vous devrez vider les réécritures pour tester):
/**
* Register a query variable to check against for loading a template.
*
* @param array $vars Registered query variables.
* @return array (Maybe) filtered list of query variables.
*/
function wpdocs_add_query_var( $vars ) {
$vars[] = 'my-template';
return $vars;
}
add_filter( 'query_vars', 'wpdocs_add_query_var' );
/**
* Register an endpoint using the new query variable.
*/
function wpdocs_add_rewrite_rule() {
add_rewrite_rule( 'link/([0-9]+)?$', 'index.php?my-template=1', 'top' );
}
add_action( 'init', 'wpodcs_add_rewrite_rule' );
/**
* Load a template based on the presence of a query variable in the request.
*
* @param string $template Template file.
* @return string (Maybe) filtered template file path.
*/
function wpdocs_load_page_template( $template ) {
if ( ! is_admin() ) {
if ( get_query_var( 'my-template' ) ) {
$template = get_template_directory() . '/my-template.php';
}
}
return $template;
}
add_filter( 'template_include', 'wpdocs_load_page_template' );