首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我不想让帖子标题下面的div显示在摘录中

问我不想让帖子标题下面的div显示在摘录中
EN

Stack Overflow用户
提问于 2012-10-21 22:21:35
回答 1查看 162关注 0票数 0

我想要有一个div设置直接在帖子标题下面,它漂浮在左边,包含一个adsense 300x250块,然后帖子内容在右边围绕它。当查看个人帖子时,所有这些都工作得很好。但是当我转到我的博客的主页,在那里它显示了所有的文章摘录,它显示了我不想要的div。

我已经尝试过使用CSS来纠正这个问题,只是尝试在主页上专门针对div,并将其设置为无显示(即.post_content.myAd{ display : none ;...}),然后通过针对特定的div (即.single.myAd{display:inline;...} )使其可见,因为我的广告div 'myAd‘位于主页上的.post_content中,但位于单个博客文章的.single中)。

这是我的完整css:

代码语言:javascript
复制
.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。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2012-10-22 00:34:08

下面是一个从文本中剥离标签及其内容的函数:http://se2.php.net/manual/en/function.strip-tags.php#86964

为了简单起见,我将重现它:

代码语言:javascript
复制
<?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,

代码语言:javascript
复制
add_filter( 'get_the_excerpt', function( $content ) {
    return strip_tags_content( $content, '<div>', TRUE );
});

我没有测试过这段代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12998680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档