Я в основном создаю приложение iphone, которое получает данные из wordpress. Wordpress будет обслуживать аудио- и видео-ссылки через RSS-канал в приложение iphone. У меня есть фид и аудиоплеер, который отлично работает, но не может найти ничего, связанного с тем, как создать настраиваемый канал, где я могу указать разбивку на страницы, например start = 0 & items = 10. Плагин был бы замечательным, но я могу что-то подделать на PHP, если у кого-нибудь есть идеи.Как создать фид RSS с лимитом в wordpress
ответ
Я собираюсь ответить на этот вопрос, изменив стандартный RSS-канал установки WordPress, чтобы ответить на ограничения, переданные параметрами запроса. Как вы говорите, у вас уже есть рабочий канал, это, надеюсь, даст вам все, что вам нужно.
По умолчанию стандартные каналы в WordPress ограничены настройкой «Syndication каналы показывают самые последние X элементы» на Настройки → Чтение страницы, и unpaginated, поскольку это не будет вообще иметь смысл для Новостная лента. Это контролируется методом WP_Query :: get_posts() WordPress, в query.php
, если вы заинтересованы в том, чтобы взглянуть на то, как все работает внутри страны.
Однако, несмотря на то, что ограничение на подачу запроса установлено на LIMIT 0, X
(где X - это значение выше, 10 по умолчанию), вы можете переопределить предел путем фильтрации запроса в нужном месте.
Например, фильтр post_limits
будет фильтровать предложение LIMIT запроса между точкой, которую он настроил по коду по умолчанию для каналов и времени его запуска. Таким образом, следующий код в плагине - или даже в functions.php вашей темы - полностью Unlimit возвращенные детали в вашем RSS-каналы:
function custom_rss_limits($limits) {
if (is_feed()) {
// If this is a feed, drop the LIMIT clause completely
return "";
} else {
// It's not a feed; leave the normal LIMIT in place.
return $limits;
}
}
add_filter('post_limits', 'custom_rss_limits');
(В этот момент я должен отметить очевидные последствия для безопасности - Если у вас есть 20 000 сообщений в вашем блоге, вы получите много нагрузки на сервер и пропускную способность, если много людей начнут захватывать ваш канал, и вы отправляете все 20 000 предметов каждому. Поэтому имейте в виду, что независимо от того, что вы в конечном итоге делаете, вы все равно можете применить некоторые жесткие ограничения, на случай, если кто-то выяснит, что конечная точка вашего фида может быть запрошена для всего, скажем, анализируя трафик с вашего iPhone-приложения.)
Теперь все, что нам нужно сделать, это ответить на параметры запроса. Прежде всего, мы зарегистрировать два параметра запроса с WordPress:
function rss_limit_queryvars($qv) {
$qv[] = 'start';
$qv[] = 'items';
return $qv;
}
add_filter('query_vars', 'rss_limit_queryvars');
Это позволяет нам передать в start
и items
переменных вы предлагающие для ваших параметров URL.
Все, что мы должны сделать то, чтобы скорректировать нашу меняющуюся функцию оригинала LIMIT
реагировать на них:
function custom_rss_limits($limits) {
if (is_feed()) {
global $wp_query;
if (isset($wp_query->query_vars['start']) &&
isset($wp_query->query_vars['items'])) {
// We're a feed, and we got pagination parameters. Override our
// standard limit.
// First convert to ints in case anyone's put something hinky
// in the query string.
$start = intval($wp_query->query_vars['start']);
$items = intval($wp_query->query_vars['items']);
$limits = "LIMIT $start, $items";
} else {
// We weren't passed pagination parameters, so just
// leave the default limits alone.
}
}
return $limits;
}
add_filter('post_limits', 'custom_rss_limits');
И там вы идете. Бросьте эти последние два блок кода в WordPress, и теперь вы можете использовать URL, как это на любом из существующих каналов:
http://example.com/feed/?start=30&items=25
Для этого примера, вы получите нормальный RSS-канал, но с 25 пунктами начиная с пункта 30.
... и если вы не передайте параметры запроса, все будет работать как обычно.
- 1. Возвращение 404 для любых Wordpress Фид/RSS
- 2. Отправка RSS фид PHPMYADMIN
- 3. Как создать фид facebook для wordpress?
- 4. Синтаксический фид с RSS версией = «2»
- 5. Как читатель RSS знает, что фид обновлен?
- 6. Создать фид с acts_as_follower
- 7. Настройка RSS-ленты WordPress
- 8. Как создать фид как instagram
- 9. PHP - Как читать RSS-каналы с лимитом (Разбиение)
- 10. При разборе RSS фид, отображается неправильная дата
- 11. Invalid шестнадцатеричный символ при извлечении RSS фид
- 12. Django rss feedparser возвращает фид без «заголовка»
- 13. Как создать статус RSS фильтр
- 14. Создать Rss из базы данных Wordpress
- 15. Как создать фид подачи заявки?
- 16. как разобрать весь RSS фид данных, XML в быстрой
- 17. Как настроить RSS-ленту WordPress
- 18. Создать Фид в Laravel4 с полиморфными отношениями
- 19. Скрывать RSS Feed Категория в WordPress
- 20. Как мы можем создать RSS-канал в WordPress/Joomla?
- 21. Как создать RSS-канал с личного сайта Google
- 22. Как создать «пустую» RSS-ленту
- 23. Как создать фид строки в теге div?
- 24. Как получить фид из feedBurner
- 25. Как потреблять RSS фид и читать постоянный ток Создатель элемент
- 26. Проблема с RSS и WordPress
- 27. Читайте RSS с сайта Wordpress
- 28. действительно запрашивает rss-фид в качестве хитов на сайт?
- 29. Как получить пользовательские поля Wordpress rss-канал в zend?
- 30. Как просканировать фид
похоже законный. благодаря! –
Нет проблем. Он должен работать нормально; Я тестировал его локально с помощью этого точного кода, набитого в functions.php, и я не могу себе представить, что он не будет работать в плагине. И я думаю, что я использую чистые, одобренные подходы, чтобы делать все, что я здесь делаю, поэтому он должен продолжать работать с будущими версиями WordPress. Дайте мне знать, как вы справляетесь! –