Создавая один из проектов понадобилось выводить посты по разному, в зависимости от того, есть ли в посте тег «ещё» или «more» на английском.
Оказалось, что сделать это достаточно просто:
Вариант 1(рекомендуемый):
<?php if( strpos( $post->post_content, '<!--more-->' ) ) { the_content(); } else { the_excerpt(); } ?>
Вариант 2:
<?php if( strpos( get_the_content(), 'more-link' ) === false ) { the_excerpt(); } else { the_content(); } ?>
Вариант 3:
<?php if( preg_match( '/<!--more(.*?)?-->/', $post->post_content ) ) { the_content(); } else { the_excerpt(); } ?>
Как это работает:
- Получаем из базы пост
- Проверяем, есть ли в нем тег <!—more—>
- Выводим контент удобным для нас способом