- 尝试从 WordPress 的插件机制入手,使用钩子、过滤器来解决;
- 从子主题入手,针对“那段php中的几个字”有相关的函数被调用的页面中,在子主题中创建相同名字的页面,复写这段代码;
-
根据 PHP 的语法和程序特点,在子主题的 functions.php 文件中加入影响“那段php中的几个字”的变量,甚至重新定义函数以供子主题调用。
综上,得看你的父主题中的 php 代码的具体情况。
谢谢!能举个例子说明一下吗?比如父主题有一个页面是 content-single.php,里面有一段代码
<header class="entry-header">
<h1 class="entry-title"><?php the_title(); ?></h1>
<div class="entry-meta">
<?php attorney_posted_on(); ?>
<?php if ( comments_open() || ( '0' != get_comments_number() && ! comments_open() ) ) : ?>
<div class="att-meta-com"><?php _e('Comments', 'attorney'); ?><span class="comments-link att-meta-link"><?php comments_popup_link( __( '0', 'attorney' ), __( '1', 'attorney' ), __( '%', 'attorney' ) ); ?></span></div>
<?php endif; ?>
</div><!-- .entry-meta -->
</header><!-- .entry-header -->
我想要禁用掉 class=”entry-meta”这里面的代码,要在子主题中怎么做呢?,非常感谢!我之前都是直接在父主题中将其注释掉了,但那样主题升级后就又得重新注释。
在子主题中创建一个 content-single.php 并修改其中的代码为:
<header class="entry-header">
<h1 class="entry-title"><?php the_title(); ?></h1>
</header><!-- .entry-header -->
不可以吗?
不改变的部分就全部照抄吗,那升级了主题,万一新主题的content-single.php有变化不就可能出现问题吗?如果我很多php都要改,最终不是违背了建立子主题的初衷了,还不如直接在父主题中将其注释掉来的方便
子主题的意义,在于自动升级时保留你的自定义修改,如果在父主题里面注释,那更新之后自然连修改的痕迹都没有了。
即使是 WordPress 的插件,也要随 WordPress 的版本更新 API 变化而升级改进,何况一个主题的子主题呢?
在商业定制案例中,使用了定制的主题和插件,很多情况下都是禁止检测升级,以免客户的维护人员升级 WordPress 的。因为需求已经满足,而类似 WordPress 2 到 3 大版本的变化,却需要主题和插件作者做出大量的工作来解决兼容问题。所以只可能会应用一些安全方面的更新和补丁。
当然你也可以选择不升级主题。不过我是大胆升级的,因为我的子主题修改的文件不多,出现问题,只需很少时间就解决了。
最后,以我在 WordPress 上安装了近200个主题的经验来看,主题的升级并不是很频繁,所以不用太担心。