如何在WordPress FSE主题中插入并运行PHP代码?
解决WordPress FSE主题中在单页模板运行PHP代码的问题
方法一:让single.php被WordPress正确识别并使用
将single.html改为single.php后WordPress未加载它,反而用index.html,核心原因是PHP模板缺少必要的模板声明,导致系统无法识别它是单页模板。按以下步骤修改:
- 在
single.php文件最顶部添加模板注释:
<?php /** * Single Post Template * * @package Twenty Twenty-Three */ ?>
注释里的主题名称要和你使用的主题对应,比如用Twenty Twenty-Two就改成对应名称
- 将原
single.html的内容粘贴到注释下方,在需要插入PHP代码的位置直接编写逻辑,示例如下:
<?php /** * Single Post Template * * @package Twenty Twenty-Three */ ?> <!-- wp:template-part {"slug":"header","tagName":"header"} /--> <!-- wp:group {"tagName":"main"} --> <main class="wp-block-group"> <!-- 插入自定义PHP代码示例 --> <?php echo '当前文章ID:' . get_the_ID(); ?> <!-- wp:group {"layout":{"inherit":true}} --> <div class="wp-block-group"> <!-- wp:post-title {"level":1,"align":"wide","style":{"spacing":{"margin":{"bottom":"var(--wp--custom--spacing--medium, 6rem)"}}}} /--> <!-- 原模板其他内容保持不变 --> </div> <!-- /wp:group --> <!-- 剩余模板内容... --> </main> <!-- /wp:group --> <!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->
- 保存文件后刷新单页,WordPress会正确加载
single.php并执行其中的PHP代码。
方法二:不修改扩展名,在single.html中通过短代码运行PHP
如果不想改动原single.html的扩展名,可通过自定义短代码嵌入PHP逻辑:
- 在主题的
functions.php文件中添加短代码函数:
function custom_single_post_php_code() { // 编写你的PHP逻辑 $output = '当前文章作者:' . get_the_author(); $output .= '<br>发布日期:' . get_the_date(); return $output; } add_shortcode('custom_single_php', 'custom_single_post_php_code');
进入WordPress后台打开
single.html模板编辑器,插入「短代码」块,输入[custom_single_php]后保存模板。刷新单页,短代码会被替换为PHP代码执行后的内容。
注意事项
- 修改主题文件前请先备份原文件,避免操作失误导致网站故障。
- FSE主题中,块模板(.html)优先级高于传统PHP模板,若同时存在
single.html和single.php,系统会优先加载single.html;若想使用PHP模板,需删除或重命名single.html。
内容的提问来源于stack exchange,提问作者Rizatzmi
相关产品推荐
相关产品推荐

