{"id":398909,"date":"2026-11-09T09:59:31","date_gmt":"2026-11-09T09:59:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/sentrixa-social\/"},"modified":"2026-11-09T09:59:18","modified_gmt":"2026-11-09T09:59:18","slug":"sentrixa-social","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/sentrixa-social\/","author":23584213,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.1","stable_tag":"1.3.1","tested":"7.1.4","requires":"6.2","requires_php":"8.0","requires_plugins":null,"header_name":"Sentrixa Social","header_author":"Sentrixa","header_description":"Automatically shares new posts to social media (Mastodon, Bluesky, X, Facebook Pages, Instagram, Threads, LinkedIn) when they are published. Mastodon, Bluesky and X connect with pasted credentials; Facebook, Instagram, Threads and LinkedIn connect through the Sentrixa relay so no developer app is needed on this site.","assets_banners_color":"14143a","last_updated":"2026-11-09 09:59:18","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/sentrixa.co.uk\/wordpress-plugins\/","header_author_uri":"https:\/\/sentrixa.co.uk","rating":0,"author_block_rating":0,"active_installs":0,"downloads":77,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["changelog","description"],"tags":{"1.3.1":{"tag":"1.3.1","author":"sentrixa","date":"2026-11-09 09:59:18","revision":3792208}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3792208,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3792208,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3792208,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3792208,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.3.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3792208,"resolution":"1","location":"assets","locale":"","width":1090,"height":940},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3792208,"resolution":"2","location":"assets","locale":"","width":1090,"height":607},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3792208,"resolution":"3","location":"assets","locale":"","width":608,"height":746}},"screenshots":{"1":"Settings: choose which posts are shared, the default message and your connected networks.","2":"Activity log: every share with its status and a link to the post on the network.","3":"The Share to social box in the editor: choose networks, write a custom message, or skip sharing for a post."}},"plugin_section":[],"plugin_tags":[2015,569,324,154,1540],"plugin_category":[56],"plugin_contributors":[286090],"plugin_business_model":[],"class_list":["post-398909","plugin","type-plugin","status-publish","hentry","plugin_tags-auto-post","plugin_tags-automation","plugin_tags-sharing","plugin_tags-social-media","plugin_tags-social-sharing","plugin_category-social-and-sharing","plugin_contributors-sentrixa","plugin_committers-sentrixa"],"banners":{"banner":"https:\/\/ps.w.org\/sentrixa-social\/assets\/banner-772x250.png?rev=3792208","banner_2x":"https:\/\/ps.w.org\/sentrixa-social\/assets\/banner-1544x500.png?rev=3792208","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/sentrixa-social\/assets\/icon-128x128.png?rev=3792208","icon_2x":"https:\/\/ps.w.org\/sentrixa-social\/assets\/icon-256x256.png?rev=3792208","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/sentrixa-social\/assets\/screenshot-1.png?rev=3792208","caption":"Settings: choose which posts are shared, the default message and your connected networks."},{"src":"https:\/\/ps.w.org\/sentrixa-social\/assets\/screenshot-2.png?rev=3792208","caption":"Activity log: every share with its status and a link to the post on the network."},{"src":"https:\/\/ps.w.org\/sentrixa-social\/assets\/screenshot-3.png?rev=3792208","caption":"The Share to social box in the editor: choose networks, write a custom message, or skip sharing for a post."}],"raw_content":"<!--section=changelog-->\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>WordPress.org review pass: every function, class, constant, option, post meta key, cron event, database table and CSS class now carries the unique <code>sxsoc<\/code> prefix (was <code>sxs<\/code>). Existing installs carry their settings, connected accounts, per-post choices, share log and pending queue over automatically.<\/li>\n<li>Request input is now unslashed and sanitised everywhere it is read (settings screen, OAuth return, disconnect link, post box nonce).<\/li>\n<li>Removed the unused translation-file loader (WordPress loads translations for hosted plugins itself).<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>New shared Sentrixa site profile (Settings &gt; Sentrixa site): business details, social profiles and Search Console \/ webmaster codes are entered once and shared by every Sentrixa plugin. On update, anything this plugin already held is copied into it; nothing is overwritten.<\/li>\n<\/ul>\n\n<h4>1.2.4<\/h4>\n\n<ul>\n<li>Shared licence-state check (used by the other Sentrixa plugins).<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>New Settings &gt; Sentrixa licence page (Sentrixa edition) to enter and check the licence key.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Sentrixa-edition updates now require the site's Sentrixa licence key (constant SENTRIXA_LICENSE_KEY or option sentrixa_license_key).<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Code-quality pass for WordPress.org: database queries use identifier placeholders, WordPress file APIs, translator comments. Requires WordPress 6.2 or newer. Tested up to WordPress 7.1.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Two editions from one source: the WordPress.org edition posts to Mastodon, Bluesky and X; the Sentrixa edition adds Facebook Pages, Instagram, Threads and LinkedIn through the Sentrixa relay, and the self-hosted updater.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Bluesky: shrink the link-card thumbnail to fit atproto's 1 MB blob limit\n(large PNG featured images were rejected).<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added X (Twitter, pasted OAuth 1.0a keys), Instagram and Threads (both\nthrough the Sentrixa relay). Relay-vs-pasted is now a per-driver flag.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release. Mastodon, Bluesky, Facebook Pages, LinkedIn. Per-post\ncontrol, templated messages, encrypted tokens, retrying queue, activity log.<\/li>\n<\/ul>\n\n<!--section=description-->\n<p>Automatically shares new WordPress posts to your social media accounts, with no trial period and no paywall on the included features.<\/p>\n\n<h3>What it does<\/h3>\n\n<p>When a post is published for the first time, it is shared to the networks\nyou have connected:<\/p>\n\n<ul>\n<li><strong>Mastodon<\/strong> \u2014 paste one access token, works immediately.<\/li>\n<li><strong>Bluesky<\/strong> \u2014 paste a handle + app password, works immediately.<\/li>\n<li><strong>X (Twitter)<\/strong> \u2014 paste the four OAuth 1.0a keys from the X developer\nportal, works immediately. No broker.<\/li>\n<li><strong>Facebook Page<\/strong> \u2014 one click \"Connect\" through the Sentrixa relay. No\nFacebook developer app on this site.<\/li>\n<li><strong>Instagram<\/strong> (professional account linked to a Facebook Page) \u2014 via the\nrelay. Needs a featured image; the caption carries no clickable link.<\/li>\n<li><strong>Threads<\/strong> \u2014 via the relay (its own Meta OAuth).<\/li>\n<li><strong>LinkedIn<\/strong> (profile or organisation Page) \u2014 same, via the relay.<\/li>\n<\/ul>\n\n<p>Each post has a \"Share to social\" box: pick the networks, edit the message\njust for that post, hold it back, or push it out again by hand.<\/p>\n\n<h3>How the message is built<\/h3>\n\n<p>A template with tokens, set site-wide and overridable per network and per\npost:<\/p>\n\n<p>{title} {excerpt} {link} {hashtags} {tags} {author} {sitename} {date} {categories}<\/p>\n\n<p>The featured image is attached where the network supports it. On Facebook and\nLinkedIn the link becomes a preview card, so {link} is removed from their\ntext automatically. Text is trimmed to each network's length limit by\nshortening {excerpt} only \u2014 the link is always kept whole.<\/p>\n\n<h3>Setup<\/h3>\n\n<ol>\n<li><strong>Settings \u2192 Sentrixa Social.<\/strong><\/li>\n<li>Under each network, tick \"Enable\", add its credentials (or click Connect),\nthen \"Test connection\".<\/li>\n<li>Tick \"On by default for new posts\" for the networks that should be\npre-selected on the editor.<\/li>\n<li>Choose which post types and (optionally) categories are shared.<\/li>\n<\/ol>\n\n<p><strong>Mastodon token:<\/strong> on your instance, Preferences \u2192 Development \u2192 New\napplication, scopes <code>write:statuses<\/code> and <code>write:media<\/code>, then copy\n\"Your access token\".<\/p>\n\n<p><strong>Bluesky app password:<\/strong> Settings \u2192 Privacy and security \u2192 App passwords \u2192\nAdd App Password. Use that, not your account password.<\/p>\n\n<p><strong>Facebook \/ LinkedIn:<\/strong> click Connect and authorise. The Sentrixa relay\n(social-relay.sentrixa.co.uk) holds the reviewed platform apps and the OAuth\ntokens; this site only ever stores an opaque connection id, and never sees a\nFacebook or LinkedIn token.<\/p>\n\n<h3>Sending<\/h3>\n\n<p>Publishing does not wait on the social APIs \u2014 shares are queued and sent by\nWP-Cron within about a minute. If the site has WP-Cron disabled, use\n<strong>Settings \u2192 Social Activity \u2192 \"Send pending now\"<\/strong>, or wire the queue hook\n    sxsoc_work_queue into real cron. Failed sends retry with backoff (1m, 5m,\n20m, 1h, 3h) up to six attempts; everything is on the Activity screen.<\/p>\n\n<h3>Security<\/h3>\n\n<ul>\n<li>Mastodon \/ Bluesky tokens are encrypted at rest (libsodium, key derived\nfrom the site's auth salts).<\/li>\n<li>Facebook \/ LinkedIn tokens never touch this site \u2014 they live on the relay.\nRequests to the relay are HMAC-signed with a per-site secret, so a leaked\nconnection id alone cannot post.<\/li>\n<li>Only users with <code>manage_options<\/code> can change settings or connect accounts.<\/li>\n<\/ul>\n\n<h3>Filters<\/h3>\n\n<ul>\n<li><code>sxsoc_relay_url<\/code> \u2014 override the relay base URL (staging).<\/li>\n<li><code>sxsoc_network_drivers<\/code> \u2014 add or remove network drivers.<\/li>\n<li><code>sxsoc_rendered_message<\/code> \u2014 final say over the outgoing text.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>Sentrixa Social sends your posts only to the networks YOU connect. Nothing is sent until you add an account and enable the network:<\/p>\n\n<ul>\n<li><strong>Mastodon<\/strong>: the instance address you enter (for example https:\/\/mastodon.social). Sent: the post text, link and optionally the image. Terms and privacy are those of your instance.<\/li>\n<li><strong>Bluesky<\/strong>: bsky.social (or the server you enter). Sent: the post text, link and optionally the image. https:\/\/bsky.social\/about\/support\/tos and https:\/\/bsky.social\/about\/support\/privacy-policy<\/li>\n<li><strong>X (Twitter)<\/strong>: api.x.com, using the API keys you create. Sent: the post text and link. https:\/\/x.com\/en\/tos and https:\/\/x.com\/en\/privacy<\/li>\n<\/ul>","raw_excerpt":"Automatically shares new WordPress posts to your social media accounts, with no trial period and no paywall on the included features.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/398909","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=398909"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/sentrixa"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=398909"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=398909"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=398909"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=398909"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=398909"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=398909"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}