本篇文章更新時間:2023/09/02
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣 或 新台幣 贊助支持。
WordPress 內建有一個預設的 RSS Feed,就是網站網址後補上 /feed/
,像是: https://www.mxp.tw/feed/ 。一般來說沒特殊用途,有人跟你說要 RSS Feed 給這個連結就好!
有興趣購買本篇文章的完整 Yahoo / FTV 民視 RSS Feed 功能完整程式碼的讀者,可以使用 付款連結 金額: 3000 元新台幣,並來信聯絡告知。收到款項後隨即發信完整打包原始碼以及安裝說明。
2023/09 新增 遊戲橘子 beanfun! 的 RSS。金額: 3000 元新台幣
不過有些新聞台接收其他媒體投稿的方式雖然也是 RSS 格式,但會有自己要求的特殊欄位。
常見的有:特殊分類方式
、文章特色圖片
,或是原本預設的欄位呈現內容的定義調整(例如描述欄位直接塞內文全文)
簡單來說,這樣的修改幅度不建議直接去修改內建的 feed
來完成,建立過一個才是正確做法。
最近剛好客戶有需求實作 民視 、 Yahoo 與 遊戲橘子 beanfun! 的 RSS Feed,正是上述的情況。面對 1. 是否需要輸出該篇文章到 Feed 上?
與 2. 輸出時需要帶入的資訊
這兩個問題,我們使用 ACF 客製化欄位工具在文章編輯處新增一些控制項。
然後就是開始在子主題中 functions.php
補上客製化 RSS 的程式:
function mxp_custom_rss_feed_channels() {
add_feed('ftv_feed', 'mxp_custom_rss_feed_for_ftv_callback');
}
add_action('init', 'mxp_custom_rss_feed_channels');
function mxp_custom_rss_feed_for_ftv_callback() {
get_template_part('rss', 'ftv');
}
這邊舉例民視的為主,宣告新增一個 ftv_feed
的 Feed,然後指定一個樣板 rss-ftv.php
。
然後就是一樣子主題下編輯 rss-ftv.php
檔案,加入下方的程式:
', ']]]]>', $str) . ']]>';
return $str;
}
$posts = get_posts(
array(
'numberposts' => 10,
'orderby' => 'date',
'order' => 'DESC',
'meta_query' => array(
array(
'key' => 'rss1_control',
'value' => '1',
'compare' => '=',
),
),
)
);
header('Content-Type: ' . feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true);
echo '';
?>
>
- FTVFeed
zh-tw
$post) {
$item = '- ';
$item .= '
' . apply_filters('the_title_rss', $post->post_title) . ' ' . PHP_EOL;
$item .= '' . esc_url(apply_filters('the_permalink_rss', get_the_permalink($post->ID))) . '' . PHP_EOL;
$item .= '' . mysql2date('D, d M Y H:i:s +0800', get_post_time('Y-m-d H:i:s', true), false) . ' ' . PHP_EOL;
$item .= '' . get_the_author_meta('display_name', $post->post_author) . ' ' . PHP_EOL;
$item .= '' . get_the_guid($post->ID) . ' ' . PHP_EOL;
$item .= 'ID)) . ']]> ' . PHP_EOL;
$thumbnail_id = get_post_thumbnail_id($post->ID);
if ($thumbnail_id !== false) {
$img_url = wp_get_attachment_image_url($thumbnail_id);
$upload_dir = wp_upload_dir();
$item .= ' ' . PHP_EOL;
}
$cat_id = get_post_meta($post->ID, 'rss1_rss_cat', true);
$cat_name = get_cat_name($cat_id);
$the_cat_list = "" . $cat_name . " " . PHP_EOL;
echo $item . $the_cat_list;
rss_enclosure();
do_action('rss2_item');
echo ' ' . PHP_EOL;
$item = '';
}
echo ' ';
都建立完成後,要去後台「設定」->「永久連結」重新存擋一次來啟用,這樣就完成客製化一個新的 RSS 囉~
其他媒體平台有個別的需求也是比照辦理即可。
你這篇早點出來多好,我之前弄LINE的弄好久啊!
哈 剛好最近實作就筆記一下。 是說你弄的 LINE 是 LINE Today 嗎? 我有看到有人開源: https://tw.wordpress.org/plugins/line-today-feed-by-tannysoft/
對,LINE Today,不過我在弄的時候是2018年初,這個外掛或許還沒出來,不然他有用 feed 這個 tag,應該會找到才是。
看來是你走太快了XDD