如何在没有钩子的情况下修改核心?

时间:2015-07-01 作者:Sarah Jean

我想向<form> 元素。因为表单字段本身是由comment_form(), 开口内没有可编辑的挂钩<form>, 我不知道该怎么做?我不需要更换整个comment_form() 函数--我只想向<form>, 所以它有点像<form ... data-my-custom="my_value">. 提示、技巧、建议?

我正在运行最新版本的WP(它现在自动更新!哇!)。

1 个回复
SO网友:cjbj

你说得对comment_form 硬编码<form> 标记,因此不能使用筛选器或操作对其进行修改。使用jquery添加自定义属性是可能的,但它不会出现在源代码中,因此不会被您可能瞄准的搜索引擎发现。另一种选择是buffer the entire output of the function 并在那里进行搜索和替换。像这样:

ob_start (\'wpse193237_add_attribute_to_form\');
comment_form();
ob_end_flush();

function wpse193237_add_attribute_to_form ($buffer) {
  return (str_replace (\'<form\', \'<form data-my-custom="my_value"\', $buffer));
  }

结束