Intereting Posts
Multisite – один пользователь разрешил доступ ко всем сайтам? Расширенные пользовательские поля Поле изображения объекта Post не отображается в пользовательском типе сообщений single.php Исключение отдельных виджетов из класса боковой панели по умолчанию Как удалить версию и поблагодарить сообщение из нижнего колонтитула администратора ограничить подписчиков административной областью. У них собственный профиль на fron-end Отображать содержимое шаблона страницы (get_page) проблема с переадресацией имен – проблема с charset db? Как удалить некоторые опции в визуальном редакторе? Какой плагин следует использовать для бронирования событий и получения платежей? Выберите min / max meta из запроса Ubermenu can not обрабатывает мое меню, как бороться с большим количеством элементов меню? Отображение мета-поля в настраиваемом типе сообщений на странице Плагин или метод для удаления загрузок не в медиа-библиотеке? Как поддерживать зависимости wp_enqueue_style, установленные в родительском типе темы enqueuing WP как меню CMS

Получить URI из PodPress с помощью PHP

Мы используем podpress в качестве нашего подкаста, но мы хотели бы предоставить возможность загрузить файл на странице без игрока. Поэтому я пытаюсь выяснить, как извлечь URI из метаданных.

Я новичок в PHP и изо всех сил стараюсь его изучить, поэтому я получил это далеко:

<?php $custom_fields = get_post_custom(get_the_ID()); $my_custom_field = $custom_fields['_podPressMedia']; foreach ( $my_custom_field as $key => $value ){ echo $key . " => " . $value . "<br />"; } ?> 

которые выходят

 0 => a:1:{i:0;a:10:{s:3:"URI";s:85:"http://www.writingexcuses.com/wp-content/uploads/Writing_Excuses_8_1_Microcasting.mp3";s:5:"title";s:33:"Writing Excuses 8.1: Microcasting";s:4:"type";s:9:"audio_mp3";s:4:"size";i:12759440;s:8:"duration";s:5:"17:43";s:12:"previewImage";s:86:"http://img.wordpressask.com/php/vpreview_center.png";s:10:"dimensionW";i:0;s:10:"dimensionH";i:0;s:3:"rss";s:2:"on";s:4:"atom";s:2:"on";}} 

Поэтому я могу видеть данные, которые я хочу там, и я знаю, что мне нужно создать другую функцию, которая принимает первый результат и извлекает только значение с помощью URI ключа, но я не могу понять, как должна выглядеть эта функция. Я еще не понял «массивные мышления», несмотря на то, что много времени смотрел на эту страницу в руководстве PHP.

http://php.net/manual/en/control-structures.foreach.php

Любые советы по строительству?

Solutions Collecting From Web of "Получить URI из PodPress с помощью PHP"

 $meta = get_post_meta(get_the_ID(), '_podPressMedia', true); $meta = maybe_unserialize($meta); if (is_array($meta) && count($meta) > 0) foreach($meta as $item){ //do something... } 

Пожалуйста, не используйте unserialize / serialize с хранимыми структурами данных php, там есть native maybe_serialize / maybe_unserialize . Возврат одного значения из таблицы postmeta также не требует get_post_custom, все, что вам нужно сделать, чтобы использовать get_post_meta, которые возвратят только требуемые данные мета-ключа, полученные в сообщении.

EDIT: использование get_post_meta () возвращает несериализованный массив, re: post от Олега Бутузова. Благодаря! – Я обновил примеры кода.

Вывод массива сериализуется и должен быть неэтериализован, прежде чем вы сможете получить доступ к информации с помощью php.

После некоторой помощи этого сообщения я смог использовать unserialize (); для доступа к uri.

  <?php //grabs the array with the meta fields of podPress for a particular post or page. $pp_array = get_post_meta(get_the_ID(), '_podPressMedia', true); $pp_array = $pp_array[0]; ?> <a href="<?php echo esc_attr($pp_array["URI"]) ?>" title="<?php echo esc_attr($pp_array["title"]);?>.mp3">Download</a> 

Для тех, кому интересно, вот результат $ pp_array.

Шаг 1:

 $pp_array = get_post_meta(get_the_ID(), '_podPressMedia', true); var_dump($pp_array); RETURNS array(1) { [0]=> array(10) { ["URI"]=> string(85) "http://www.writingexcuses.com/wp-content/uploads/Writing_Excuses_8_1_Microcasting.mp3" ["title"]=> string(33) "Writing Excuses 8.1: Microcasting" ["type"]=> string(9) "audio_mp3" ["size"]=> int(12759440) ["duration"]=> string(5) "17:43" ["previewImage"]=> string(86) "http://img.wordpressask.com/php/vpreview_center.png" ["dimensionW"]=> int(0) ["dimensionH"]=> int(0) ["rss"]=> string(2) "on" ["atom"]=> string(2) "on" } } - See more at: http://www.writingexcuses.com/season-archives/izzy-detective/#sthash.jr9uR8xx.dpuf 

Шаг 2:

 $pp_array = $pp_array[0]; var_dump($pp_array); RETURNS array(10) { ["URI"]=> string(85) "http://www.writingexcuses.com/wp-content/uploads/Writing_Excuses_8_1_Microcasting.mp3" ["title"]=> string(33) "Writing Excuses 8.1: Microcasting" ["type"]=> string(9) "audio_mp3" ["size"]=> int(12759440) ["duration"]=> string(5) "17:43" ["previewImage"]=> string(86) "http://img.wordpressask.com/php/vpreview_center.png" ["dimensionW"]=> int(0) ["dimensionH"]=> int(0) ["rss"]=> string(2) "on" ["atom"]=> string(2) "on" } - See more at: http://www.writingexcuses.com/season-archives/izzy-detective/#sthash.iiQ43LEp.dpuf 

Шаг 3:

 <p><?php echo $pp_array["URI"];?></p> RETURNS http://www.writingexcuses.com/wp-content/uploads/Writing_Excuses_8_1_Microcasting.mp3