WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

[РЕШЕНО] Как получить первую строку значения метаполя?

ЕСТЬ некий кастом филд, значение которого:

ПЕРВАЯ СТРОКА
ВТОРАЯ СТРОКА
ТРЕТЬЯ СТРОКА

Как отфильтровать значение кея для передачи в $key="mykey"; echo get_post_meta($post->ID, $key, true);, чтобы получить первую строку?

Суть фильтра грубо: использовать первую строку, остальное отбрасывать

0
2 месяца назад
  • 0

    Используй массив.

    $keys = array(
    'ПЕРВАЯ СТРОКА',
    'ВТОРАЯ СТРОКА',
    'ТРЕТЬЯ СТРОКА',
    );
    
    echo get_post_meta($post->ID, $keys[0], true);

    Либо если нужен не первый а конкретный, то:

    foreach ($keys as $key){
    	if('ВТОРАЯ СТРОКА' == $key){
    		echo get_post_meta($post->ID, $key, true);       
    	}
    
    }
    pervect 2 мес назад

    Это не про ключ: он-то один. Это про его значения

    pervect 2 мес назад

    Вопрос решен!

    <?php
      $key="MyKey"; 
    $contents = get_post_meta($post->ID, $key, true);
    $contents = preg_replace('!\n!','', $contents);
    $contents = preg_replace('!\.mp4.*!','.mp4', $contents);
    
    echo $contents; ?>
    anseme 2 мес назад

    лол ) капец у тебя каша в голове, без обид..., но такое ощущение что ты был под чем то когда вопрос писал mosking

    Сравни его и твой ответ...

    особенно эта часть )

    $contents = preg_replace('!\.mp4.*!','.mp4', $contents);

    Но главное что ты все решил )

    pervect 2 мес назад

    Ээ...
    Ваше предложение помогло бы, как мне кажется, если бы надо было именно ключи выделять. Все равно, спасибо. Это решение может пригодиться в другом случае
    Задача: есть значение кея, состоящее из нескольких строк. Нужна - только первая.
    В данном случае, первая строка заканчивается всегда обозначением типа контента (в д.с. mp4)
    Отсюда решение:
    Путем автозамены (preg_replace)
    а) убить переносы строк и получить весь кей в одну строку
    б) убить всё что после стринга окончания первой строки (.mp4)
    в) вывести отфильтрованое
    г) танцевать и веселиться smile

    Kama сегодня

    Если у тебя там строки в значении и нужно получить первую строку, то так быстрее и правильнее, с preg_replace больше на костыли похоже:

    $contents = get_post_meta( $post->ID, $key, true );
    $contents = explode( "\n", trim($contents) )[0];
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация