
內容簡介
EG Social Timeline 是一款能夠將來自十個不同社交平台的公開帖子按時間順序聚合並顯示在單一時間軸上的 WordPress 外掛,透過簡碼輕鬆整合。
【主要功能】
• 支援多個社交平台的公開帳號
• 互動式平台過濾器,無需 JavaScript
• 可配置的快取時間(30 分鐘至 24 小時)
• 獨立配置時間軸和卡片背景顏色
• 響應式設計,適合各種設備顯示
外掛標籤
開發者團隊
原文外掛簡介
EG Social Timeline aggregates in chronological order your public posts from ten sources and displays them in a single timeline via shortcode.
Supported platforms
Mastodon, and the Mastodon-compatible Pleroma and Akkoma (public accounts API, no authentication)
GoToSocial (public RSS feed of the profile, which the account owner turns on in the settings: public posts and images, no interaction counts)
Friendica (public Atom feed of the profile: posts and images, no interaction counts)
Bluesky (public API, no authentication required)
Pixelfed (public Atom feed: photos and captions, no interaction counts)
PeerTube (public REST API, videos from an account or from a channel)
Forgejo and Gitea (commits from your public repositories)
Lemmy, on any instance (public user RSS feed)
ListenBrainz (public API, no token: what you have been listening to)
Any RSS 2.0 or Atom feed: a blog, a newsletter, a podcast
Every platform is configured the same way: the instance URL plus your username. There are two exceptions: Bluesky, because its public API lives at a single address for everyone, and the RSS or Atom source, which takes the address of the feed.
Key features
Interactive per-platform filters, no JavaScript required
Image previews wherever the source carries one: Mastodon, GoToSocial, Friendica, Bluesky, Pixelfed, PeerTube thumbnails and images found in a feed (optional, per source)
Per-platform configurable limits for a balanced mix
Interaction stats: likes, boosts, comments
Configurable cache (30 minutes – 24 hours)
Timeline and card backgrounds configurable independently, each with its own color
Text, borders and icons derived from the contrast of the color you pick, so they stay readable
List or grid layout, set in the settings or page by page with the shortcode
Filter bar visible, collapsible or hidden, with its own background: neutral, transparent, following the visitor browser or a custom color
Responsive design
Shortcode with optional limit, layout and filters parameters
Modular and customizable SVG icons
Privacy-friendly: public data only, no trackers
Usage
Configure the profiles in the settings, then insert the shortcode:
[eg_social_timeline]
Optional attributes, each overriding its setting for that page only:
limit — 1 to 100, how many posts reach the page. Default: Timeline → Number of Posts to Show.
layout — list or grid. Default: Appearance → Layout.
filters — visible, collapsed or hidden. Default: Filter Bar → Display.
Examples:
[eg_social_timeline limit="20"]
[eg_social_timeline layout="grid" limit="20" filters="collapsed"]
Several timelines can share a page, for example one in a widget and one in the content: each keeps its own filters.
Privacy
Retrieves only public posts from the configured platforms
No user tracking
No data sent to third parties
Local cache in the WordPress database
No cookies set by the plugin
External services
This plugin connects only to the platforms and feeds the administrator explicitly configures in the settings, one section per source below. No external service is contacted until at least one source has been filled in. All requests are HTTP GET requests for public content; no user credentials are ever sent.
Contacted services are cached locally for a configurable duration (30 minutes to 24 hours, default value depends on the admin setting) to minimize external traffic.
Mastodon
What: the Mastodon, Pleroma or Akkoma instance whose URL the user enters in the settings (e.g. https://mastodon.uno).
When: each time the timeline cache expires and a page containing the shortcode is rendered.
Endpoints: GET /.well-known/nodeinfo and the linked nodeinfo document (to read which software the instance runs, cached 7 days), GET /api/v1/accounts/lookup (account ID lookup, cached 30 days) and GET /api/v1/accounts/{id}/statuses (public statuses).
Data sent: only the public username/handle entered in the settings, as a URL parameter.
Data received and stored: public post metadata (text, date, link, media preview URL and alt text if image previews are enabled, like/boost/reply counts). Cached locally as a WordPress transient.
Mastodon is decentralized: terms of service and privacy policy depend on the specific instance the user chooses and are available on that instance.
Bluesky
What: the Bluesky public API at https://public.api.bsky.app.
When: each time the timeline cache expires and a page containing the shortcode is rendered.
Endpoint: GET https://public.api.bsky.app/xrpc/app.bsky.feed.getAuthorFeed?actor={handle}.
Data sent: only the public handle entered in the settings (e.g. username.bsky.social).
Data received and stored: public post metadata (text, date, link, image preview URL and alt text if image previews are enabled, like/repost/reply counts). Cached locally as a WordPress transient.
Terms of service: https://bsky.social/about/support/tos
Privacy policy: https://bsky.social/about/support/privacy-policy
PeerTube
What: the PeerTube instance the user enters in the settings (e.g. https://peertube.uno).
When: each time the timeline cache expires and a page containing the shortcode is rendered.
Endpoints: GET /api/v1/accounts/{account}/videos and GET /api/v1/video-channels/{channel}/videos for the public videos of an account or of a channel.
Data sent: only the public account name entered in the settings, as part of the URL path.
Data received and stored: public video metadata (title, description, date, link, thumbnail URL and like count). Cached locally as a WordPress transient.
PeerTube is decentralized federated video hosting: terms of service and privacy policy depend on the specific instance the user chooses and are available on that instance.
Forgejo / Gitea
What: the Forgejo or Gitea instance the user enters in the settings (e.g. https://git.example.com).
When: each time the timeline cache expires and a page containing the shortcode is rendered.
Endpoints: GET /api/v1/users/{username}/repos and GET /api/v1/repos/{owner}/{repo}/commits for the user’s public repositories.
Data sent: only the public username entered in the settings, as a URL parameter.
Data received and stored: public commit metadata (message, date, repository name, commit hash and link). Cached locally as a WordPress transient.
Forgejo and Gitea are open-source git hosting platforms. Their terms of service and privacy policy depend on the specific instance the user chooses and are available on that instance.
GoToSocial
What: the GoToSocial instance the user enters in the settings (e.g. https://gts.example.org).
When: each time the timeline cache expires and a page containing the shortcode is rendered, plus once when the settings are saved or the “Verify profiles” button is used.
Endpoints: GET /@{username}/feed.rss, the public RSS feed of the profile, which the account owner must turn on. When the settings are saved, also GET /.well-known/webfinger?resource=acct:{username}@{domain}, to find the server that hosts the account when its domain is different.
Data sent: only the public username entered in the settings, as part of the URL.
Data received and stored: public post metadata (text, date, link and image URL if image previews are enabled) parsed from the public RSS feed. Cached locally as a WordPress transient.
GoToSocial is decentralized: terms of service and privacy policy depend on the specific instance the user chooses and are available on that instance.
Friendica
What: the Friendica instance the user enters in the settings (e.g. https://friendica.example.org).
When: each time the timeline cache expires and a page containing the shortcode is rendered, plus once when the settings are saved or the “Verify profiles” button is used.
Endpoint: GET /feed/{nickname}/, the public Atom feed of the profile.
Data sent: only the public nickname entered in the settings, as part of the URL path.
Data received and stored: public post metadata (title, text, date, link, image URL and its description if image previews are enabled) parsed from the public Atom feed. Cached locally as a WordPress transient.
Friendica is decentralized: terms of service and privacy policy depend on the specific instance the user chooses and are available on that instance.
Pixelfed
What: the Pixelfed instance the user enters in the settings (e.g. https://pixelfed.uno).
When: each time the timeline cache expires and a page containing the shortcode is rendered, plus once when the settings are saved or the “Verify profiles” button is used.
Endpoint: GET /users/{username}.atom, the public Atom feed of the profile.
Data sent: only the public username entered in the settings, as part of the URL path.
Data received and stored: public post metadata (caption, date, link, photo URL and alt text if image previews are enabled) parsed from the public Atom feed. Cached locally as a WordPress transient.
Pixelfed is decentralized: terms of service and privacy policy depend on the specific instance the user chooses and are available on that instance.
ListenBrainz
What: the ListenBrainz API the user enters in the settings (by default https://api.listenbrainz.org).
When: each time the timeline cache expires and a page containing the shortcode is rendered, plus once when the settings are saved or the “Verify profiles” button is used.
Endpoint: GET /1/user/{username}/listens, the public listens of the account. No token is sent.
Data sent: only the public username entered in the settings, as part of the URL path.
Data received and stored: artist, track, album, listen timestamp and the recording identifier when present, used to link the track page on ListenBrainz. Cached locally as a WordPress transient.
Privacy policy: https://metabrainz.org/privacy — terms: https://metabrainz.org/social-contract
RSS or Atom feed
What: the feed address the user enters in the settings; it can be any site.
When: each time the timeline cache expires and a page containing the shortcode is rendered, plus once when the settings are saved or the “Verify profiles” button is used.
Endpoint: a GET request to the address itself.
Data sent: nothing beyond the request for the feed.
Data received and stored: title, link, summary, date and, when present, the item’s image. Cached locally as a WordPress transient.
Terms and privacy policy depend on the site the user chooses.
Lemmy
What: the Lemmy instance the user enters in the settings (e.g. https://diggita.com).
When: each time the timeline cache expires and a page containing the shortcode is rendered.
Endpoint: GET /feeds/u/{username}.xml, the public user RSS feed. It exists only on the instance where the account is registered.
Data sent: only the public username entered in the settings, as part of the URL path.
Data received and stored: public post metadata (title, link, date, vote and comment counts) parsed from the public RSS feed. Cached locally as a WordPress transient.
Lemmy is decentralized: terms of service and privacy policy depend on the specific instance the user chooses and are published by that instance.
Privacy Policy
EG Social Timeline retrieves only public content from the configured platforms. It does not track site visitors, does not send data to third-party services, and does not set cookies. The cache is local to the WordPress database.
Support
Repository: https://git.emanuelegori.uno/emanuelegori/eg-social-timeline
Issues: https://git.emanuelegori.uno/emanuelegori/eg-social-timeline/issues
