Wordpress 和子主题 - 找出要覆盖.php的策略?



从一些基本的Wordpress引导主题开始,我想修改帖子和帖子链接的宽度。 这比重型主题创建更了解 WP - 我最感兴趣的是如何在不同的主题中应用这样的小自定义。 我知道每个主题都可以选择它想要提供的 PHP 文件,所以我知道在主题 A 中有效的方法不一定在主题 B 中有效。

我已经为一个主题做了一次,但现在另一个主题没有相同的 PHP 文件名。

例如,我知道要使帖子的小部件区域更窄,我想覆盖侧边栏.php

<!-- <div id="secondary" class="widget-area col-md-4" role="complementary"> -->
<div id="secondary" class="widget-area col-lg-2" role="complementary">

修改索引.php会使左侧更宽:

<!--    <section id="primary" class="content-area col-md-8"> -->
<section id="primary" class="content-area col-lg-10">
<div class="tmarker">index.php</div>  <!-- I added this! -->

当我在网站的根目录时,这工作正常,因为索引.php正在使用。

但是,当我导航到帖子时,我又回到了:

<div id="primary" class="content-area col-md-8">

而且我的帖子区域没有扩大。 这是有道理的 - 索引.php在这里不使用。

我如何知道哪个 PHP 文件正在组成该帖子详细信息视图,以便我可以覆盖它?

我尝试在页面源代码中查找"index.php",但我只看到了我自己在孩子覆盖中添加的那个。

我想我可以在编辑器中查看所有 PHP,找到所有class="content-area col-md-8"并反复试验,直到我找到正确的 PHP。 没什么好玩的。 有没有更好的方法?

我至少可以将所有这些 PHP 转储到文件和 grep 中以供col-md-8吗? 我需要主题的文本导出。

附言我知道 Wordpress 子自定义最好在风格.css功能.php上完成,但除非我错过了什么,否则使用 Bootstrap,我认为我真的需要为引导程序完成这些class任务来完成这项工作。

这里的问题解决了类似的事情。

您可以将模板名称存储到全局变量中,并将其回显到页脚中。 这应该告诉你正在加载什么模板文件(index.phppage.php等)。

下面的代码应该添加到functions.php.

add_filter( 'template_include', 'var_template_include', 1000 );
function var_template_include( $t ){
$GLOBALS['current_theme_template'] = basename($t);
return $t;
}
add_action( 'wp_footer', 'get_current_template' );
function get_current_template() {
if( !isset( $GLOBALS['current_theme_template'] ) )
return false;
echo $GLOBALS['current_theme_template'];
}

有很多技巧和策略,但其中一种是"快速而肮脏的方式":

大多数体面的主题都会向 body 元素添加一个类,以反映正在使用的主题模板。如果您检查 body 元素,您应该能够看到正在使用哪个模板(例如page-template-default等)。

如果您的主题超出了简单的模板级别,那么您必须开始检查给定模板中的代码以确定正在运行的代码等。

最新更新