the_excerpt and shortcodes

时间:2012-02-18 作者:Colton Allen

我正在使用索引页上的\\u摘录。我还在我的每一篇文章的开头使用dropcap快捷码。在索引页面上,帖子不会显示周围带有dropcap快捷码的信件。如果我的帖子中有“Dog”一词,索引页会显示“og”。在使用\\u摘录时,如何使用短代码?

短代码

    function drcap ($atts, $content = null) {
    return \'<div class="dropcap">\' . do_shortcode($content) . \'</div>\';
    }

    add_shortcode(\'dropcap\', \'drcap\');

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

将此粘贴到主题的函数中。php文件

add_filter( \'the_excerpt\', \'shortcode_unautop\');
add_filter( \'the_excerpt\', \'do_shortcode\');

SO网友:H6.

在自动生成的摘录短代码中will be removed by Wordpress:

自动生成的摘录还将删除所有短代码和标记。它被裁剪为单词边界,默认长度为55个单词。

无论如何,如果您在帖子中使用手动摘录字段,它就可以正常工作。

SO网友:Programmer Dan

以下是一种在Wordpress自动生成的摘录中包含短代码输出的解决方案:

add_filter(\'the_excerpt\', \'do_shortcode\');
remove_filter(\'get_the_excerpt\', \'wp_trim_excerpt\', 10);
add_filter(\'get_the_excerpt\', \'my_custom_wp_trim_excerpt\', 99, 1);
function my_custom_wp_trim_excerpt($text) {
    if(\'\'==$text) {
        $text= preg_replace(\'/\\s/\', \' \', wp_strip_all_tags(get_the_content(\'\')));
        $text= explode(\' \', $text, 56);
        array_pop($text);
        $text= implode(\' \', $text);
    }
    return $text;
}
此实现假定字长为55。

希望它能帮助别人。

SO网友:tammy

另外,将这两行添加到functions.php 完整和全面结果的文件:

add_filter(\'get_the_excerpt\', \'shortcode_unautop\');
add_filter(\'get_the_excerpt\', \'do_shortcode\');

结束

相关推荐

在Add_ShortCode()回调函数中使用分解时出现问题

Explode在add\\u shortcode()回调函数中未按预期工作。Here is the scenario:我实现的sortcode如下所示:[table] name1 = value1; name2 = value2; name3 = value3 [/table] 我用简单的分解来制作表格。正在爆炸; 获得每一行,然后爆炸= 把它们放在右栏。但是explode没有正常工作。它在\", - 等等我已经在wordpress外部测试