0

我想在我的 header.php 文件中运行这段代码

<?php 
$doc = new DOMDocument();
$doc->load('wp-content/themes/foo/header.php');
$header_li_elements = $doc->getElementsByTagName('li');
foreach($header_li_elements as $value){
echo $value->nodeValue;
}
?>

这可能吗?

我希望能够运行一个 php 函数来检查我当前所在的页面,然后更改特定 nav 元素的 id 属性,以便我可以动态更改我所在页面的 nav 元素的外观.

目前我只是试图访问我所在页面上的“li”元素,然后回显它们,我可以从那里开始工作。有什么想法吗?

对不起,如果它令人困惑。我很难描述我在想什么。

4

2 回答 2

4

由于该页面是动态的(例如 HTML 是由 PHP 生成的),因此这将不起作用,因为您希望解析的 HTML 尚不存在。它直到运行时才创建。您必须找到另一种方法来执行此操作,例如检查当前 URL 并使用它来确定导航栏的外观。

于 2012-05-16T01:07:53.047 回答
0

为此,您的 php 将不得不像解析 XML 一样解析您的 HTML。并非不可能,但更适合单行 jQuery 的工作。

如果您出于某种原因坚持在服务器端执行此操作,最好在生成列表项时捕获它们,而不是等到它们作为一个巨大的字符串返回然后尝试将它们全部转换回到标签,这样你就可以操纵它们,只是为了把它们重新变成一个巨大的字符串。

看起来像 Wordpress,我很确定 Wordpress 有可用的 API 来帮助您完成此任务,但我们需要确切了解 header.php 中发生了什么。

于 2012-05-16T01:13:26.217 回答