Пользовательский заголовок страницы в другом шорткоде

Я использую эту функцию, чтобы получить заголовок страницы сообщения в области содержимого:

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

Итак, у меня есть плагин, который при использовании этого шорткода ниже читает текст между шорткодами:

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

Итак, что я делаю, и это также мой вопрос: как я могу поместить "короткий код заголовка страницы" в короткий код responseivevoice, как это?

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

(Должен получить заголовок страницы сообщения, но это не работает).

1 ответ

Решение

Выберите один из следующих параметров и добавьте фрагмент кода после:

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]

Этот шорткод всегда будет использовать заголовок страницы (или заголовок текущего сообщения) в качестве текста, который будет произноситься. С этим шорткодом вам не нужно [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" /]
Другие вопросы по тегам