Php 更改标记<;a>;至<;部门>;使用WordPress上的文档
我是PHP的初学者,我想设置几个函数来替换WordPress上的特定代码位(包括我无法直接编辑的插件元素) 下面是一个示例(第一行:初始结果,第二行:期望结果):Php 更改标记<;a>;至<;部门>;使用WordPress上的文档,php,wordpress,function,domdocument,Php,Wordpress,Function,Domdocument,我是PHP的初学者,我想设置几个函数来替换WordPress上的特定代码位(包括我无法直接编辑的插件元素) 下面是一个示例(第一行:初始结果,第二行:期望结果): 盖尔贝里斯 PS:我遇到了这个话题:但是这个例子太复杂了,我不想做什么。你能给我一个解决这个问题的示例代码,这样我就可以尝试修改它来修改其他html元素吗?虽然我不确定这是否适合WP,但我基本上是从链接的答案中提取代码,并根据您的要求进行修改 我假设您希望找到带有class=“vcard author”的标记,这是XPath表达式
盖尔贝里斯
PS:我遇到了这个话题:但是这个例子太复杂了,我不想做什么。你能给我一个解决这个问题的示例代码,这样我就可以尝试修改它来修改其他html元素吗?虽然我不确定这是否适合WP,但我基本上是从链接的答案中提取代码,并根据您的要求进行修改 我假设您希望找到带有
class=“vcard author”
的
标记,这是XPath表达式的基础。foreach()
循环中的代码只是将数据复制到新节点并替换旧节点
function replaceAWithDiv($content){
$dom = new DOMDocument();
$dom->loadHTML($content);
$xpath = new DOMXPath($dom);
$aTags = $xpath->query('//a[@class="vcard author"]');
foreach($aTags as $a){
// Create replacement element
$div = $dom->createElement("div");
$div->setAttribute("class", "vcard author");
// Copy contents from a tag to div
foreach ($a->childNodes as $child ) {
$div->appendChild($child);
}
// Replace a tag with div
$a->parentNode->replaceChild($div, $a);
}
return $dom->saveHTML();
}
感谢您花时间做这个例子。如何将此代码添加到functions.php?我应该使用哪种添加操作或添加筛选器?您是否尝试过与您指出的答案类似的方法-
add\u filter('the\u content','replaceAWithDiv',20)代码>?除非你能得到一些错误来发现发生了什么-我知道的关于WP的帮助不多。503一个页面上的网关坏了,而另一个页面上错误显示的所有重音符号。
function replaceAWithDiv($content){
$dom = new DOMDocument();
$dom->loadHTML($content);
$xpath = new DOMXPath($dom);
$aTags = $xpath->query('//a[@class="vcard author"]');
foreach($aTags as $a){
// Create replacement element
$div = $dom->createElement("div");
$div->setAttribute("class", "vcard author");
// Copy contents from a tag to div
foreach ($a->childNodes as $child ) {
$div->appendChild($child);
}
// Replace a tag with div
$a->parentNode->replaceChild($div, $a);
}
return $dom->saveHTML();
}