WP Manifestindependent plugin directory
manifest / social / auto-publisher

Auto Publisher

WordPress plugin: auto-share posts to X, LinkedIn, and Facebook

by Saeed Ahmad Malakzai · github.com/saeedahmadmalakzai/auto-publisher · website

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/saeedahmadmalakzai/auto-publisher/archive/refs/heads/main.zip

A WordPress plugin that shares new posts to X (Twitter), LinkedIn, and Facebook as soon as they go live—including posts that were scheduled ahead of time.

I built this for my own sites: I wanted something small, self-contained, and under my control—no third-party “social autopilot” SaaS holding the keys. Everything runs on your server, credentials stay in WordPress options, and you can see what happened in a simple publish log.

What it does

When a post moves to published, the plugin listens to WordPress’s transition_post_status hook (server-side, so it still runs if nobody has the editor open). It sends a sensible default share: title, excerpt, featured image when available, and the permalink. You can turn platforms on or off globally, and you can skip specific networks per post from the editor sidebar.

Each platform has a Test connection action in settings so you can verify keys and tokens before you rely on them.

Requirements

  • Self-hosted WordPress (not WordPress.com unless you have a plan that allows custom plugins).
  • PHP 7.4 or newer (tested in line with current WordPress recommendations).
  • Developer accounts and apps for whichever networks you enable (see below).

Install

  1. Clone this repo or download a release and place the folder in wp-content/plugins/ (the main file should be auto-publisher.php inside that folder).
  2. Activate Auto Publisher under Plugins.
  3. Open Auto Publisher in the admin menu and fill in only the networks you use.

API setup (you bring the keys)

The plugin does not register apps for you. You create apps in each provider’s developer console, then paste credentials here. Limits and pricing are whatever each platform offers at the time—check their docs.

X (Twitter) — OAuth 1.0a app with read/write; API key, API secret, access token, access token secret.

LinkedIn — OAuth 2.0 token with w_member_social, openid, and profile, plus your person URN (from GET /v2/userinfo or equivalent).

Facebook — Graph API posting is for Pages, not personal profiles. You need a Page access token with the right Page permissions, plus the Page ID.

Facebook’s own UI and policy text change often; if something fails, the Publish Log screen usually has the error message that points to a permission or token issue.

Usage

  1. Configure at least one network in settings.
  2. Publish or schedule a post as usual.
  3. Optionally use the Auto Publisher meta box to skip a network for that post only.
  4. Check Auto Publisher → Publish Log if a share did not show up where you expected.

Repository layout

auto-publisher.php          # Bootstrap, hooks
includes/
  class-social-publisher.php
  class-twitter-handler.php
  class-linkedin-handler.php
  class-facebook-handler.php
  class-admin-settings.php
  class-post-meta-box.php
  class-publish-log.php
assets/
  css/admin.css
  js/admin.js

License

GPL-2.0-or-later. See LICENSE.

Author

Saeed Ahmad Malakzaigithub.com/SaeedAhmadMalakzai

Issues and PRs are welcome; this is maintained in my spare time, so I may not reply instantly.