【问题标题】:PHP search content for ID and add ClassPHP搜索ID的内容并添加Class
【发布时间】:2011-06-10 12:21:43
【问题描述】:

我需要一个简单的函数来搜索我的 wordpress 内容以查找特定 ID,然后将类添加到 ID 所在的同一元素中。

它用于通过短代码显示自身的视频播放器插件。我的问题是插件为每个元素提供了一个 ID,如下所示,id="video-1-player", id="video-2-player"。所以该函数需要在内容中搜索id="video-(any number)-player",然后在其中插入一个类。

谢谢!

编辑

这是对我有用的答案。

https://stackoverflow.com/a/6180884/278629

【问题讨论】:

  • 在页面渲染期间是否需要它,或者您想通过数据库添加类来匹配ID?
  • 页面需要它,而不是数据库。
  • 您是否有理由需要它来拥有一个类而不是仅仅引用他们的 id?如果你不能编辑视频播放器的 php 源代码,你可能不得不使用下面提到的 jquery。
  • 它不能在 Javascript 中。它必须在 PHP 中。出于 CSS 的原因,我需要为它们添加一个特定的类。不是个人 ID。
  • 那你需要修改插件的代码。搜索它输出 id 的行并修改它以添加您的类属性。

标签: php wordpress search


【解决方案1】:

使用DOMDocument 类将您的文档表示为一个对象。查询您要查找的 ID,并在其上添加一个类。从那里你可以把 HTML 吐出来。

简单示例:

// HTML to be handled (could very well be read in)
$html = "<!DOCTYPE html><html><body><p id='foo'>Foo</p></body></html>";

// Create and load our DOMDocument object
$doc = new DOMDocument();
$doc->loadHTML($html);

// Find and manipulate our paragraph
$foo = $doc->getElementById("foo");
$foo->setAttribute("class", "bar");

// Return the entire document HTML
echo $doc->saveHTML();

或者,如果您只想要受影响元素的 HTML:

echo $doc->saveHTML($foo);

生成的 HTML 如下:

<!DOCTYPE html>
<html>
    <body>
        <p id="foo" class="bar">Foo</p>
    </body>
</html>

请注意,上面的代码不会首先检查元素上是否已经存在类属性。您应该执行该检查,以免丢失任何可能已经在元素上的预先存在的类。

【讨论】:

  • 我用对我有用的答案编辑了我的问题。但看起来你的也可以,所以我把它给你。感谢任何方式
猜你喜欢
  • 2011-09-05
  • 1970-01-01
  • 1970-01-01
  • 2012-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-18
  • 1970-01-01
相关资源
最近更新 更多