在functions.php中执行do_shortcode

时间:2013-08-14 18:14:19

标签: wordpress

我正在尝试在functions.php中运行do_shortcode而没有运气

我正在使用类型插件http://wp-types.com/来创建自定义帖子类型和自定义字段。

我正在尝试做的是在管理员中添加自定义列,以查看显示自定义字段缩略图的所有自定义帖子。

这是我到目前为止所得到的,但似乎短代码在functions.php中不起作用

// add a column for custom post type (products)
add_filter('manage_product_posts_columns', 'add_thumbnail_column');
add_action('manage_product_posts_custom_column', 'add_thumbnail_content', 10, 2);

function add_thumbnail_column($defaults)
{
    $newSlice = array('thumbnail' => 'Image preview');
    $counter = 2;
    $array_head = array_slice($defaults,0,$counter);
    $array_tail = array_slice($defaults,$counter);
    $defaults = array_merge($array_head, $newSlice);
    $defaults = array_merge($defaults, $array_tail);
    return $defaults;  
}

function add_thumbnail_content($column_name, $post_ID)
{
    // this one works when putting into post content
    echo do_shortcode('[types field="square-picture" id="' . $post_ID . '" size="thumbnail"]' . '[/types]');
}

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

在Wordpress中对该功能的说明

  

“如果没有定义短代码标签,则内容将是   没有任何过滤返回。如果是插件,这可能会导致问题   禁用,因为其短代码仍将显示在帖子或内容中。“

只有当你在前端时,类型才可以有条件地声明他们的短代码。可能发生的事情是,在管理员中,短代码没有定义,你只是得到一个错误的回报。在前端时,定义了短代码,并获得了您想要的结果。