提问者:小点点

检查wordpress post中的特定HTML标记。否则显示帖子缩略图


我猜这个问题以前一定在这里被问过,但我找不到这个话题,所以请容忍我。

我试图在PHP中实现一个if/ther语句,以找到具有特定类名的特定超文本标记语言标记。如果找到此超文本标记语言标签,我希望它显示超文本标记语言标签,否则如果找不到,我希望它显示帖子缩略图。

所有这些都需要在wordpress模板(single.php)中完成。

所以我有这个:

if (strpos($post->post_content, ('img[.ngg_displayed_gallery]') === false)){
        $gallery = false;
          the_post_thumbnail('full');
          echo do_shortcode('[shareaholic app="share_buttons" id="390155"]');
        }
else{
    echo ('img[.ngg_displayed_gallery]');
    echo do_shortcode('[shareaholic app="share_buttons" id="390155"]');
    }

我很确定我把这个密码搞糟了,所以请帮帮我。我对PHP非常不熟悉;)

谢谢你的帮助!编辑:

好啊我想说得更清楚一点:当有人编辑wordpress文章并在内容编辑器中添加下一个图库时,会出现以下HTML字符串:

<img class="ngg_displayed_gallery mceItem" src=“../nextgen-attach_to_post/preview/id--1443" alt="" data-mce-placeholder="1" /> 

所以基本上我想编码这样的东西:当这个超文本标记语言IMG字符串出现在内容字段中时,显示帖子缩略图(特色图像)的INSTEAD...如果超文本标记语言IMG字符串不在内容字段中,请显示帖子缩略图(特色图像)。


共1个答案

匿名用户

根据我对这个问题的理解,你需要在string的内容中找到一个html标记,你使用的是strpos()。我想让你知道这是不好的做法,应该使用替代方案,然而,这里有一个例子。

// First we must get the HTML formated content.
$content = apply_filters ("the_content", $post->post_content);

// We then must indentifie the needle in the heystack (content)
$needle = 'ngg_displayed_gallery';

if (strpos($content, $needle) === false)){
    $gallery = false;
    // No, there's no gallery present
    echo "NO, gallery not found";
} else {
    // Yes there is an gallery present
    echo "YES, gallery found"; 
}

Q1.为什么这种做法不好?

我们可以找到画廊/图像可靠性的id,因为每个