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