向内容中的每个段落添加递增ID(_C)

时间:2014-06-29 作者:davidcondrey

我需要循环遍历\\u内容中的每个段落,并使用增量值为每个段落添加ID。

function incrementparagraphs( $content ) {
    for ($i = 0; $i <count($content); $i++) {
        return str_replace( "<p>", "<p data-section-id=" . $i . ">", $content );
    }
}
add_filter( \'the_content\', \'incrementparagraphs\', 10, 1 );

1 个回复
最合适的回答,由SO网友:birgire 整理而成

如果我正确理解您的问题,您可以尝试以下方法:

add_filter( \'the_content\', \'incrementparagraphs\', 10, 1 );

function incrementparagraphs( $content ) 
{
     return preg_replace_callback(
         \'|<p>|\',
         function ( $matches )
         {
             static $i = 0;
             return sprintf( \'<p data-section-id="%d">\', $i++ );
         },
         $content
     );
}
更换<p> 标记为<p data-section-id="1">, 其中data-section-id 属性包含当前p 标签

示例:

Before:

<p>aaa</p>
<p>bbb</p>
<p>ccc</p>

After:

<p data-section-id="0">aaa</p>
<p data-section-id="1">bbb</p>
<p data-section-id="2">ccc</p>
更多关于preg_replace_callback here.

结束

相关推荐

将php函数添加到.js文件中(用于tinyMCE按钮)

我正在为wp WYSIWYG编辑器创建一个tinyMCE按钮。基本上,当用户单击按钮时,会弹出一个模式表单,他们必须输入几个字段。但是,其中一个字段需要是列出每个帖子类别的列表框,用户将选择一个。其基本语法如下:{ type: \'listbox\', name: \'sds-category\', label: \'Category\', \'values\': [ {text: \'Name Of Cat\', value: \'Cat ID\'}