How can I load a particular template based on part of a slug ?
Say I have 3 urls that I want to load the same template for so I want to match based on the 'advice-on' Please note I don't want a single page for each creating in the backend. I want to generate the content dynamic.
This is more specific part of the wider question here- Dynamic URL generates dynamic content
domain/advice-on-twitter
domain/advice-on-facebook
domain/advice-on-instagram
How can I load a particular template based on part of a slug ?
Say I have 3 urls that I want to load the same template for so I want to match based on the 'advice-on' Please note I don't want a single page for each creating in the backend. I want to generate the content dynamic.
This is more specific part of the wider question here- Dynamic URL generates dynamic content
domain/advice-on-twitter
domain/advice-on-facebook
domain/advice-on-instagram
Share Improve this question edited Apr 13, 2017 at 12:37 CommunityBot 1 asked Jan 13, 2017 at 18:13 landedlanded 1316 bronze badges1 Answer
Reset to default 1You can filter template_include
, check the request URL for your search words and return a custom template.
Here is a primitive example:
add_filter( 'template_include', function( $template ) {
$template_map = [
'advice-on' => 'advice',
'links-' => 'link-collection',
];
foreach ( $template_map as $find => $match )
{
if ( 0 === strpos( $_SERVER[ 'REQUEST_URI' ], $find ) )
return get_template_directory() . "/$match.php";
}
return $template;
});