#php #arrays #wordpress #rss #explode
#php #массивы #wordpress #RSS-канал #взорваться
Вопрос:
я объединяю пару rss-каналов из профиля пользователя в wordress, где пользователь вводит URL-адреса rss-каналов по одному в каждой строке. Я использую функцию implode, чтобы создать массив из rss-каналов, используя функцию wordpress fetch_feed для извлечения сообщений. Но по какой-то проводной причине сообщения с одного URL не отображаются. Но когда я создаю массив с одинаковыми URL-адресами вручную, это работает! Вот код, который вы можете увидеть сами.
//array by explode
if($author->feeds){
$urlArray = explode("r", $author->feeds);
}
//manually created array
$mArray = array('http://lakeview.citystirchicago.com/feed/', 'http://citystir.com/feed/');
down in the page
if($author->feeds){
if(function_exists('fetch_feed')){
include_once(ABSPATH . WPINC . '/feed.php');
$feed = fetch_feed($array);
if (!is_wp_error( $feed ) ){
$limit = $feed->get_item_quantity(8);
$items = $feed->get_items(0, $limit);
if(!$items){
echo 'Problem loading feed.';
} else {
?>
<ul id="activity_feed">
<?php
foreach ($items as $item):
//do stuff
endforeach;
?>
Вы можете проверить два экземпляра с помощью этих двух URL-адресов. Я напечатал $ mArray и $ urlArray оба. Массив, созданный вручную $mArray, показывает записи из второй ссылки (новый тестовый пост), в то время как массив с помощью explode $urlArray не является, оба совпадают, но результат отличается!:
Использование $ mArray:http://citystir.com/author/designdons /
Использование $urlArray:http://citystir.com/author/designdons/?test=1
Решено: пришлось изменить разделитель разнесения » r» на » r n». Возможно, мне придется найти более эффективный способ взрыва. Спасибо!
Ответ №1:
Изменение разделителя разнесения » r» на » r n» решило проблему.