通过覆盖主题functions.php来自定义插件

时间:2017-09-01 11:30:00

标签: php wordpress function

我正在使用插件WP-Ultimo并希望对注册表单进行一些更改。这实际上是一个问题,我认为可以应用于自定义任何插件以用于我的主题,但从未找到文档显示它。

我有这个

/**
 * Normal Text Inputs
 */
case 'text':
case 'number':
case 'password':
case 'email':
case 'url':
?>

<p <?php echo $wrapper_attributes; ?> id="<?php echo $field_slug; ?>-field" <?php echo $wrapper_attributes; ?> style="<?php echo $display ? '' : "display: none"; ?>" >

  <label for="<?php echo $field_slug; ?>"><?php echo $field['name']; ?> <?php echo WU_Util::tooltip($field['tooltip']); ?><br>
  <input <?php echo $attributes; ?> <?php echo isset($field['required']) && $field['required'] ? 'required' : ''; ?> type="<?php echo $field['type']; ?>" name="<?php echo $field_slug; ?>" id="<?php echo $field_slug; ?>" class="input" value="<?php echo isset($results[$field_slug]) ? $results[$field_slug] : ''; ?>" size="20"></label>

  <?php if ($error_message = $results['errors']->get_error_message($field_slug)) {
    echo '<p class="error">' . $error_message . '</p>';
  } ?>

</p>

<?php 
break;

我想用

替换
/**
 * Normal Text Inputs
 */
case 'text':
case 'number':
case 'password':
case 'email':
case 'url':
?>

<div <?php echo $wrapper_attributes; ?> id="<?php echo $field_slug; ?>-field" <?php echo $wrapper_attributes; ?> style="<?php echo $display ? '' : "display: none"; ?>" >

  <input <?php echo $attributes; ?> <?php echo isset($field['required']) && $field['required'] ? 'required' : ''; ?> type="<?php echo $field['type']; ?>" name="<?php echo $field_slug; ?>" id="<?php echo $field_slug; ?>" class="input" value="<?php echo isset($results[$field_slug]) ? $results[$field_slug] : ''; ?>" size="20">

  <?php if ($error_message = $results['errors']->get_error_message($field_slug)) {
    echo '<p class="error">' . $error_message . '</p>';
  } ?>

</div>

<?php 
break;

是否有一种简单的方法可以创建function来替换我的functions.php中的原始文件?

干杯

1 个答案:

答案 0 :(得分:1)

除非插件提供了可以挂钩的过滤器或操作,否则无法通过主题functions.php对其进行修改。您可以查看要查看的插件的文档(或源代码),看看它是否可用。

以下是关于WP-Ultimo论坛关于在何处访问该插件使用的所有操作/过滤器列表的评论,您可以在那里找到适合您的用例的一个:https://docs.wpultimo.com/community/topic/hooking-into-the-system/

Wordpress插件可以允许主题(或其他插件)以两种方式进行修改:一种是使用过滤器(使用apply_filter),另一种是使用操作(使用do_action)。通常,过滤器用于修改某些数据,并且每当触发发生时,操作都用于执行某些操作。

您可以在此处找到更多信息: