我有以下结构......
$output = '<li><a href="http://forum.example.org">Something</a></li>'
实际上$ output包含多个列表项。
将#hash应用于每个链接href的最佳和最简单的方法是什么?如......
<li><a href="http://forum.example.org#something">Something</a></li>
知道如何解决这个问题吗?
编辑:顺便说一下它应该总是相同的#hash,而不是你在上面这个例子中的想法,#something等于链接的名称。所以它应该是每个链接的#something。
add_filter('wp_list_pages', 'add_hash'); /*Add #hash to wp_list_pages() function*/
function add_hash($output) {
$dom = new DOMDocument();
$dom->loadHTML($output);
$a_tags = $dom->getElementsByTagName('a');
foreach($a_tags as $a)
{
$value = $a->getAttribute('href');
$a->setAttribute('href', $value . '#b');
}
$dom->saveHTML();
return $output;
}
答案 0 :(得分:1)
$dom = new DOMDocument();
$dom->loadHTML($str); // Change to input variable
$a_tags = $dom->getElementsByTagName('a');
foreach($a_tags as $a)
{
$value = $a->getAttribute('href');
$a->setAttribute('href', $value . '#something');
}
// Get the new document with: $dom->saveHTML()
修改强>
在上面的代码中,您需要更改:
$dom->saveHTML();
return $output;
}
要:
return $dom->saveHTML();
}