将<p>标记更改为</p> <div> Wordpress

时间:2018-12-21 08:58:02

标签: php wordpress

图片下方显示标题。 但是它是<p>标签,但我需要<div>

  

<p class="wp-caption-text">更改为<div class="wp-caption-text">

示例:

<p class="wp-caption-text">any-content<p>

我需要:

<div class="wp-caption-text">any-content<div>

不需要并且不适合带有shortcode和jquery的变量。

我试图通过以下方式实现:

function filter_ptags_on_capt($content)
{
    return preg_replace("/(<p class=\"wp-caption-text\">.*<\/p>)/Us", "<div class=\"wp-caption-text\">$1</div>",$content); ?>
}
add_filter('the_content', 'filter_ptags_on_capt');

但是它不起作用。 也许我把正则表达式写错了,但也许那样行不通。

2 个答案:

答案 0 :(得分:0)

preg_match函数略有变化。请尝试以下对我有用的东西。

更改

<p class="wp-caption-text">any-content<p>

<div class="wp-caption-text">any-content<div>

代码:

function filter_ptags_on_capt($content)
{
    return preg_replace('/<p class="wp-caption-text">(.*?)<p>/', '<div class="wp-caption-text">$1<div>', $content);
}
add_filter('the_content', 'filter_ptags_on_capt');

如果要更改

<p class="wp-caption-text">any-content</p> 

<div class="wp-caption-text">any-content</div> 

然后尝试以下代码。

代码:

function filter_ptags_on_capt($content)
{
    return preg_replace('/<p class="wp-caption-text">(.*?)<\/p>/', '<div class="wp-caption-text">$1</div>', $content);
}
add_filter('the_content', 'filter_ptags_on_capt');

我认为第二种是具有适当的HTML标记的完美html格式。

谢谢。

答案 1 :(得分:0)

此工作代码

function filter_wp_caption_div( $content ) {
    return preg_replace(
        '/<p[^>]+class="wp-caption-text"[^>]*>(.+)(?=<\/p>)/s',
        '<div class="wp-caption-text">\1</div>',
        $content
    );
}
add_filter( 'the_content', 'filter_wp_caption_div', 12 );