get_extended() WP 1.0.0

Розділяє контент на 2 частини до тега <!–more–> і після нього. Повертає масив із отриманими частинами.

Після другого тире і перед словом “more” не повинно бути пропуску:

  • Правильно:<!--more-->
  • НЕ вірно:<!-- more-->

Після слова “more” може бути текст або пробіли (використання посилань забороняється).

  • <!‐‐more подробнее‐‐>

Текст стане анкором заслання. Замінить “(далі…)”.

Хуків немає.

Повертає

Строку[]. Масив із даними:

Array (
	[main] => текст до more
	[extended] => текст після more
	[more_text] => (далі…)
	// якщо more вказано так: <!‐‐more докладніше‐‐>, то тут буде "докладніше" а не "(далі…)"
)

Використання

$parts = get_extended($post_content);
$post_content
(рядок) (обов’язковий)
Контент посту, в якому є
<!–more–> і який потрібно розділити.

Приклади

0

#1 Виведемо цитату з останніх постів

Якщо потрібно вивести останні записи на блозі, але вивести потрібно лише частину тексту до тега <!–more–> , використовуйте такий код:

<ul>
	<?php
	global $post;

	$myposts = get_posts( array( 'numberposts'=>5 ) );

	foreach( $myposts as $post ){
		setup_postdata($post);  
		$parts = get_extended($post->post_content); ?>
		<li>
		   <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
		   </br>
		   <?php echo apply_filters('the_content', $parts['main'] ); // частина до тега more?>   
		</li>
	<?php
	}
	wp_reset_postdata();
	?>
</ul>
0

#2 Виведемо рекламу відразу після тега <!–more–>

Допустимо нам потрібно вивести рекламний блок після тега <!–more–>, на окремій сторінці (файл single.php). Для цього замінимо the_content() на такий код:

<?php
global $post;
$content_parts = get_extended( $post->post_content );

echo apply_filters('the_content', $content_parts['main']);

echo "Рекламний код тут";

echo apply_filters('the_content', $content_parts['extended']);
?>

список змін

З версії 1.0.0Введено.

). * * Вони не повинні бути будь-яким простим після другої доби і до слова * ‘more’. Там може бути текст або простір(s) після слова ‘more’, але won’t be * referenced. * * Returned array має ‘main’, ‘extended’, ‘more_text’ keys. Main has the text before * the ``. The ‘extended’ key has the content after the * `` comment. У ‘more_text’ key has custom "Read More" text. * * @since 1.0.0 * * @param string $post Post content. * @return string[] { * Extended entry info. * * @type string $main Content before the more tag. * @type string $extended Content after the more tag. * @type string $more_text Custom read more text, або empty string. * } */” data-tooltip_type=”pre”>Код get_extended() WP 6.0.2

function get_extended( $post ) {
	// Match the new style more links.
	if ( preg_match( '/<!--more(.*?)?-->/', $post, $matches ) ) {
		list($main, $extended) = explode($matches[0], $post, 2);
		$more_text = $matches[1];
	} else {
		$main = $post;
		$extended = '';
		$more_text = '';
	}

	// Leading and trailing whitespace.
	$main = preg_replace( '/^[s]*(.*)[s]*$/', '1', $main );
	$extended = preg_replace( '/^[s]*(.*)[s]*$/', '1', $extended );
	$more_text = preg_replace( '/^[s]*(.*)[s]*$/', '1', $more_text );

	return array(
		'main' => $main,
		'extended' => $extended,
		'more_text' => $more_text,
	);
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *