@dmitriy8720

Как вытащить определенную строку из записи,и показать её в отрывке?

Подскажите как вытащить определенную строку,из записи и показать её в отрывке к записям?Строка находится в конце записи,последнее предложение.

код из functions.php
function excerpt($limit) {
  $excerpt = explode(' ', get_the_excerpt(), $limit);
  if (count($excerpt)>=$limit) {
	array_pop($excerpt);
	$excerpt = implode(" ",$excerpt).'...';
  } else {
	$excerpt = implode(" ",$excerpt);
  }
  $excerpt = preg_replace('`[[^]]*]`','',$excerpt);
  return $excerpt;
}


код из content.php
<?php echo excerpt(17); ?>

Мне надо,что бы он взял из конца записи последние 17,а не из начала,или например обернуть нужную строку в <h2> или <p>,и прописать в коде.

Пример последней строки: Цена: от 1,100 руб.
  • Вопрос задан
  • 84 просмотра
Пригласить эксперта
Ответы на вопрос 1
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
Вы не сможете гарантировать, что в конце записи вам нужны именно 17 символов, вдруг у вас будет в строке 12,500. Если у вас во всех записях присутствует слово цена и вам нужно получить числа, я бы сделал следующим образом:

add_action( 'save_post', 'skill_save_post' );
if ( !function_exists( 'skill_save_post' ) ) {
	function skill_save_post( $post_id ) {

		//$string = get_the_content();
		$string = 'Цена: от 1,100 руб.';

		if ( $data = array_map( 'trim', explode( 'Цена:', $string ) ) ) {
			$data = array_pop($data); // берем последний элемент массива'
			$data = preg_replace('/(\D+)/', '', $data); // удаляем все НЕ числа

			// пишем в мету 
			update_post_meta( $post_id, 'price_from', $data );
		}
	}
}


Берем контент, разбиваем по слову "Цена:", берем последний элемент массива, удаляем из строки все НЕ числа, пишем значение в мету на хуке save_post. Теперь вам не нужно проводить эти вычисления еще раз, а значение можно получить с помощью

get_post_meta( $post_id, 'price_from', true );
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы