Как определить наличие в записи тега <!—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-->. Если запись им разбита, то будет выведена ее вводная часть. Если же запись не разбита, то показана будет цитата записи.


