Automatically share your WordPress posts to LinkedIn and X (Twitter) the moment you hit publish.

Overview

Grow More Auto Social connects your WordPress site to LinkedIn and X (Twitter), automatically sharing new posts to your social profiles when you publish.

🔗 LinkedIn

  • ✓Personal profile publishing
  • ✓Company page publishing
  • ✓Publish to both simultaneously
  • ✓Independent category filters per target
  • ✓Featured image as thumbnail
  • ✓Auto-hashtags from post tags

𝕏 X (Twitter)

  • ✓Automatic tweet on publish
  • ✓280-character limit enforced
  • ✓Independent category filters
  • ✓Auto-hashtags from tags (up to 3)
  • ✓Customizable tweet template
  • ✓Live character counter

Requirements

Before you begin, make sure you have the following.

  • ✓WordPress 6.0 or higher
  • ✓PHP 7.4 or higher
  • ✓SSL certificate (HTTPS) — required for LinkedIn OAuth
  • ✓LinkedIn Developer account —developer.linkedin.com
  • ✓X Developer account with credits —developer.x.com(Free tier cannot post tweets)

1. Installation

Upload and activate the plugin in your WordPress dashboard.

  1. Open your Grow More dashboard
  2. Download the PluginDownload the growmore-auto-social.zip file.
  3. Upload to WordPressGo to Plugins → Add New → Upload Plugin. Choose the zip file and click Install Now.
  4. ActivateClick Activate Plugin. You’ll find the settings at Settings → Grow More Auto Social.

💡 Upgrading? Deactivate the old version → Delete it → Upload the new zip → Activate. All your settings, tokens, and logs are preserved.

2. LinkedIn Setup

Connect your LinkedIn account using OAuth 2.0 for secure, token-based authentication.

Create a LinkedIn App

  1. Go to LinkedIn Developer PortalVisit developer.linkedin.com and sign in with your LinkedIn account.
  2. Create an AppClick Create App. Fill in the app name (e.g., “My Site Social Publisher”), select your company page, and upload a logo.
  3. Add ProductsIn your app settings, go to the Products tab. Request access to:
    • Share on LinkedIn — for personal profile posting
    • Sign In with LinkedIn using OpenID Connect — for OAuth authentication
    • Community Management API — for company page posting (requires approval)
  4. Set the Redirect URLGo to the Auth tab. Under Authorized redirect URLs, add:https://yoursite.com/wp-admin/admin-ajax.php?action=gml_oauth_callbackReplace yoursite.com with your actual domain.
  5. Copy Your CredentialsCopy the Client ID and Client Secret from the Auth tab. You’ll enter these in the plugin.

Connect Your Account

  1. Enter CredentialsIn WordPress, go to Settings → Grow More Auto Social → LinkedIn tab. Paste your Client ID and Client Secret.
  2. Save & ConnectClick Save LinkedIn Settings, then click Connect to LinkedIn. You’ll be redirected to LinkedIn to authorize.
  3. AuthorizeGrant access on the LinkedIn consent screen. You’ll be redirected back with a “Successfully connected!” message showing your name.

Verify it works! Click the 🧪 Send Test Post button to publish a test post to your LinkedIn. You can delete it afterwards.

Company Page Setup

To also publish to your LinkedIn Company Page, you need the w_organization_social scope approved.

  1. Get ApprovalIn your LinkedIn app, request the Community Management API product. This may take hours to days for approval.
  2. Find Your Organization IDGo to your company page on LinkedIn. The URL contains your ID: linkedin.com/company/12345678
  3. Configure in PluginSet Publish Target to “Both” or “Company Page”. Enter the Organization ID. Click Save.
  4. ReconnectClick Disconnect, then Connect to LinkedIn again. The new OAuth flow will request the company scope.

3. X (Twitter) Setup

Connect your X account using OAuth 1.0a with static API keys.

Create an X Developer App

  1. Sign UpGo to developer.x.com and create a developer account. You need a plan with credits — the Free tier cannot post tweets.
  2. Create a Project & AppCreate a new Project, then create an App inside it.
  3. User Authentication SettingsGo to your App → Settings → User authentication settings → Set up:
    • App permissions: Select Read and write
    • Type of App: Select Web App, Automated App or Bot
    • Callback URI: Enter your site URL (e.g., https://yoursite.com/)
    • Website URL: Enter your site URL
  4. Generate KeysGo to the Keys and Tokens tab. You need all 4 keys:Key NameWhere to FindAPI KeyUnder “Consumer Keys” → RegenerateAPI Key SecretUnder “Consumer Keys” → RegenerateAccess TokenUnder “Authentication Tokens” → GenerateAccess Token SecretUnder “Authentication Tokens” → Generate

⚠️ X only shows keys once! Copy all 4 values from the popup immediately. If you close it, you’ll need to regenerate. Also: if you changed permissions after generating tokens, regenerate the Access Tokens too.

Enter Credentials

  1. Paste KeysIn WordPress, go to Settings → Grow More Auto Social → X (Twitter) tab. Paste all 4 keys.
  2. Save & VerifyClick Save X Settings, then Verify Connection. You should see “Connected as @yourusername”.
  3. Test ItClick 🧪 Send Test Tweet to verify the full pipeline. Delete the test tweet from X afterwards.

4. Configure Settings

Customize which posts get shared and how they appear on social media.

Categories & Filters

Each platform — and each LinkedIn target — has its own independent category filter.

👤 LinkedIn Personal Categories

Only posts in these categories will be shared to your personal LinkedIn profile. Leave all unchecked to share all categories.

🏢 LinkedIn Company Categories+

Only visible when Publish Target is “Company” or “Both”. Controls which categories go to your company page. Can differ from personal.

𝕏 X Categories

Independent from LinkedIn. Only posts in checked categories will be tweeted. Leave all unchecked for all.

💡 Example: You could share “FunderPro” and “Entrepreneurs” posts to your personal LinkedIn, only “FunderPro” to the company page, and all categories to X. Each target is evaluated independently.

Content Templates

Customize the text that appears when your post is shared. Use these placeholders:

PlaceholderReplaced With
{title}The post title
{excerpt}Post excerpt or auto-generated summary
{content}Post content (based on content mode setting)
{url}Post permalink
{author}Author display name

LinkedIn content modes:

ModeDescription
ExcerptWordPress excerpt or auto-trimmed (default)
First ParagraphFirst <p> block of the post
Custom LengthTrimmed to N words (configurable)
Full ContentEntire post up to 2,500 characters

Per-Post Controls

Every post editor includes a “🚀 Grow More — Social Publishing” meta box in the sidebar with options to:

⏭️ Skip Publishing

Check “Skip LinkedIn” or “Skip X” to prevent this specific post from being shared, even if it matches your category filters.

✏️ Custom Message

Override the global template with a custom message for this post. Supports the same {title}{url}, etc. placeholders.

5. Testing Your Setup

Verify everything works before relying on auto-publishing.

🧪 Test Post (LinkedIn)

Click Send Test Post on the LinkedIn tab. Publishes a real test post to your profile and/or company page. Delete it from LinkedIn afterwards.

🧪 Test Tweet (X)

Click Send Test Tweet on the X tab. Posts a real test tweet to your account. Delete it from X afterwards.

💡 Full pipeline test: Create a draft post in a category you have enabled, then click Publish. Check the Activity Log to see the result — you should see SUCCESS entries for each platform.

⚠️ Important: The plugin only shares on first publish — updating an existing published post will not trigger a re-share. This prevents duplicates on your social feeds.

6. Activity Log

The Activity Log tab shows the last 50 events with status badges so you always know what happened.

BadgeMeaning
SUCCESSPost was shared successfully to the platform.
ERRORSomething went wrong — check the message for details.
SKIPPEDPost was not shared due to a filter (category, per-post skip, post type). The message shows exactly why, including the category names involved.
RATE_LIMITEDAnother post was shared less than 10 seconds ago. This is a duplicate guard, not a usage limit.
SCHEDULEDPost is queued via WP-Cron with a publish delay. It will share once the delay elapses.
TESTA test post or test tweet sent from the settings page.

💡 Category skip messages are human-readable. For example: “LinkedIn (company): post categories [FunderPro (#57)] not in company filter [Entrepreneurs (#76)].” — you can immediately see which category you need to enable.

7. Token Management

LinkedIn tokens expire after ~60 days. The plugin monitors this automatically.

📧 Email Notifications

The site admin receives automatic emails at three escalating thresholds:

WhenEmail
14 days before expiryInformational reminder
7 days before expiryUrgent reminder
3 days before expiry⚠️ Critical warning
Expired🚨 Daily alert until reconnected

🔔 Dashboard Banner

A persistent notice appears on all WordPress admin pages when the token has fewer than 14 days remaining. The banner escalates in urgency:

  • Blue — 14 days remaining
  • Yellow — 7 days remaining
  • Red — 3 days or expired

🔄 How to Renew

Renewing takes about 30 seconds:

  1. Go to Settings → Grow More Auto Social → LinkedIn
  2. Click Disconnect
  3. Click Connect to LinkedIn
  4. Authorize on LinkedIn — done! Fresh 60-day token.

💡 X tokens don’t expire. Your X API keys are permanent unless you regenerate them in the X Developer Portal.

8. Troubleshooting

Common issues and how to fix them.

❌ “redirect_uri does not match” (LinkedIn)

The redirect URL in your LinkedIn app doesn’t match. Go to your LinkedIn app → Auth tab → ensure the redirect URL is exactly:
https://yoursite.com/wp-admin/admin-ajax.php?action=gml_oauth_callback

❌ “Invalid OAuth state” (LinkedIn)

Usually caused by caching plugins. The plugin uses wp_options instead of transients to avoid this. If it persists, temporarily disable your caching plugin while connecting.

❌ “Bummer, something went wrong” on Company target

The w_organization_social scope hasn’t been approved yet. Check your LinkedIn app’s Products tab for the approval status of “Community Management API”. Use Personal mode until approved.

❌ Post published but not shared

Check the Activity Log — it always records what happened. Common causes:

  • “Enable auto-publish” checkbox not ticked
  • Post category not in your enabled categories list
  • Post was already published before (only first publish triggers sharing)
  • Per-post skip was checked in the meta box
  • Post type not enabled (e.g., Page vs Post)

❌ “Unauthorized” on X

Usually means one of:

  • Your X Developer plan doesn’t include tweet posting (Free tier can’t post)
  • Keys are incorrect — regenerate all 4 keys and re-enter
  • Access Token was generated before you set “Read and write” permissions — regenerate it
  • App type is set to “Native App” instead of “Web App, Automated App or Bot”

❌ Scheduled post doesn’t fire

WP-Cron only runs when someone visits your site. For reliable timing, set up a real server cron:

*/5 * * * * wget -q -O /dev/null https://yoursite.com/wp-cron.php?doing_wp_cron

9. Security

Your credentials and data are protected at every level.

🔐 Encryption

All API secrets (LinkedIn Client Secret, X API Secret, Access Tokens) are encrypted with AES-256-CBC before database storage.

🔑 Custom Key

For maximum security, add a custom encryption key to wp-config.php:

define( ‘GML_ENCRYPTION_KEY’, ‘your-random-64-char-string’ );

🛡️ Access Control

All settings pages and actions require manage_options capability (Admin only). Every form uses WordPress nonce verification.

🧹 Clean Uninstall

Deleting the plugin removes all options, tokens, post meta, log tables, and scheduled events. No data is left behind.

Frequently Asked Questions

Can I share to LinkedIn and X simultaneously?

Yes. Enable auto-publish on both tabs, configure your category filters, and both platforms will fire when you publish a new post.

Will updating a published post re-share it?

No. Sharing only triggers on the first publish (draft/pending → publish). This prevents duplicate posts on your social feeds.

Can personal and company LinkedIn have different categories?

Yes. Each target has its own independent category filter. A post can be shared to personal but skipped on company (or vice versa) based on its categories.

What happens when my LinkedIn token expires?

Auto-publishing pauses and you’ll receive email notifications at 14, 7, and 3 days before expiry, plus a dashboard banner. Reconnecting takes 30 seconds.

Is the X/Twitter Free tier supported?

No. The X API Free tier does not allow posting tweets. You need a plan with credits (formerly the Basic plan at $200/mo).

Can I use the plugin on multiple sites?

Yes. Each WordPress installation has its own credentials and settings. You’ll need separate LinkedIn apps and X apps for each site.