_Content();错误地关闭了它之前的前一个打开

时间:2017-12-08 作者:coffeebot

我有一个自定义循环,显示“最受欢迎”的帖子部分。它首先创建一个链接的容器(<a href="<?php the_permalink(); ?>"> ... </a>), 然后将当前帖子中的数据存储在该容器内的循环中。

如果帖子有缩略图,则会显示图像(if ( has_post_thumbnail() ) { the_post_thumbnail(); }). 否则,它将执行the_content();else { } 部分,其中它可以抓取一个iframe并显示它。

出于某种原因,如果它进入else { } 零件,它将关闭开口<a href="<?php the_permalink(); ?>"> 带结束符的语句</a> 首先标记。这导致<div class="most-popular-article"></div> 其内容在<a></a> 容器,而不是容器内部。

有人知道这里到底发生了什么,或者如何防止它发生吗?

        <a href="<?php the_permalink(); ?>">
            <div class="most-popular-article">
                <?php if ( has_post_thumbnail() ) {
                the_post_thumbnail();
                }
                else {
                the_content();
                } ?>
                <h3><?php the_title(); ?></h3>
            </div>
        </a>

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

\\u content()可能正在呈现链接(或者您的浏览器可能正在自动格式化链接)。

您可以通过不使用\\u content()来测试是否是这样;

使用

// Get the Content of the post 
$postContent = get_the_content();
// Escape all the HTML
$postContent =  htmlentities($postContent);
// Print it to screen and verify if any links are inside.
print_r($postContent);
如果您在内容中有链接或希望有链接,请尝试简单地替换它们,如

// Get the Content of the post 
$postContent = get_the_content();
// some simple regex 
$postContent = preg_replace(\'/<a.+?>/\',\'<strike>\',$postContent);
// some more simple regex 
$postContent = preg_replace(\'/<\\/a>/\',\'</strike>\',$postContent);
echo $postContent;
上面的代码将所有链接呈现为贯穿文本,您可以用下划线来替换,甚至可以用一个跨度来替换,通过巧妙地使用捕获组,可以将单击事件绑定到所述跨度,并且您仍然可以拥有功能链接。

结束

相关推荐

在POST类型图库中集成视频和IFRAME

我是wordpress的新手。我用swiper以画廊风格的文章制作主题我想添加视频(来自vimeo/youtube…)我实际上复制了一个图像的php代码only 陈列室 $args = array( \'numberposts\' => -1, // Using -1 loads all posts \'orderby\' => \'menu_order\', // This ensures images are in the order set in t