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 で HTML を XML であるかのように解析する必要があります。不可能ではありませんが、1 行の jQuery に適した仕事です。

なんらかの理由でこれをサーバー側で行うことに固執する場合は、リスト項目が 1 つの巨大な文字列として返されるまで待ってからすべてを変更しようとするよりも、生成されているリスト項目をキャッチする方がはるかに優れています。タグに戻すと、それらを操作して、再び 1 つの巨大な文字列に戻すことができます。

Wordpress のように見えます。Wordpress には、これを実現するのに役立つ API が用意されていると確信していますが、その header.php で何が起こっているのかを正確に確認する必要があります。

于 2012-05-16T01:13:26.217 に答える