Simplepie включает фантомные вложения, которые не существуют - PullRequest
0 голосов
/ 29 октября 2010

Я объединяю два канала с вложениями, и элементы, у которых нет вложений, отображаются с пустыми вложениями.

Вот код с битом-обидчиком, выделенным жирным шрифтом:

<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 Ответ

0 голосов
/ 29 октября 2010

Я не знаю про Simplepie, но, глядя на код, $item->get_enclosure(), вероятно, возвращает объект, который оценивается как true, но пустой.Поэтому, возможно, вам следует изменить условие if на:

<? $enclosure = $item->get_enclosure(); if ($enclosure->get_link()) {...
...