!
也想出现在这里? 联系我们
广告位
当前位置:首页>开发>WordPress开发实例>如何避免模版文件包含漏洞?学习防御技巧

如何避免模版文件包含漏洞?学习防御技巧

包含主题核心文件 我们已经知道,WordPress主题是从许多不同的模板文件构建的。这些文件通常包括 side…--由S9社区整理

包含主题核心文件

我们已经知道,WordPress主题是从许多不同的模板文件构建的。这些文件通常包括 sidebar.php , header.php和 footer.php。这些文件都是使用 模板标签调用的 ,例如:

get_header()

get_footer();

get_sidebar() ;

我们可以通过自定义文件名称来调用这些文件的自定义版本 sidebar-{your_custom_template}.php , header-{your_custom_template}.php 以及 footer-{your_custom_template}.php 。然后,我们可以使用自定义模板名称作为调用模版函数的唯一参数来包含这个文件,如下所示:

get_header( 'your_custom_template' );
get_footer( 'your_custom_template' );
get_sidebar( 'your_custom_template' );

WordPress 通过汇编各种文件来创建页面。除了页眉,页脚和侧边栏的标准文件之外,我们还可以使用 get_template_part() 来在主题的任何位置调用模版文件片段。要在主题中创建自定义模板文件,请为文件指定一个合适的名称,并使用与标题,侧栏和页脚文件相同的自定义模板系统,如:

slug-template.php

例如,如果我们要创建一个自定义模板来显示发布的内容,我们可以创建一个名为 content.php 的模版文件,然后通过给这个文件名加后缀的方式创建自自定义模版片段文件,如:content-product.php。然后,我们就可以在主题中加载此模板文件了,如下所示:

get_template_part( 'content', 'product' );

如果我们想让这些模版文件更加有序,例如,我们为不同的文章类型添加了各自的模版文件,我们可以创建一个 content-templates 的目录,然后把文章类型模版片段放到这个目录中。

我们使用的主题的主题层次结构 my-theme可能如下所示。 style.css和 page.php包含在上下文中。

themes
my-theme
content-php
content-location.php
content-product.php
content-profile.php
style.css

要包含您的内容模板,我们需要将目录名称添加到 slug 参数中,如下所示:

get_template_part( 'content-templates/content', 'location' );
get_template_part( 'content-templates/content', 'product' );
get_template_part( 'content-templates/content', 'profile' );

到主题目录的链接

要链接到主题的目录,我们可以使用以下函数:

get_theme_file_uri() ;

如果我们没有使用子主题,此函数将返回主题主文件夹的完整 URI。我们可以使用它来引用主题中的子文件夹和文件,如下所示:

echo get_theme_file_uri( 'images/logo.png' );

如果我们使用的是子主题,则此函数将返回子主题中文件的 URI(如果存在)。如果在子主题中找不到该文件,该函数将返回父主题中文件的 URI。在分发主题时或在子主题可能激活或未激活的任何其他情况下,请务必记住这一点。

要访问主题目录中文件的路径,可以使用以下函数:

get_theme_file_path();

与 get_theme_file_uri() 一样 ,这个函数将返回子主题中文件的路径(如果存在)。如果在子主题中找不到该文件,该函数将返回父主题中文件的路径。

在子主题中,我们可以使用以下函数链接到父主题目录中的文件 URI 或路径:

get_parent_theme_file_uri() ;

get_parent_theme_file_path() ;

get_theme_file_uri()一样,我们也可以像这样引用子文件夹和文件:

echo get_parent_theme_file_uri( 'images/logo.png' );
//or
echo get_parent_theme_file_path( 'images/logo.png' );

引用可能不存在的文件时要小心,因为这些函数将返回URI或文件路径,无论文件是否存在。如果文件丢失,这些函数将返回断开的链接。

函数 get_theme_file_uri() , get_theme_file_path() , get_parent_theme_file_uri(), get_parent_theme_file_path() 是在 WordPress 4.7 中引入的。

对于以前的WordPress版本,请使用 get_template_directory_uri() , get_template_directory(), get_stylesheet_directory_uri(), get_stylesheet_directory() 。

请注意,较新的 4.7 版本中的函数无论如何都会运行旧函数作为检查过程的一部分,因此在可能的情况下使用较新的函数是有意义的。

模板中的动态链接

无论我们的固定链接如何设置,我们都可以通过引用文章 ID 来将链接发布到页面。如下:

<a href="<?php echo get_permalink($ID); ?>">这是一个链接</a>

这是一种创建页面菜单的便捷方式,因为您可以在不破坏链接的情况下更改页面大小,因为 ID 将保持不变。但是,这可能会增加数据库查询。

您已阅读完《wordpress主题完整开发系列(共30篇)》专题的第 10 篇。请继续阅读该专题下面的文章:

给TA打赏
共{{data.count}}人
人已打赏
WordPress开发实例

想要制作网站?了解模板文件吧!

2023-6-4 19:18:35

WordPress开发实例

引领主题基础-打造精彩文章

2023-6-4 19:19:16

声明 本站上的部份代码及教程来源于互联网,仅供网友学习交流,若您喜欢本文可附上原文链接随意转载。无意侵害您的权益,请发送邮件至 [email protected] 或点击右侧 私信:林沐阳 反馈,我们将尽快处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索