使短代码取决于添加它的帖子ID

时间:2016-08-22 14:22:20

标签: wordpress plugins shortcode

我一直在使用一个简单的函数来获取帖子标题(也有一个标签和类别)并允许我使用短代码在我的网站的前端显示这些。我目前使用的功能如下:

function sc_title() { return get_the_title(); } add_shortcode( 'title', 'sc_title' );

现在我最近开始使用名为Templatera的插件,所以我不必单独编辑所有页面,这已经停止正常工作,现在正在浏览模板标题而不是帖子标题。

我从插件开发者那里得到的回应是:

  

可能需要对短代码进行一些更改,以便这样做   它取决于添加它的帖子ID。

我尝试过多次修复,但似乎都没有。

1 个答案:

答案 0 :(得分:1)

在Wordpress开发文档中,您可以看到 get_the_title()接受整数ID(或帖子对象)作为参数:https://developer.wordpress.org/reference/functions/get_the_title/

尝试在短代码中使用它。

我的第一次参赛将是:

function sc_title() {

    // get current post / page ID
    global $wp_query;
    $post_id = $wp_query->posts[0]->ID;

    return get_the_title( $post_id );
}
add_shortcode( 'title', 'sc_title' );

这适用于单页(例如帖子“页面”),但我想它不适用于显示多个帖子内容的页面(它总是返回第一个查询帖子的标题)。