Dziś przedstawię kilka kawałków kodu odnoszących się do modyfikacji kanału RSS.
Rzecz jasna wszystkie z nich umieszczamy w pliku functions.php
Wyłączenie kanału rss
1 2 3 4 5 6 7 8 |
function fb_disable_feed() { wp_die( __('Kanał został wyłączony. Zapraszamy na <a href="'. get_bloginfo('url') .'">stronę główną.</a>!') ); } add_action('do_feed', 'fb_disable_feed', 1); add_action('do_feed_rdf', 'fb_disable_feed', 1); add_action('do_feed_rss', 'fb_disable_feed', 1); add_action('do_feed_rss2', 'fb_disable_feed', 1); add_action('do_feed_atom', 'fb_disable_feed', 1); |
Przekierowanie kanału na Feedburner
1 2 3 4 5 6 7 |
function feed_to_feedburner_redirect() { if ( is_feed() $$ !preg_match('/feedburner|feedvalidator/i', $_SERVER['HTTP_USER_AGENT'])){ header('Location: http://feeds.feedburner.com/[NAZWA_TWOJEGO_FEED]'); header('HTTP/1.1 302 Temporary Redirect'); } } add_action('template_redirect', 'feed_to_feedburner_redirect'); |
W zamian [NAZWA_TWOJEGO_FEED] należy wstawić nazwę feeda z Feedburnera
Dodanie stron oraz wszystkich typów postów do kanału
1 2 3 4 5 6 7 |
function feedFilter($query) { if ($query->is_feed) { $query->set('post_type','any'); } return $query; } add_filter('pre_get_posts','feedFilter'); |
Aby ograniczyć wyświetlanie tylko do np. stron należy w 3 linii ustawić na: $query->set(‚post_type’,’page’);
Dodanie ikon wpisu / obrazka do kanału RSS
1 2 3 4 5 6 7 |
function rss_post_thumbnail($content) { global $post; if( has_post_thumbnail($post->ID) ) $content = '<p>' . get_the_post_thumbnail($post->ID, 'thumbnail') . '</p>' . $content; return $content; } add_filter('the_content_feed', 'rss_post_thumbnail'); |
Wyświetlanie w kanale RSS postów z konkretnej kategorii
1 2 3 4 5 6 |
function my_home_category( $query ) { if ( $query->is_home() && $query->is_main_query() ) { $query->set( 'cat', '11'); } } add_action( 'pre_get_posts', 'my_home_category' ); |
Do zmiany ID kategorii posłuży nam 3 linijka kodu oraz numer się w niej znajdujący. Aktualnie 11.
Wykluczanie postów z konkretnym tagiem
1 2 3 4 |
function feedFilter($query) { if ($query->is_feed) { $tags = array('11', '31', '124'); $query->set('tag__not_in', $tags); } return $query; } add_filter('pre_get_posts','feedFilter'); |
Do zmiany ID tagu posłuży nam 3 linijka kodu oraz numer się w niej znajdujący. Aktualnie są to tagi o ID: 11, 31, 124.
Dodanie treści po każdym z postów
1 2 3 4 5 6 7 8 9 10 11 12 13 |
function feedFilter($query) { if ($query->is_feed) { add_filter('the_content','feedContentFilter'); } return $query; } add_filter('pre_get_posts','feedFilter'); function feedContentFilter($content) { $content .= '<p>Dziękuję za subskrybcję kanału <a href="'. get_bloginfo('url') .'">'. get_bloginfo('name') .'</a>. Odwiedź nasz profil na <a href="https://www.facebook.com/seowordpress">Facebook</a>!</p>'; return $content; } |