PHP:当使用 get_template_part 加载 php 部分时如何用 <div>...</div> 包装每个部分并切换此包装器 on/off调试目的

PHP: When using get_template_part to load php partials how to wrap each part with <div>...</div> and toggle this wrapper on/off for debugging purpose

Q1。如果使用get_template_part加载partials,有没有办法注入

<div style="border: 1px solid blue"> around all partials </div> 

这样我就可以看到我的页面结构及其部分内容以进行调试?

Q2.I 想要一个开关,可以对所有以这种方式加载的分音进行切换。

Q3.Eventually 我想为从不同文件夹加载的部分提供不同的 border/backgroupd 颜色。

Q4.It 也可以在初始包装器之后立即输出部分名称,这样我就可以看到它的来源。

Q5.Even 更理想的情况是 link 像这样的文件:

file://C://testwordpress/...Theme/partials/Details/myinfo.php

这是列维建议的我的尝试:

php 部分调试 php partial debugging

谢谢

查看 get_template_part() 文档,在加载模板之前有一个钩子,但在加载模板之后没有,所以第一个问题的答案是:.

但是,您可以创建自己的函数,例如...

function get_and_wrap_template_part( string $slug, string $name = null, array $args = [] ) {
    $depth = substr_count( $slug, '/' ) + 1;

    $color = 'hsl(' . ( $depth * 10 ) . 'deg, 100%, 50%)';

    echo '<div style="border: 1px solid ' . esc_attr( $color ) . '">';
        get_template_part( $slug, $name, $args );
    echo '<div>';
}

然后将 get_template_part 的任何用法替换为 get_and_wrap_template_part

此函数将通过计算模板部分中 / 的数量来更改边框的颜色,从而指示深度。请记住,此着色方法仅适用于嵌套深度为 36 的嵌套深度,任何更深的颜色都会重置。

您显然可以修改此函数以包含完整路径等内容。

这可能会回答您的问题,但这绝对不是一个好主意。对于初学者,您将 运行 陷入一堆显示问题,例如,如果您的模板部分之一是内联元素,将其包装在 div (这是一个块元素)中,您将影响页面布局。另一个例子是,如果你的 CSS 或 JS 依赖于一个特定的结构,即 body > header,然后你的 header 被包裹在 div 中,body > header 选择器将不起作用因为 header 不再是 body.

的直接 child