在WordPress中加载基于部分Slug的模板页面

时间:2017-01-13 作者:landed

如何基于slug的一部分加载特定模板?

假设我有3个URL,我想为其加载相同的模板,因此我想根据“建议”进行匹配。请注意,我不想在后端为每个创建都创建一个页面。我想动态生成内容。

这是更广泛问题的更具体部分-Dynamic URL generates dynamic content


域。推特上的com/建议

领域facebook上的com/建议

领域instagram上的com/建议

1 个回复
SO网友:fuxia

您可以筛选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这样的页面模板文件移到子目录中?

我想移动页面模板文件,如page-{slug}.php 到我的主题中的子目录,WordPress将自动识别它们。如果所述表单的页面模板在子目录中不存在,那么WordPress应该回到默认的模板加载规则。我如何才能做到这一点?Note-1: This 对于页面模板和this 链接提及template-parts/page, 这不是一回事。Note-2: 我有多个page-{slug}.php 像页面模板文件一样,我想将它们移动到子目录中,以获得更整洁的文件组织。