代码之家  ›  专栏  ›  技术社区  ›  Fotogênicas Brasil

另一个短代码中的自定义页面标题短代码

  •  0
  • Fotogênicas Brasil  · 技术社区  · 6 年前

    我使用此功能获取内容区域中帖子页面的标题:

    function myshortcode_title( ){
    return get_the_title();
    }
    add_shortcode( 'page_title', 'myshortcode_title' );
    

    因此,我有一个插件,当我使用下面的这个短代码时,它会读取短代码之间的文本:

    [responsivevoice voice="UK English Male"] Wonderful World [/responsivevoice]
    

    所以,我正在做的是,我的问题也是,如何将“页面标题短代码”放在responsivevoice短代码中,就像这样?

    [responsivevoice voice="UK English Male"] [page_title] [/responsivevoice] 
    

    (它应该得到贴子页面的标题,但它不起作用)。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Sally CJ    6 年前

    选择以下选项之一,然后添加代码段:

    add_shortcode( 'page_title', 'myshortcode_title' );
    

    选项#1: [responsivevoice2]

    add_shortcode( 'responsivevoice2', 'responsivevoice2' );
    function responsivevoice2( $atts = array(), $content = '' ) {
        if ( $content = do_shortcode( $content ) ) {
            return RV_add_bblisten( $atts, $content );
        }
        return '';
    }
    

    示例用法:

    [responsivevoice2 voice="UK English Male"] [page_title] [/responsivevoice2]
    

    此短代码允许您使用 [page_title] 或 要发言的文本。

    选项2: [responsivevoice_page_title]

    此短代码将始终使用页面标题(或当前帖子的标题) 作为要发言的文本。 使用此短代码,您不需要 [第\u页标题] 不再使用短代码。

    add_shortcode( 'responsivevoice_page_title', 'responsivevoice_page_title' );
    function responsivevoice_page_title( $atts = array() ) {
        if ( $page_title = get_the_title() ) {
            return RV_add_bblisten( $atts, $page_title );
        }
        return '';
    }
    

    示例用法:

    [responsivevoice_page_title voice="UK English Male" /]