2016-11-05 4 views
1

Я пытаюсь использовать следующий короткий код в заголовке сообщения Wordpress. Штрипток выглядит следующим образом:Используйте короткий текст Wordpress в заголовке сообщения

//Use [year] in your posts. 
function year_shortcode() { 
    $year = date('Y'); 
    return $year; 
} 
add_shortcode('year', 'year_shortcode'); 

Любые предложения по выполнению этого короткого кода в заголовке сообщения?

Я ценю ваши ответы!

ответ

0

Я не думаю, что вы можете применить (сохранить в окне редактирования сообщения администратора) короткий код в заголовке сообщения с коротким кодом. Post_title дезинфицирует, чтобы избежать тега или короткого кода, заголовок сообщения используется многими функциями, которые может сломать короткий код.

Для того, чтобы изменения на POST_TITLE, вы можете использовать фильтр the_title

add_filter('the _title', 'yourfunction'); 

function yourfunction($title){ 
    global $post; 

    // if you set a custom field on the post where you want to display the year 
    if(get_post_meta($post->ID, 'display_year', true) == 1){ 

     $title = $title. ' '. date('Y'); 

    } 

    return $title; 
} 

Надеется, что это помогает

+0

Thx для вашего ответа! Дело в том, что это добавит год к каждому заголовку, но я хочу использовать его только спорадически ... – mrquad

+0

Вам нужно добавить настраиваемое поле (add_meta_boxes или вручную) и проверить его отображение года. – Benoti

+0

Я отредактировал свой ответ. – Benoti

1

Вы можете абсолютно использовать шорткод в названии. Вам просто нужно использовать систему крючков WordPress для запуска короткого кода при вызове названия. Так что если вы хотите иметь шорткод [year] что выплевывает текущий год, вы будете создавать шорткод:

add_shortcode('year', 'sc_year'); 
function sc_year(){ 
    return date('Y'); 
} 

Затем крюк в фильтр для the_title(), чтобы запустить свой шорткод:

add_filter('the_title', 'my_shortcode_title'); 
function my_shortcode_title($title){ 
    return do_shortcode($title); 
} 

Это касается заголовка «Почта/страница», но вы также захотите запустить его для крюка single_post_title, который используется в wp_head на теге заголовка на вашем сайте. Таким образом, браузер покажет правильное название, а также:

add_filter('single_post_title', 'my_shortcode_title'); 

Примечание: Вам не нужно отдельной функции здесь, потому что он работает один и тот же код. Таким образом, ваш общий код будет выглядеть примерно так:

add_shortcode('year', 'sc_year'); 
function sc_year(){ 
    return date('Y'); 
} 

add_filter('single_post_title', 'my_shortcode_title'); 
add_filter('the_title', 'my_shortcode_title'); 
function my_shortcode_title($title){ 
    return do_shortcode($title); 
} 
0

Пожалуйста, добавьте этот код в 'function.php'. Попробуй это.

<?php 

    function TitleFunction($title) 
    { 
    global $post; 

    $title = $title. ' ' .get_the_date('Y'); 

    return $title; 
    } 
    add_filter('the_title', 'TitleFunction', 10, 2); 

    ?> 
Смежные вопросы