【发布时间】:2018-11-27 21:49:48
【问题描述】:
我正在尝试将 html 标记添加到具有特定类的无序列表中。
这将是开始的 HTML:
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
<ul class="foo">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
我想最终得到:
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
<ul class="foo">
<li><svg class="icon"><use xlink:href="#foo"></use></svg>Item 1</li>
<li><svg class="icon"><use xlink:href="#foo"></use></svg>Item 2</li>
<li><svg class="icon"><use xlink:href="#foo"></use></svg>Item 3</li>
</ul>
我还没有找到一个可以用来运行 preg_replace() 的正则表达式,它可以让它工作。
内容是使用 Wordpress 创建的。我想使用一个过滤器来扫描 the_content 并添加额外的标记。以这样的方式:
function foo_ul($text) {
//some function
return $text;
}
add_filter('the_content', 'foo_ul');
我不想依赖 Javascript/jQuery,所以我希望在服务器端生成它。
有什么想法吗?
【问题讨论】:
-
您确定这是使用 php 和 regexp 完成此任务的最佳方式吗?
-
如果您在服务器端执行此操作,我会使用 html 解析器而不是正则表达式,但我们需要了解更多信息 - 是什么创建了列表?你怎么知道它有什么类?当然,如果列表是使用 php 在服务器端创建的,那么您可以添加 svg 等。在当前的形式中,问题太宽泛,因此不适合 SO - 请使用 help centre 的 tour 到见how to ask a good question
-
内容是由 Wordpress 生成的,所以我想添加一个过滤器来扫描内容并在正确的位置添加所需的标记。
-
你看起来像这样吗:regex101.com/r/QkWsfU/1
-
可以使用 js 并在客户端进行 - 可能比编写一些东西来拦截服务器端的插件代码更容易
标签: php html regex wordpress wordpress-theming