我想要有一个div设置直接在帖子标题下面,它漂浮在左边,包含一个adsense 300x250块,然后帖子内容在右边围绕它。当查看个人帖子时,所有这些都工作得很好。但是当我转到我的博客的主页,在那里它显示了所有的文章摘录,它显示了我不想要的div。
我已经尝试过使用CSS来纠正这个问题,只是尝试在主页上专门针对div,并将其设置为无显示(即.post_content.myAd{ display : none ;...}),然后通过针对特定的div (即.single.myAd{display:inline;...} )使其可见,因为我的广告div 'myAd‘位于主页上的.post_content中,但位于单个博客文章的.single中)。
这是我的完整css:
.single.aboveVideoAd{
position: relative;
display:inline;
float: left;
width: 300px;
height: 250px;
margin-right: 15px;
margin-bottom: 15px;
}
.post_content.aboveVideoAd{
display:none;
}按照要求,下面是我的index.php循环的html (显示摘录)和单个帖子的single.php:
index.php:http://pastebin.com/62gQfh2h
single.php:http://pastebin.com/x18G56CA
有什么想法吗?我已经看到很多网站在帖子下面有广告拦截,但没有这个问题,所以我觉得应该有一个更简单的解决方案,而不是胡乱摆弄css。
谢谢!
发布于 2012-10-22 00:34:08
下面是一个从文本中剥离标签及其内容的函数:http://se2.php.net/manual/en/function.strip-tags.php#86964
为了简单起见,我将重现它:
<?php
function strip_tags_content($text, $tags = '', $invert = FALSE) {
preg_match_all('/<(.+?)[\s]*\/?[\s]*>/si', trim($tags), $tags);
$tags = array_unique($tags[1]);
if(is_array($tags) AND count($tags) > 0) {
if($invert == FALSE) {
return preg_replace('@<(?!(?:'. implode('|', $tags) .')\b)(\w+)\b.*?>.*?</\1>@si', '', $text);
}
else {
return preg_replace('@<('. implode('|', $tags) .')\b.*?>.*?</\1>@si', '', $text);
}
}
elseif($invert == FALSE) {
return preg_replace('@<(\w+)\b.*?>.*?</\1>@si', '', $text);
}
return $text;
}
?>这可以绑定到get_excerpt,
add_filter( 'get_the_excerpt', function( $content ) {
return strip_tags_content( $content, '<div>', TRUE );
});我没有测试过这段代码。
https://stackoverflow.com/questions/12998680
复制相似问题