如何基于slug的一部分加载特定模板?
假设我有3个URL,我想为其加载相同的模板,因此我想根据“建议”进行匹配。请注意,我不想在后端为每个创建都创建一个页面。我想动态生成内容。
这是更广泛问题的更具体部分-Dynamic URL generates dynamic content
域。推特上的com/建议
领域facebook上的com/建议
领域instagram上的com/建议
如何基于slug的一部分加载特定模板?
假设我有3个URL,我想为其加载相同的模板,因此我想根据“建议”进行匹配。请注意,我不想在后端为每个创建都创建一个页面。我想动态生成内容。
这是更广泛问题的更具体部分-Dynamic URL generates dynamic content
领域facebook上的com/建议
领域instagram上的com/建议
您可以筛选template_include
, 检查搜索词的请求URL并返回自定义模板。
以下是一个基本示例:
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;
});
我想移动页面模板文件,如page-{slug}.php 到我的主题中的子目录,WordPress将自动识别它们。如果所述表单的页面模板在子目录中不存在,那么WordPress应该回到默认的模板加载规则。我如何才能做到这一点?Note-1: This 对于页面模板和this 链接提及template-parts/page, 这不是一回事。Note-2: 我有多个page-{slug}.php 像页面模板文件一样,我想将它们移动到子目录中,以获得更整洁的文件组织。