WordPress jest wyposażony we wbudowane domyślne kanały RSS. Możesz dostosować domyślne kanały, dodając niestandardową zawartość do kanałów RSS, a nawet dodając miniaturę postów do kanałów RSS. Domyślne kanały RSS i Atom są wystarczające dla większości użytkowników, ale możesz chcieć utworzyć niestandardowy kanał RSS do dostarczania określonego typu treści. W tym artykule pokażemy, jak tworzyć niestandardowe kanały RSS w WordPress.
Należy pamiętać, że ten poradnik nie jest przeznaczony dla początkujących użytkowników poziomu WordPress. Jeśli jesteś początkujący i nadal chcesz go wypróbować, zrób to na lokalnej instalacji.
Jak zawsze, musisz utworzyć pełną kopię zapasową swojej witryny WordPress przed dokonaniem jakichkolwiek poważnych zmian w witrynie NA ŻYWO.
Powiedziawszy to, zacznijmy od pierwszego niestandardowego kanału RSS w WordPress.
Załóżmy, że chcesz utworzyć nowy kanał RSS, który wyświetla tylko następujące informacje:
- Tytuł
- Link
- Data Publikacji
- Autor
- Fragment
Pierwszą rzeczą, którą musisz zrobić, to utworzyć nowy kanał RSS w swoim motywie funkcje.php
plik lub w wtyczce specyficznej dla witryny:
add_action ('INIT','customRSS'); function customRSS () { add_feed ('feedname','customRSSFunc'); }
Powyższy kod uruchamia customRSS
funkcja, która dodaje kanał. Funkcja add_feed ma dwa argumenty, feedname i funkcję zwrotną. Nazwa kanału tworzy nowy adres URL kanału yourdomain.com/feed/feedname
a funkcja zwrotna zostanie wywołana, aby faktycznie utworzyć kanał. Zanotuj nazwę kanału, ponieważ będzie to potrzebne później.
Po zainicjowaniu kanału należy utworzyć funkcję zwrotną, aby utworzyć wymagany kanał, używając następującego kodu w szablonie funkcje.php
plik lub w wtyczce specyficznej dla witryny:
function customRSSFunc () { get_template_part ('rss', 'feedname'); }
Powyższy kod wykorzystuje get_template_part
funkcja link do oddzielnego pliku szablonu, jednak można również umieścić kod RSS bezpośrednio do funkcji. Za pomocą get_template_part
, możemy zachować funkcjonalność oddzieloną od układu. Na get_template_part
funkcja ma dwa argumenty, slug I name, które będą szukać pliku szablonu z nazwą w następującym formacie, zaczynając od Pliku na górze (jeśli nie znajdzie pierwszego, przejdzie do drugiego i tak dalej):
wp-content / themes/child / RSS-feedname.php
wp-content / themes/parent / RSS-feedname.php
wp-content / themes/child / RSS.php
wp-content / themes/parent / RSS.php
Na potrzeby tego samouczka najlepiej ustawić ślimak na typ tworzonego kanału (w tym przypadku: rss), A nazwę na nazwę kanału skonfigurowaną wcześniej.
Gdy już powiesz WordPressowi, aby szukał szablonu kanału, musisz go utworzyć. Poniższy kod stworzy układ dla kanału z informacjami wymienionymi wcześniej. Zapisz ten plik w folderze motywu jako slug-name.plik szablonu php skonfigurowany w get_template_part
funkcja.
<?php /** * Nazwa szablonu: niestandardowy szablon RSS-Feedname */ $postCount = 5; / / liczba postów do wyświetlenia w kanale $posts = query_posts('showposts=' . $ postCount ); header ('Content-Type:'.feed_content_type ('RSS-http').'; charset='.get_option ('blog_charset'), true); echo'<?wersja xml= " 1.0 " kodowanie="".get_option('blog_charset').'"?'.'>'; ?> < RSS version="2.0" xmlns: content="http://purl.org/rss/1.0/modules/content/" xmlns: wfw="http://wellformedweb.org/CommentAPI/" xmlns: dc="http://purl.org/dc/elements/1.1/" xmlns: atom="http://www.w3.org/2005/Atom" xmlns: sy="http://purl.org/rss/1.0/modules/syndication/" xmlns: slash="http://purl.org/rss/1.0/modules/slash/" <?php do_action ('rss2_ns');?>> < kanał> < title><?php bloginfo_rss ('nazwa');?> - Feed< / title> <atom: link href="<?php self_link ();?> "rel=" self"type=" application/RSS+xml" / > < link><?php bloginfo_rss ('url')?> < / link> < opis><?PHP bloginfo_rss ('description')?> < / opis > <lastBuildDate><?PHP echo mysql2date('D, D M Y H:i:S +0000', get_lastpostmodified('GMT'), false); ?>< / lastBuildDate> < język><?PHP echo get_option ('rss_language');?> < / language> <sy: updatePeriod><?PHP echo apply_filters ('rss_update_period', 'hourly');?> < / sy:updatePeriod> <sy: updateFrequency><?PHP echo apply_filters ('rss_update_frequency', '1');?> </sy:updateFrequency> <?php do_action('rss2_head');?> <?php while(have_posts ()): the_post ();?> < pozycja> < title><?php the_title_rss(); ?> < / title> < link><?php the_permalink_rss(); ?> < / link> <pubDate><?PHP echo mysql2date('D, D M Y H:i:S +0000', get_post_time('Y-M-d H:I:s', true), false); ?>< / pubDate> < dc: twórca><?php the_author ();?> < / dc: creator> <guid isPermaLink="false"><?php the_guid ();?> < / guid > < opis><![CDATA [<?php the_excerpt_rss ()?>]] > </opis > < content: encoded><![CDATA [<?php the_excerpt_rss ()?>]] > </content: encoded> <?php rss_enclosure ();?> <?php do_action('rss2_item');?> < / item> <?PHP endwhile;?> < / channel> < / rss>
Ten kod szablonu wygeneruje kanał RSS zgodnie z powyższym układem. Na postCount
zmienna pozwala kontrolować liczbę postów do wyświetlenia w kanale. Szablon może być zmieniany w zależności od potrzeb, aby wyświetlić dowolne informacje (np. zdjęcia, komentarze itp.).
Na the_excerpt_rss
funkcja wyświetli fragment każdego postu, a dla postów, które nie mają fragmentów, wyświetli pierwsze 120 słów treści postu.
Na koniec, aby wyświetlić swój kanał, musisz najpierw przepłukać zasady przepisywania WordPress. Najprostszym sposobem na to jest zalogowanie się do panelu administracyjnego WordPress i kliknięcie Ustawienia – > Permalinks. Raz tutaj, po prostu kliknij Zapisz Zmiany, co spowoduje spłukanie reguł przepisywania.
Możesz teraz uzyskać dostęp do nowego kanału pod adresem yourdomain.com/feed/feedname
, gdzie feedname to feedname, które podałeś w add_feed
funkcjonować wcześniej.
W3C oferuje usługę walidacji feedów, pozwalającą na walidację wynikowego feeda.
Rozwiązywanie problemów
- Dostaję błąd 404 podczas próby wyświetlenia mojego kanału!
- Sprawdź, czy używasz poprawnej nazwy kanału w adresie URL. To musi być ten, który dostarczyłeś w
add_feed
funkcja - Jeśli masz poprawną nazwę kanału, Twoje reguły przepisywania mogą nie być poprawnie wypłukane. Ponownie zapisz swoje permalinks tylko dla pewności.
- Jeśli ponownie zapisałeś swoje stałe łącza, możesz wymusić zmianę koloru za pomocą funkcji szablonu.plik php. Dodaj następujący kod do funkcji customRSS, którą stworzyliśmy wcześniej. Upewnij się, że dodajesz kod po
add_feed
funkcja.
global $wp_rewrite; $wp_rewrite->flush_rules();
- Sprawdź, czy używasz poprawnej nazwy kanału w adresie URL. To musi być ten, który dostarczyłeś w
- Po dodaniu tego, przeładuj swoją witrynę WordPress. Uwaga: Należy go usunąć natychmiast po użyciu. Wystarczy jeden raz, aby zasady zostały spłukane.
- Korzystając z walidatora kanałów W3C, należy podać szczegółowe informacje, w których kanał nie jest walidowany. Edytuj plik szablonu kanału, aby rozwiązać te problemy
- Jest to powszechne, gdy język RSS nie został skonfigurowany w instalacji WordPress. Aby to zrobić, możesz dodać następujący kod do szablonu
funkcje.php
plik, aby zaktualizować opcję języka.
function rssLanguage () { update_option ('rss_language','en'); } add_action ('admin_init', 'rssLanguage');
Mamy nadzieję, że ten artykuł pomógł Ci stworzyć własne niestandardowe kanały RSS w WordPress. Daj nam znać, jak i dlaczego będziesz korzystać z niestandardowych kanałów RSS w swojej witrynie WordPress, zostawiając komentarz poniżej.