[РЕШЕНО] Как получить первую строку значения метаполя?
ЕСТЬ некий кастом филд, значение которого:
ПЕРВАЯ СТРОКА ВТОРАЯ СТРОКА ТРЕТЬЯ СТРОКА
Как отфильтровать значение кея для передачи в $key="mykey"; echo get_post_meta($post->ID, $key, true);, чтобы получить первую строку?
Суть фильтра грубо: использовать первую строку, остальное отбрасывать
Используй массив.
Либо если нужен не первый а конкретный, то:
foreach ($keys as $key){ if('ВТОРАЯ СТРОКА' == $key){ echo get_post_meta($post->ID, $key, true); } }Это не про ключ: он-то один. Это про его значения
Вопрос решен!
<?php $key="MyKey"; $contents = get_post_meta($post->ID, $key, true); $contents = preg_replace('!\n!','', $contents); $contents = preg_replace('!\.mp4.*!','.mp4', $contents); echo $contents; ?>лол ) капец у тебя каша в голове, без обид..., но такое ощущение что ты был под чем то когда вопрос писал )))
Сравни его и твой ответ...
особенно эта часть )
$contents = preg_replace('!\.mp4.*!','.mp4', $contents);Но главное что ты все решил )
Ээ...
Ваше предложение помогло бы, как мне кажется, если бы надо было именно ключи выделять. Все равно, спасибо. Это решение может пригодиться в другом случае
Задача: есть значение кея, состоящее из нескольких строк. Нужна - только первая.
В данном случае, первая строка заканчивается всегда обозначением типа контента (в д.с. mp4)
Отсюда решение:
Путем автозамены (preg_replace)
а) убить переносы строк и получить весь кей в одну строку
б) убить всё что после стринга окончания первой строки (.mp4)
в) вывести отфильтрованое
г) танцевать и веселиться
Если у тебя там строки в значении и нужно получить первую строку, то так быстрее и правильнее, с preg_replace больше на костыли похоже: