建站教程

建站教程

Products

当前位置:首页 > 建站教程 >

WordPress 使用指定的页面模板获取页面 id

GG网络技术分享 2025-03-18 16:04 0


什么是模板? WordPress默认使用主题目录下的page.php作为模板来展示页面,但有时我们需要不同的模板来展示页面,比如登录、注册、提交页面。 这些页面不同于普通页面。 此时,WordPress 提供了页面模板,以便开发者可以自定义 WordPress 页面的外观甚至功能。

页面模板php文件的匹配

在 WordPress 中,页面使用的模板是通过自定义列记录的。 自定义列的名称:_wp_page_template,值为模板的文件名:

  • 如果是默认模板page.php,那么_wp_page_template的值为:default。如果是从头到尾的默认模板,WordPress不会添加这个自定义版块
  • 如果是主题根目录下的自定义页面模板,那么_wp_page_template的值为文件名,如:page-login.php
  • 如果是theme子目录下的页面模板,则_wp_page_template的值包含路径,如:templates/page-login.php

因为这个自定义列的名称以下划线开头,是一个隐藏的自定义列,所以在页面编辑页面的自定义列中是看不到这个字段的。

通过页面模板获取页面ID

我新建了一个登录页面模板,命名为login.php,并且后台已经有使用这个模板的页面,那么我可以使用下面的函数来获取login.php模板的页面id:

function get_page_id_from_template($template) {   global $wpdb;   // 多个页面使用同一个模板我就没辙了

   $page_id = $wpdb->get_var($wpdb->prepare("SELECT `post_id`

                              FROM `$wpdb->postmeta`, `$wpdb->posts`

                              WHERE `post_id` = `ID`

                                    AND `post_status` = 'publish'

                                    AND `meta_key` = '_wp_page_template'

                                    AND `meta_value` = %s                                    LIMIT 1;", $template));   return $page_id;

}

//以下是获取使用该模板的页面地址

<a href="https://www.mobantu.com/<?php echo get_permalink(get_page_id_from_template('login.php')) ?>" >登录</a>

标签: WordPress 教程

提交需求或反馈

Demand feedback