Скрытие текста в архивах, но отображение в записях

8 янв. 2012 г., 14:07:41
Просмотры: 228
Голосов: 0

Мне нужен шорткод, похожий на этот:

[hidetext]текст для скрытия[/hidetext]

Этот тег должен скрывать текст на всех страницах, кроме страницы отдельной записи. Только на странице записи содержимое [hidetext] должно отображаться. Как можно реализовать подобное?

0
Все ответы на вопрос 2
0
// Добавляем шорткод 'hidetext' и связываем его с функцией my_hidetext_shortcode
add_shortcode( 'hidetext', 'my_hidetext_shortcode' );

// Функция обработки шорткода
function my_hidetext_shortcode( $atts, $content = '' ) {
    // Проверяем, является ли текущая страница записью (постом)
    if( is_single() )
        // Если это запись - возвращаем содержимое
        return $content;
    else
        // Если это не запись - ничего не возвращаем
        return;
}

Документация: add_shortcode(), is_single()

Решение не тестировалось.

8 янв. 2012 г. 15:09:57
0

Небольшая модификация функции выше. Вам нужно использовать is_singular('post') вместо этого, если только вы не хотите также охватить другие области

add_shortcode( 'hidetext', 'rkv_hidetext_shortcode' );

function rkv_hidetext_shortcode( $atts, $content = null) {
    if( is_singular('post') )
        return $content;
    else
        return;
}

протестировано и работает.

8 янв. 2012 г. 15:41:55