{"id":11418,"date":"2026-05-31T19:29:55","date_gmt":"2026-05-31T11:29:55","guid":{"rendered":"https:\/\/aeosub.com\/forward-blogroll\/"},"modified":"2026-05-31T19:29:55","modified_gmt":"2026-05-31T11:29:55","slug":"forward-blogroll","status":"publish","type":"post","link":"https:\/\/aeosub.com\/zh\/forward-blogroll\/","title":{"rendered":"Forward: Blogroll"},"content":{"rendered":"<div class=\"post-img\" style=\"margin-bottom: 25px\"><img decoding=\"async\" src=\"https:\/\/ps.w.org\/forward-blogroll\/assets\/banner-1544x500.jpg?rev=3555432\" alt=\"Forward: Blogroll\" style=\"width: 100%;height: auto;border-radius: 12px\"><\/div>\n<div class=\"plugin-info-card\" style=\"border: 1px solid #e2e8f0;border-radius: 10px;overflow: hidden;margin-bottom: 30px;font-family: -apple-system, system-ui, sans-serif;background: #fff\">\n<div style=\"padding: 20px;border-bottom: 1px solid #edf2f7;background: #fafafa;display: flex;align-items: flex-start\">\n                <img decoding=\"async\" src=\"https:\/\/ps.w.org\/forward-blogroll\/assets\/icon-256x256.png?rev=3555432\" style=\"width: 45px;height: 45px;border-radius: 8px;margin-right: 15px\"> <\/p>\n<div style=\"flex: 1;line-height: 1.2\">\n<div style=\"font-weight: bold;font-size: 1.1em;color: #1a202c\">Plugin Specification<\/div>\n<p>                    <small style=\"color: #718096\">WordPress.org Official Data<\/small>\n                <\/div>\n<\/p><\/div>\n<table style=\"width: 100%;border-collapse: collapse;font-size: 14px\">\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;width: 35%;color: #4a5568;background: #fcfcfc\">Developer<\/th>\n<td style=\"padding: 12px 20px;font-weight: 500\"><a href=\"https:\/\/profiles.wordpress.org\/forlaens\/\" target=\"_blank\" rel=\"noopener\">Forl\u00e6ns<\/a><\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Version<\/th>\n<td style=\"padding: 12px 20px\">v1.0.18<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Active Installs<\/th>\n<td style=\"padding: 12px 20px\">0 +<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Requires \/ Tested<\/th>\n<td style=\"padding: 12px 20px\">5.8 \/ 7.0<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Last Updated<\/th>\n<td style=\"padding: 12px 20px\">2026-05-31 11:21am GMT<\/td>\n<\/tr>\n<tr>\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Official Link<\/th>\n<td style=\"padding: 12px 20px\"><a href=\"https:\/\/wordpress.org\/plugins\/forward-blogroll\/\" target=\"_blank\" style=\"text-decoration: none;color: #4a3bca;font-weight: bold\" rel=\"noopener\">View Details \u2192<\/a><\/td>\n<\/tr>\n<\/table><\/div>\n<div class=\"plugin-short-desc\" style=\"margin: 20px 0;padding: 12px 15px;background: #f9fafb;border-left: 4px solid #4a3bca;border-radius: 6px;font-style: italic;color: #4a5568\">Import selected RSS feeds into a local blogroll and display the newest external posts with a shortcode.<\/div>\n<p>Forward: Blogroll lets you follow selected blogs from inside WordPress. Add blog URLs or direct RSS feed URLs, validate them from the admin screen, import recent items, and display the newest external posts on any page with a shortcode.<\/p>\n<p>Imported items are stored in a dedicated internal post type, so external posts stay separate from your normal Posts archive.<\/p>\n<h4>Key features<\/h4>\n<ul>\n<li>Add blog URLs or direct RSS and Atom feed URLs from the WordPress admin.<\/li>\n<li>Discover feed URLs from site metadata and common feed paths.<\/li>\n<li>Validate feeds before importing.<\/li>\n<li>Choose how many recent posts are imported when a feed is first added.<\/li>\n<li>Check enabled feeds hourly with WP-Cron.<\/li>\n<li>Avoid duplicate imports using source, permalink, GUID, and publish date.<\/li>\n<li>Display imported posts with <code>[forward_blogroll]<\/code>.<\/li>\n<li>Includes bundled translation files for common languages.<\/li>\n<\/ul>\n<h4>Good for<\/h4>\n<ul>\n<li>Personal or team blogrolls.<\/li>\n<li>Curated reading pages.<\/li>\n<li>Publisher networks that want to highlight recent external posts.<\/li>\n<\/ul>\n<h3>Shortcode<\/h3>\n<p>Basic usage:<\/p>\n<pre><code>[forward_blogroll]\n<\/code><\/pre>\n<p>Limit the number of displayed items:<\/p>\n<pre><code>[forward_blogroll posts_per_page=\"10\"]\n<\/code><\/pre>\n<p>The <code>posts_per_page<\/code> value is capped at 100.<\/p>\n<p>Display items from one configured source:<\/p>\n<pre><code>[forward_blogroll source=\"source_id\"]\n<\/code><\/pre>\n<p>You can copy a source ID from the shortcode options table in the Blogroll admin screen.<\/p>\n<h3>External requests and stored data<\/h3>\n<p>Forward: Blogroll makes HTTP requests only to the blog and feed URLs you configure. It uses those requests to discover RSS or Atom feed URLs, validate feeds, and import new items during scheduled WP-Cron checks.<\/p>\n<p>For each imported item, the plugin stores the item title, source name, source feed URL, original permalink, publish date, duplicate-prevention fingerprints, and image URL when one is available. It does not copy full article content into normal WordPress posts.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Import selected RSS feeds into a local blogroll and display the newest external posts with a shortcode.<\/p>","protected":false},"author":1,"featured_media":9317,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[252],"tags":[2641,1098,989,759,1100,555],"class_list":["post-11418","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-trends","tag-blogroll","tag-feeds","tag-rss","tag-shortcode","tag-syndication","tag-wordpress-plugin"],"_links":{"self":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/11418","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/comments?post=11418"}],"version-history":[{"count":0,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/11418\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media\/9317"}],"wp:attachment":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media?parent=11418"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/categories?post=11418"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/tags?post=11418"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}