我已经设法解决了这个问题。Wordpress strip\\u shortcodes()没有剪切它。
在我看来,Wordpress似乎不喜欢整个帖子都用短代码包装,并将摘录返回空白。也可能是我将短代码应用于\\u内容的更改时间。然而,我相信是前者在网上读到了其他一些人的经历。对于摘录,我在检测空摘录时手动去除了短代码。
function my_custom_excerpt($length_callback=\'\', $more_callback=\'\') {
if(function_exists($more_callback)){
add_filter(\'excerpt_more\', $more_callback);
}
if(function_exists($length_callback)){
add_filter(\'excerpt_length\', $length_callback);
}
$output = get_the_excerpt();
if( empty( $output ) ){
$excerpt = get_the_content();
$excerpt = preg_replace(\'/\\[(.*)\\]/\',\'\',$excerpt);
$excerpt = esc_attr( strip_tags( stripslashes( $excerpt ) ) );
$excerpt = wp_trim_words( $excerpt, ( (function_exists($length_callback)) ? call_user_func($length_callback,55) : 55 ), ( (function_exists($more_callback)) ? call_user_func($more_callback) : \'\' ) );
$output = $excerpt;
}
$output = apply_filters(\'wptexturize\', $output);
$output = apply_filters(\'convert_chars\', $output);
return $output;
}
目前还不确定这是否是百分之百的万无一失,但当一篇文章被包装在短代码中并返回空代码,然后继续获取\\u内容本身,将所有短代码剥离出来,并按照应该的格式对摘录进行格式化时,这似乎可以处理。希望这能帮助其他遇到类似问题的人。
谢谢你的帮助和建议。