如何从插件中的变量创建简码

我正在使用 WP User Frontend Pro 插件我想使用简码来回显包标题以将其放入面包店视觉中。我所知道的是:这是标题 $pack->post_title;


$pack 来自这里:


public function current_pack() {

    global $pack;

    $pack = $this->pack;


    if ( ! isset( $this->pack['pack_id'] ) ) {

        $pack_page = get_permalink( wpuf_get_option( 'subscription_page', 'wpuf_payment' ) );


        return new WP_Error( 'no-pack', sprintf( __( 'You must <a href="%s">purchase a subscription package</a> before posting', 'wp-user-frontend'), $pack_page ) );

    }


    // seems like the user has a pack, now check expiration

    if ( $this->expired() ) {

        return new WP_Error( 'expired', __( 'The subscription pack has expired. Please buy a pack.', 'wp-user-frontend' ) );

    }


    return $pack;

}

我尝试做这样的事情:


function wpc_shortcode_pack_title() {

global $pack;

return $pack->post_title;

}

add_shortcode( 'sub_name', 'wpc_shortcode_pack_title' );

为了解释更多,第 5 行中的选定代码在插件页面中正常工作,但我希望它作为简码

http://img.mukewang.com/63a538ad00017c5408680143.jpg

但它没有任何帮助吗?



手掌心
浏览 77回答 1
1回答

慕标5832272

的回调函数add_shortcode()应该返回内容,而不是打印出来。意思是,你必须return $pack->post_title代替echo $pack->post_title.像这样:function wpc_shortcode_pack_title() {&nbsp; global $pack;&nbsp; return $pack->post_title;}add_shortcode( 'sub_name', 'wpc_shortcode_pack_title' );编辑:查看“WP User Frontend Pro”的来源后:$pack似乎WPUF_Subscription::get_subscription()通过传递订阅 ID 获得了它的价值,订阅 ID 基本上获得了具有该 ID 的帖子。订阅 ID 似乎是WPUF_Subscription::get_user_pack()通过传递用户 ID 来获取其价值的。所以,我想你可以打电话get_current_user_id()尝试这样的事情:function wpc_shortcode_pack_title() {&nbsp; $user_id = get_current_user_id();&nbsp; if ( ! class_exists( 'WPUF_Subscription' ) ) {&nbsp; &nbsp; return 'WP User Frontend Pro is not installed/activated';&nbsp; }&nbsp; $user_sub = WPUF_Subscription::get_user_pack( $user_id );&nbsp; $pack = WPUF_Subscription::get_subscription( $user_sub['pack_id'] );&nbsp; return $pack->post_title;}add_shortcode( 'sub_name', 'wpc_shortcode_pack_title' );编辑#2:要获得过期日期,你会做类似的事情:function wpc_shortcode_pack_title() {&nbsp; $user_id = get_current_user_id();&nbsp; if ( ! class_exists( 'WPUF_Subscription' ) ) {&nbsp; &nbsp; return 'WP User Frontend Pro is not installed/activated';&nbsp; }&nbsp; // Get WPUF subscription/pack&nbsp; $user_sub = WPUF_Subscription::get_user_pack( $user_id );&nbsp; $pack = WPUF_Subscription::get_subscription( $user_sub['pack_id'] );&nbsp; // Get expiration date&nbsp; $expire = ( $user_sub['expire'] == 'unlimited' ) ? ucfirst( 'unlimited' ) : wpuf_date2mysql( $user_sub['expire'] );&nbsp; return sprintf(&nbsp; &nbsp; 'Subscription name: %1$s | Expire date: %2$s',&nbsp; &nbsp; $pack->post_title,&nbsp; &nbsp; wpuf_get_date( $expire )&nbsp; );}add_shortcode( 'sub_name', 'wpc_shortcode_pack_title' );
打开App,查看更多内容
随时随地看视频慕课网APP