从获取摘录中删除图像

时间:2013-11-20 作者:ultraloveninja

我正在使用一个自定义函数创建一个短代码,在模板的主页上显示最新的博客文章。但我尽量不让它显示任何图像。

我知道我可以使用高级摘录插件删除图像,但问题是它也会从索引中删除图像。我想保留的php提要正在使用the_excerpt() 在模板中。

下面是创建快捷码的自定义函数:

function my_recent_news()
{
  global $post;
  $html = "";
  $my_query = new WP_Query( array(
       \'post_type\' => \'post\',
       \'posts_per_page\' => 4
  ));

  if( $my_query->have_posts() ) : while( $my_query->have_posts() ) : $my_query->the_post();

       $html .= "

       <article>
       <span class=\\"date\\">" . get_the_date() . "</span>
       <h2><a href=\\"" . get_permalink() . "\\">" . get_the_title() . "</a></h2>
       " . get_the_excerpt() . "
       </article>
       ";
  endwhile; 

  endif;

  wp_reset_query();

  return $html;

}

add_shortcode( \'news\', \'my_recent_news\' );
我之前发布过一些关于这方面的信息:

get excerpt without images

但解决方案是使用高级摘录插件,但为此,我尝试使用主页和博客提要页上的摘录,但我想保留img 在博客提要上添加标记,并从自定义快捷码中删除img标记。

我试着用the_excerpt() 在自定义的短代码函数中,但这似乎破坏了整个函数,并显示了一些非常奇怪的东西。

我不太确定我是否需要在某处安装一个过滤器来去除这些东西。我也不确定如果我真的需要一个过滤器,它会去哪里?在循环之前,循环之后,还是它需要自己构造的参数?

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

好的,我做了更多的挖掘和测试,通过使用strip_tags() 基本上删除get_the_excerpt().

以下是我的更新代码:

function my_recent_news()
{
  global $post;
  $html = "";
  $my_query = new WP_Query( array(
       \'post_type\' => \'post\',
       \'posts_per_page\' => 4
  ));

  if( $my_query->have_posts() ) : while( $my_query->have_posts() ) : $my_query->the_post();

       $html .= "

       <article>
       <span class=\\"date\\">" . get_the_date() . "</span>
       <h2><a href=\\"" . get_permalink() . "\\">" . get_the_title() . "</a></h2>
       " . strip_tags(get_the_excerpt(), "<a>") . "
       </article>
       ";
  endwhile; 

  endif;

  wp_reset_query();

  return $html;

}

add_shortcode( \'news\', \'my_recent_news\' );
我添加了<a> 保留要显示的帖子摘录中的任何超链接。

这样,我就可以在博客提要页面上保留标记,同时使用高级摘录插件来帮助调整长度等等。

SO网友:Chip Bennett

如果您阅读Codex entry for get_the_excerpt(), 您将发现:

如果帖子没有摘录,此函数将wp\\u trim\\u extract应用于帖子内容,并返回生成的字符串“[…]”在最后。wp\\U trim\\u摘录通过get\\u the\\u摘录过滤器应用,可以删除。

这个wp_trim_excerpt() 功能:

如果需要,从内容中生成摘录。

摘录字数将为55个字,如果字数大于55个字,则字符串“[…]”将附加到摘录中。如果字符串少于55个字,则内容将按原样返回。

所以,你可以重新申请wp_trim_excerpt()get_the_excerpt 过滤,或直接输出:

   $html .= "

   <article>
   <span class=\\"date\\">" . get_the_date() . "</span>
   <h2><a href=\\"" . get_permalink() . "\\">" . get_the_title() . "</a></h2>
   " . wp_trim_excerpt() . "
   </article>
   ";

结束

相关推荐

Strip shortcode from excerpt

我有一个挑战,我发现我不是网络上唯一一个有同样问题的人,然而,目前还没有解决方案。我正在尝试从我的自定义帖子类型摘录中删除短代码。以下是我的示例:http://guidepaperback.com/city/new-century-hotel/在侧边栏中有一个“邻居”小部件,它显示带有摘录的图像。。。一些人正在展示这个问题。有什么建议吗?提前感谢