You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress主题:新建模板页面与template-parts及表单模板不显示问题咨询

WordPress主题开发问题解答

1. 如何创建新的模板页面与template-parts

创建自定义页面模板

我来一步步教你创建自定义页面模板,操作很直观:

  • 先在当前激活的主题(或子主题)根目录下新建一个PHP文件,文件名建议用小写字母+下划线的格式,比如page-custom-db.php,避免特殊字符导致识别问题。
  • 在文件最顶部的PHP代码块里添加模板识别注释——这是WordPress能识别到它的关键,格式不能错:
    <?php
    /*
    Template Name: 自定义数据库表单页面
    */
    ?>
    
  • 接下来就可以编写页面结构和逻辑了,比如调用主题的头部、底部,插入你的自定义表单内容:
    <?php
    /*
    Template Name: 自定义数据库表单页面
    */
    
    // 引入主题头部
    get_header();
    ?>
    
    <!-- 自定义页面内容区域 -->
    <div class="custom-form-wrap">
        <h2>提交你的信息</h2>
        <!-- 这里放你的表单代码 -->
    </div>
    
    <?php
    // 引入主题底部
    get_footer();
    ?>
    
  • 保存文件后,登录WordPress后台新建或编辑页面,右侧「页面属性」的「模板」下拉菜单里就能看到你命名的模板了。

创建并使用template-parts

Template-parts的核心是把重复模块拆分出来,方便复用和维护,比如你的表单模块就很适合做成template-part:

  • 在主题目录下新建template-parts文件夹(没有的话直接创建)。
  • 在这个文件夹里新建PHP文件,比如form-db-handler.php,把表单的HTML和交互逻辑写进去:
    <?php
    // 表单提交处理逻辑
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        // 和自定义数据库表交互的代码,比如用$wpdb对象操作
        global $wpdb;
        $custom_table = $wpdb->prefix . 'your_custom_table'; // 替换成你的自定义表名
    
        $wpdb->insert(
            $custom_table,
            array(
                'username' => sanitize_text_field($_POST['username']),
                'email' => sanitize_email($_POST['email'])
            )
        );
    }
    ?>
    
    <form method="post" action="<?php echo esc_url(get_permalink()); ?>">
        <div class="form-item">
            <label for="username">用户名:</label>
            <input type="text" id="username" name="username" required>
        </div>
        <div class="form-item">
            <label for="email">邮箱:</label>
            <input type="email" id="email" name="email" required>
        </div>
        <button type="submit" class="submit-btn">提交</button>
    </form>
    
  • 回到自定义页面模板里,用get_template_part()函数调用这个template-part:
    <?php
    /*
    Template Name: 自定义数据库表单页面
    */
    
    get_header();
    ?>
    
    <div class="custom-form-wrap">
        <h2>提交你的信息</h2>
        <!-- 调用拆分好的表单模块 -->
        <?php get_template_part('template-parts/form', 'db-handler'); ?>
    </div>
    
    <?php get_footer(); ?>
    
    这里的get_template_part('template-parts/form', 'db-handler')对应template-parts/form-db-handler.php文件,第一个参数是文件前缀,第二个是后缀,中间用连字符连接。

2. 自定义模板未在页面属性中显示的排查与解决

如果你的模板没出现在下拉菜单里,大概率是这几个问题,你可以逐一排查:

检查模板注释格式是否正确

这是最常见的坑,必须确保注释是PHP块内的多行注释,且放在文件最开头,不能有任何HTML或其他代码在它前面。正确格式如下:

<?php
/*
Template Name: 你的模板名称
*/
// 下面才是其他代码
?>

注意:Template Name:是固定写法,冒号后面必须有空格,模板名称可以自定义,但单词不能写错。

确认文件位置是否正确

  • 模板文件必须放在当前激活的主题(或子主题)的根目录,或者主题的page-templates文件夹里(WordPress 4.7及以上版本支持这个目录,部分主题会默认用这个结构)。
  • 如果用的是子主题,一定要把文件放在子主题目录里,别放到父主题里,否则激活子主题后会找不到模板。

检查文件名是否合规

文件名只能包含小写字母、数字和下划线,不能有空格、中文或特殊字符,比如page-db-form.php是正确的,页面模板.php或者page db form.php都会导致WordPress无法识别。

排查PHP语法错误

如果模板里有PHP语法错误(比如少了分号、括号不匹配、函数调用错误),WordPress可能无法解析这个模板,自然不会显示在菜单里。你可以用本地PHP环境的命令行工具检查:输入php -l 你的模板文件名.php,就能看到有没有语法问题。

清除缓存

有时候WordPress缓存插件或服务器缓存会导致模板不及时显示,你可以试试:

  • 清除后台缓存插件(比如WP Rocket、W3 Total Cache)的缓存。
  • 刷新几次WordPress后台页面,或者重新登录后台。

内容的提问来源于stack exchange,提问作者Vangari Madhu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:40:19