php - 我在我的 wordpress 父主题中对模板文件进行了一些自定义更改。当主题更新时,我如何确保它们不会被覆盖?
问题描述
这是 php 模板中的代码。但是当我更新主题时这将被覆盖,因为更改是在母主题文件中进行的。
是否可以将此代码放在 functions.php 子主题文件中?还是我必须将模板文件复制到我的子主题中?为将来保留这些更改的最佳方法是什么?所做的修改之一是下面的代码,它只是在我的单个列表页面中隐藏了一个基于用户角色的元素。
<?php
/**
* `Call now` quick action.
*
* @since 2.0
*/
if ( ! ( $phone = $listing->get_field('phone') ) )
return;
// if you want to not display anything for guests
if ( !is_user_logged_in() )
return;
// if you want to not display anything for anyone but administrator or subscriber
$user = wp_get_current_user();
if ( !in_array( 'administrator', (array) $user->roles ) && !in_array( 'subscriber', (array) $user->roles ) )
return;
$link = sprintf( 'tel:%s', $phone );
?>
<li id="<?php echo esc_attr( $action['id'] ) ?>" class="<?php echo esc_attr( $action['class'] ) ?>">
<a href="<?php echo esc_url( $link ) ?>" rel="nofollow">
<?php echo c27()->get_icon_markup( $action['icon'] ) ?>
<span><?php echo $action['label'] ?></span>
</a>
</li>
对此有任何帮助将不胜感激。
如果需要,这是文件的屏幕截图,我不确定:
解决方案
假设父主题使用get_template_part()函数来加载其部分/模板(应该如此,例如get_template_part( 'templates/single-listing/quick-actions/call-now' );
),那么您需要做的就是将templates
文件夹从父主题复制到您的子主题并在call-now.php
那里编辑文件。
推荐阅读
- rsa - Wolfram 可以分解 300 位 RSA 号码吗?
- c++ - 试图将指向对象的指针数组传递给 C++ 中另一个类的函数(不允许使用向量)
- reactjs - 错误:无效的挂钩调用。钩子只能在函数组件的主体内部调用。使用 useEffect 时
- hacklang - 如何在hacklang中迭代形状的字段?
- java - 计算的 BigDecimal 值返回正确的值,但在数字上添加额外的零
- r - tidyverse 加载早期版本的 dplyr
- arrays - Qsort 动态分配的数字数组
- android - ListView 中的 Android TextView 在手动滚动之前不会测量正确的高度
- pine-script - Pine Editor 在下一个蜡烛错误时退出交易
- php - 实现对 js 进程的调用的问题