0

我正在寻找在将通过以下方式调用的帖子摘录中使用简码:

 $post_object->post_excerpt;

我设置了提取摘录的功能,但我正在努力提取简码。目前它只返回一个字符串 EG:“[short]foo[/short]”。有谁知道我需要添加到 functions.php 以允许以这种方式使用短代码?可湿性粉剂 3.6

编辑:对摘录的调用也嵌套在已经存在的短代码函数中,可以正常工作。

编辑2:

为了澄清,我正在使用 2 功能。一种为页面“框”创建格式:

//create box shortcode
function box( $atts, $content = null) {
    $p_id = $atts['post'];
    $p = get_post($p_id);
    $output = '<div class="box"><a href="'.get_permalink($p_id).'"><div class="box_inner"><h1>'.$p->post_title.'</h1><p>'.$p->post_excerpt.'</p></div></a></div>';
    return $output; 
} 
add_shortcode("box", "box");

还有一个是创建一个图标“char”(这是我想在上面的短代码摘录中使用的函数):

//big text for icons shortcode
function icon( $atts, $content = null) {
 return '<p style="text-align: center; font-size: 100px;>'.$content.'</p>';
}
 add_shortcode("icon", "icon"); 

我在这里可能有点离谱,甚至可以以这种方式使用简码吗?如果是这样,我如何阻止摘录忽略短代码格式?

4

4 回答 4

1

对于任何正在寻找的人。

我在这里犯了一个男生错误。我有过滤器:

add_filter( 'post_excerpt', 'do_shortcode');

但忘记使用:

apply_filters('post_excerpt', $p->post_excerpt);

现在工作正常:-)

于 2013-10-14T15:35:48.313 回答
0

将这 4 行添加到您的functions.php文件中以获得完整和全面的结果:

add_filter('the_excerpt', 'shortcode_unautop');
add_filter('the_excerpt', 'do_shortcode');
add_filter('get_the_excerpt', 'shortcode_unautop');
add_filter('get_the_excerpt', 'do_shortcode');
于 2015-03-04T14:17:01.357 回答
0

为了解析短代码,您需要通过do_shortcode()API 函数运行您的内容(您的案例中的摘录)。

所以我会想象它像$xrpt=do_shortcode($xrpt);

于 2013-10-14T14:41:37.680 回答
0

你可能还需要使用 add_action() 来为你的简码注册一个钩子。

于 2013-10-14T15:47:45.397 回答