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

Custom Page Title Shortcode within another Shortcode

我用这个函数获取内容区post页的标题:

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

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

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

所以,我正在做的事情也是我的问题,我如何才能将 "page title shortcode" 放入像这样的 responsivevoice 简码中?

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

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

选择以下选项之一,并在后面添加代码段:

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]

此简码将始终使用页面标题(或当前 post 的标题) 作为要说的文本。 使用此简码,您不需要 [page_title] 不再使用简码了。

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" /]