WordPress:检查帖子

时间:2018-01-25 19:11:11

标签: php wordpress

有没有办法检查WordPress帖子中有多少元素如标题(h2,h3,...),段落和链接?

目前我正在使用此代码:

<?php
    $content = get_the_content();

    $count_h2s = explode('<h2>', $content);
    $h2 = 0;

    foreach ($count_h2s as $count_h2) {
            $h2++;
    }
    echo $h2;
?>

它似乎适用于头条新闻。但如果我用它来计算<p> - 标签我只得到1的数量。即使还有更多。我可以想象这是因为这些标签不在编辑器中,但标题是?!

也许有一种比我的代码更优雅的方式来计算元素;)

2 个答案:

答案 0 :(得分:1)

不需要循环,使用PHP函数substr_count

$query = get_post(get_the_ID());    
$content = apply_filters('the_content', $query->post_content);
$p_count = substr_count($content, '<p>');
echo $p_count ;

// Be aware, if there is a more-tag inside the post, this `<p>`-tag wouldn't count!

应该很容易将它用于其他标签,例如......

答案 1 :(得分:1)

看起来你会被过滤器wordpress用来自动将换行符转换为<p>标签而被抛弃。换行符不在您的编辑器中,因为它们是在事后通过过滤器添加的。 https://codex.wordpress.org/Function_Reference/wpautop

因此,当您在网页的HTML源代码中看到<p>代码时,您希望在get_the_content()中搜索换行符,因为这些代码转换为{{ 1}}标签。