首页 > WordPress学习 > wordpress中选择page模板时自动区分父页面和子页面以及自定义name页面模板

wordpress中选择page模板时自动区分父页面和子页面以及自定义name页面模板

时间:2023年9月27日 分类:WordPress学习 浏览量:236

需要搭建一批的page页面,需要使用到默认的父页面以及子页面,和部分指定name的页面模板,经过一番折腾,以下这份代码,最终实现了需求:

<?php
/**
 * Template Name: 地区分站-省市分区配置
 */

$name = get_query_var('name'); // 获取$name变量

if ($name && locate_template("pages/fenzhan/shengshi-$name.php")) {
    // 如果$name存在,并且对应的模板文件存在,加载$name模板
    get_template_part("pages/fenzhan/shengshi-$name");
} else {
    $parent_page = wp_get_post_parent_id(get_the_ID()); // 获取当前页面的父页面
    
    // 检查当前页面是否有父页面
    if ($parent_page && locate_template("pages/fenzhan/shengshi-child.php")) {
        // 当前页面是子页面,并且子页面模板存在,加载子页面模板
        get_template_part('pages/fenzhan/shengshi-child');
    } else {
        // 当前页面是父页面或者没有父页面,加载父页面模板
        get_template_part('pages/fenzhan/shengshi');
    }
}
?>

而实现逻辑来自以下这两份设计方式:

<?php
/**
 * Template Name: 地区分站-省市分区配置
 */

// 获取当前页面的父页面
$parent_page = wp_get_post_parent_id(get_the_ID());

// 检查当前页面是否有父页面
if ($parent_page) {
    // 当前页面是子页面,加载子页面模板
    get_template_part('pages/fenzhan/shengshi-child');
} else {
    // 当前页面是父页面或者没有父页面,加载父页面模板
    get_template_part('pages/fenzhan/shengshi');
}
?>

以及这份基础page模板选择函数:

<?php 
/**
 * Template name: 地区分站-省市分区配置
 */
?>
<?php get_template_part('pages/fenzhan/shengshi', $name) ?>

如此,我们根据这两份,结合以后,出现了文章开头的设计。

终极版中,在加载子页面模板时使用了 locate_template 函数来明确检查是否存在对应的模板文件。如果模板文件存在,它才会加载该模板文件,否则它会继续加载父页面模板。这种方式更加精确,确保了正确加载子页面模板。

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权

文章名称:wordpress中选择page模板时自动区分父页面和子页面以及自定义name页面模板

文章链接:https://news.yynnw.com/182.html

该作品系作者结合个人学习经验及互联网相关知识整合。如若侵权请通过投诉通道提交信息,我们将按照规定及时处理。

觉得文章有用就打赏一下文章作者

微信扫一扫打赏

标签:

最新文章