为了账号安全,请及时绑定邮箱和手机立即绑定

WordPress 中的 PHP DOM - 替换和添加属性

WordPress 中的 PHP DOM - 替换和添加属性

PHP
GCT1015 2021-07-01 09:57:15
我尝试将type输入字段的属性更改为number(hidden默认情况下它们具有类型)并添加readonly="readonly",但它对输出 HTML 没有影响。属性和以前一样。函数触发正常,因为在我添加编码之前,它在页面上显示了错误的字符。我有合适的 CSS 来格式化只读输入,所以视觉效果不是问题,我还将使用更多条件来仅查找特定的输入标签,但现在我想让这段代码正常工作:add_filter('the_content', 'acau_lock_input');function acau_lock_input($content) {    $dom = new DOMDocument();           @$dom->loadHTML(mb_convert_encoding($content, 'HTML-ENTITIES', 'UTF-8'));    foreach ($dom->getElementsByTagName('input') as $node) {                    $node->setAttribute('type', 'number');        $node->setAttribute('readonly', 'readonly');    }    $newHtml = $dom->saveHtml();    return $newHtml;}
查看完整描述

1 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

Nigel Ren 帮我找到了问题所在。解决方案是荒谬的,the_contentWordPress 的过滤器只是放置在当前页面文本区域中的任何内容,如在编辑器中可见。

它与输出页面的完整 HTML 结构无关,因此虽然错误的编码会破坏整个页面的文本,但$content仅返回一个短代码,因为这是在页面编辑器中。


查看完整回答
反对 回复 2021-07-09
  • 1 回答
  • 0 关注
  • 142 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信