Flector

Как определить наличие в записи тега <!—more—>?

Перед вебмастерами иногда возникает задача определения в тексте записи наличия тега <!--more--> (кнопка "Вставить тег «Далее»" в визуальном редакторе), который служит для разделения записи на вводную и основную части. Определить разделение записи тегом <!--more--> можно с помощью своего собственного условного тега has_more, который надо добавить в файл functions.php вашей темы:

//условный тег проверки more в записи start
function has_more() {
    global $post;
    if (empty($post)) return;
    return (bool) preg_match('/<!--more(.*?)?-->/', $post->post_content);
}
//условный тег проверки more в записи end

Использовать данный тег в файлах вашей темы очень просто. Например, вот так:

<div class="entry-content">
    <?php if (has_more()) { ?>
        <?php the_content(); ?>
    <?php } else { ?>
        <?php the_excerpt(); ?>
    <?php } ?>
</div>

Это реальный код из темы рабочего сайта. Что он делает? Он проверяет наличие в записи тега <!--more-->. Если запись им разбита, то будет выведена ее вводная часть. Если же запись не разбита, то показана будет цитата записи.


Написать комментарий

Для вставки кода воспользуйтесь кнопкой "Код". Используйте предпросмотр!