正在从自定义摘录函数中剥离快捷代码

时间:2012-10-19 作者:Justice Is Cheap

我正在使用以下功能为我的主页和分类页面创建一个自定义摘录,这样我就可以按字符数进行操作,并有一个自定义的;阅读更多信息;。然而,我的摘录中显示了字幕和短代码。

Example:

[标题id=“attachment\\U 4656”align=“aligncenter”width=“450”]脆蔬菜玉米卷[[描述]当你决定晚餐做什么时,有时会感到心神不安吗?我作为家庭晚餐计划专家的这些年所学到的。。。继续阅读

我尝试添加第5行以去掉实际的短代码,但它不起作用。

我走对了吗?我更喜欢不显示任何短代码,我使用了我在网上看到的函数,但它不起作用(我猜是因为我使用的是自定义摘录函数)。有人想帮我吗?

function get_excerpt($count){
   $permalink = get_permalink($post->ID);
   $excerpt = get_the_content();
   $excerpt = strip_tags($excerpt);
   $excerpt = str_replace(\']]>\', \']]>\', $excerpt);
   $excerpt = substr($excerpt, 0, $count);
   $excerpt = substr($excerpt, 0, strripos($excerpt, " "));
   $excerpt = $excerpt.\' ... <a href="\'.$permalink.\'" class="read-more">continue reading <i class="foundicon-right-arrow"></i></a>\';
   return $excerpt;
}
我试图从中转换的第五行:

$content = str_replace(\']]>\', \']]>\', $content);
TIA!

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

不要使用自定义函数。你应该用钩子。你不必去掉短代码,wordpress会自动为你做到这一点,只要使用这样的东西

// setting higher priority so that wordpress default filter have already applied
add_filter(\'the_excerpt\', \'custom_excerpt_filter\', 11);
function custom_excerpt_filter($excerpt) {
    // apply your logic of read more link here
    return $excerpt . \'Custom Read More Text\';
}

add_filter(\'excerpt_length\', \'custom_excerpt_length\');
function custom_excerpt_length($length) {
    return 30; // replace this with the character count you want
}

RULE OF THUMB

永远不要为某些东西创建自定义函数有可用的钩子或核心函数

SO网友:fuxia

使用strip_shortcodes( $excerpt ) 到……嗯……剥离短代码。:)在你打电话之前早点做strip_tags().

<?php
/** Plugin Name: (#69848) Strip shortcodes from the excerpt */
function wpse69848_noshortcode_excerpt( $excerpt )
{
    return strip_shortcodes( $excerpt );
}
add_filter( \'the_excerpt\', \'wpse69848_noshortcode_excerpt\' );

结束

相关推荐

plugin shortcode output

我有一个使用此短代码的插件:[daisy]此短代码的html输出为:<a class=\"clickable\">Click Here</a> 如果我使用快捷码来触发插件,那么插件工作得很好。它也适用于此:<?php echo do_shortcode(\'[daisy]\'); ?>通常,它还应与<a class=\"clickable\">Click Here</a> 但它不起作用,链接出现了,但如果我点击它,什么都不会发生