#php #simplepie
#php #simplepie
Вопрос:
Я объединяю два канала с вложениями, и элементы, у которых нет вложений, отображаются с пустыми вложениями.
Вот код, в котором нарушающий бит выделен жирным шрифтом:
<item>
<title><?echo $item->get_title(); ?></title>
<guid><? echo $item->get_permalink(); ?></guid>
<link><? echo $item->get_permalink(); ?></link>
**<? if ($enclosure = $item->get_enclosure()) {echo "<enclosure url='"
.$enclosure->get_link() ."' length='" .$enclosure->get_length() ."' type='"
.$enclosure->get_type() ."' />";} ?>**
<description>
<? echo $item->get_title(); ?>
</description>
</item>
Элементы без вложений отображаются с пустым URL-адресом вложения, длиной и типом:
Все реальные вложения отображаются так, как должны, с URL, длиной и типом. Я прочитал несколько тем на странице поддержки Simplepie, но не нашел решения.
Спасибо!
Комментарии:
1. Что
$item->get_enclosure()
возвращает, если вложения нет?
Ответ №1:
Я не знаю о Simplepie, но, глядя на код, $item->get_enclosure()
вероятно, возвращает объект, который вычисляется как true
, но является пустым. Так что, возможно, вам следует изменить условие if
на:
<? $enclosure = $item->get_enclosure(); if ($enclosure->get_link()) {...