Как добавить произвольные типы записей в главную RSS ленту?
WordPress по умолчанию не включает в основную RSS ленту сайта записи произвольных типов (в ней публикуются только стандартные записи - 'post'). Это можно исправить с помощью небольшого сниппета кода, добавленного в файл functions.php вашей темы:
//добавление произвольных типов в RSS ленту start function wph_feed_all($vars) { if (isset($vars['feed']) && !isset($vars['post_type'])) $vars['post_type'] = array('post', 'custom_type1', 'custom_type2'); return $vars; } add_filter('request', 'wph_feed_all'); //добавление произвольных типов в RSS ленту end |
Где 'custom_type1' и 'custom_type2' это ваши произвольные типы записей. С помощью этого же кода можно добавить в RSS ленту еще и страницы вашего сайта. Для этого включите в указанный код тип 'page' и все страницы вашего сайта будут попадать в RSS ленту наравне с прочими записями.
Как разрешить загрузку дополнительных типов файлов?
По умолчанию в WordPress запрещена загрузка некоторых типов файлов (список всех разрешенных типов файлов смотрите здесь). Например, при попытке загрузить картинку в формате SVG движок выдаст ошибку "Извините, тип этого файла не разрешён из соображений безопасности". Эту ситуацию можно исправить с помощью небольшого кода, добавленного в файл functions.php вашей темы:
Как выводить записи в RSS до тега <!—more—>?
В WordPress уже очень давно выпилили возможность выводить в RSS текст записей до тега <!--more--> (тег "Далее" в визуальном редакторе), оставив для вывода лишь два варианта: "Полный текст" и "Анонс". При выводе в RSS полного текста записи вы рискуете тем, что подписчики будут читать ваши статьи в своей RSS-читалке, не переходя на ваш сайт. При выводе же анонсов весьма велика вероятность, что вы не сможете заинтересовать читателей, так как анонс это маленький огрызок текста с вырезанной разметкой (картинок в анонсе не будет). Вот и выходит, что наилучшим вариантом для всех будет вывод в RSS текста записи до тега <!--more-->.
Как задержать публикацию записей в RSS?
WordPress обновляет RSS ленты сайта немедленно после публикации записей. Это плохо тем, что лишает вас возможности быстро исправить опечатку в только что опубликованной записи. То есть, конечно, опечатку вы исправите, и запись будет обновлена в RSS ленте тоже. Беда тут только в том, что многие RSS читалки кэшируют RSS ленты и не будут их обновлять без появления в них нового контента (то есть новой записи). Чтобы избежать такой ситуации можно сделать задержку публикации записи в RSS с помощью такого кода в файле functions.php вашей темы:
//задержка публикации записей в RSS start function whp_feed_pause($where) { global $wpdb; if (is_feed()) { $now = gmdate('Y-m-d H:i:s'); $wait = '5'; $device = 'MINUTE'; $where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait "; } return $where; } add_filter('posts_where', 'whp_feed_pause'); //задержка публикации записей в RSS end |
Где число 5 это количество минут задержки перед публикацией записей в RSS.