Description
BulkPublish is a social media scheduler and auto poster for WordPress. Write your post, pick your social accounts in the editor sidebar, and share it now, schedule it for later, or let a rule auto publish every new post for you. You never leave WordPress.
The plugin connects your site to your BulkPublish account. A free plan is available, and one API key is all the setup it needs.
Share WordPress posts to 15 social networks
Connect your accounts once in BulkPublish, then publish to any of them from WordPress:
- Facebook Pages
- X (Twitter)
- LinkedIn profiles and company pages
- TikTok
- YouTube
- Threads
- Bluesky
- Mastodon
- Google Business Profile
- Telegram
- Discord
- Tumblr
- Snapchat
Auto post new content to social media
- Auto-share on publish. Turn it on for a post and it goes out to your chosen channels the moment the post is published.
- Automation rules. “When I publish a Post in these categories, send it to these channels.” Rules can target any post type, narrow by category, tag or any taxonomy, and publish immediately, create a draft, or hold the post for approval.
- Re-share updated posts. A rule can also fire on updates. A post is only shared again when its title, content, excerpt or featured image really changed, and at most once an hour, so a quick edit never spams your followers.
- Every post type. Posts, pages, WooCommerce products, portfolio items, events and any other public post type are picked up automatically, with their taxonomies, including types a plugin adds later. Password-protected posts are never shared.
Share and schedule from the Dashboard
- Share any post without opening it. Every post list in WordPress (Posts, Pages, Products and any other post type) gets a Social column showing what was already shared, with a Share button. Share opens the same composer the editor uses, filled in from that post, right under the row. The BulkPublish Dashboard offers the same across every post type at once.
- Search your content by title to find the post you want.
- Edit what is queued. Change the caption or the time of a draft or scheduled social post, or delete it, before it goes out.
- Next free slot. One click picks the next open time in your BulkPublish posting schedule.
Bulk publish
- Share many posts at once. Tick posts in any list (Posts, Pages, Products, or the BulkPublish Dashboard) and choose Share to social. Pick the channels and one caption template; every post still goes out with its own title, excerpt, link and featured image.
- Add to the queue. Send the selected posts into your next free posting slots, one post per slot.
- Reshare evergreen content. Filter for posts not shared in the last 30, 90 or any number of days, select them, share again.
- Retry failed, turn auto-share on or off, and on the Social posts tab approve, reject, delete, move a day or a week later, or spread across the next free slots, all for many posts at once.
- Run a rule on existing posts. Apply an automation rule to posts published before it existed, leaving out anything already shared.
- Safe by design. Every bulk run shows what it will do first, checks captions against each network’s limit and your plan’s remaining posts, handles up to 50 posts at a time, and reports each post’s result as it goes.
Schedule social media posts from the post editor
- Block editor sidebar panel and classic editor meta box. Both are filled in from your post: the title and excerpt become the caption, the featured image becomes the media.
- Publish now or schedule for later, in your site’s timezone.
- Caption templates with tokens. Drop %%title%%, %%excerpt%%, %%link%%, %%tags%%, %%categories%%, %%author%%, %%sitename%% and %%date%% into a caption to build a reusable recipe such as “New post: %%title%% %%link%%”. Tags become hashtags. Tokens are filled in when the post is actually sent, so a scheduled share always carries the current text.
- Per-network captions. Write a shorter version for X, a longer one for LinkedIn. Live character counters for every network warn you before you go over a limit.
- Images and video. Send the featured image, or pick any image or video from the Media Library.
See what happened to every post
- Dashboard in wp-admin. Lists your posts, pages and custom post types with what was shared, what is scheduled, what failed, and which rule will pick a post up next time.
- Per-channel status and errors, with a link to the live social post and one-click retry.
- Cost preview. See your remaining plan quota before you publish.
Built for teams, agencies and multi-author blogs
- Approval workflow. Tick “Require approval” to hold a social post until a teammate approves it. Approvers can approve or reject, with a reason, straight from the WordPress dashboard.
- Role aware. Authors only see and share their own content. Settings and automation rules are limited to administrators.
Who it is for
Bloggers who want every new article on social media without copy and paste. Publishers and news sites that cross-post headlines all day. WooCommerce stores promoting new products. Agencies and social media managers running client sites. Podcasters, churches, nonprofits and local businesses that need a simple way to keep their social profiles active.
Your API key stays on your server
The key is stored in your site’s database and used only for server-to-server requests. It is never sent to the browser.
External services
This plugin is a client for the BulkPublish service. It cannot publish to social networks on its own, and it needs a BulkPublish account and API key to do anything.
BulkPublish API (https://app.bulkpublish.com)
Used to list your connected social channels, read your plan usage, create, schedule, publish, retry, approve, reject and delete social posts, and upload the media you attach.
Requests are only made after an administrator saves an API key, and only when someone opens a BulkPublish screen, the editor panel or a post list with the Social column, shares a post, or a post is auto-shared on publish. After a share, and once after updating to 1.6.0, the plugin also checks that share’s status in the background (hourly, while it is still in progress). Nothing is sent for site visitors, and nothing is sent once the API key is removed.
Data sent: your API key (as an authorization header), the caption text (which can include the post title, excerpt, link, tags, categories, author display name, site name and date when you use those tokens), the image or video files you choose to attach, the channels and schedule you selected, your site’s timezone (when scheduling or picking the next free slot), the plugin version, and a random request ID used for troubleshooting.
- Terms of Service: https://www.bulkpublish.com/terms
- Privacy Policy: https://www.bulkpublish.com/privacy
Screenshots



Installation
- Install and activate the plugin.
- Create a free account at bulkpublish.com and connect your social accounts there.
- In BulkPublish, open Settings Developer and create an API key.
- In WordPress, go to BulkPublish Settings, paste the key and save. Your connected channels appear on the page.
- Open any post. Use the BulkPublish panel in the editor sidebar to share it now, schedule it, or turn on auto-share.
- Optional: go to BulkPublish Automations to auto post new content by post type and category.
FAQ
-
Do I need a BulkPublish account?
-
Yes. The plugin publishes through your BulkPublish account, which is where your social accounts are connected. A free plan is available at https://www.bulkpublish.com.
-
Is it free?
-
The plugin is free. BulkPublish has a free plan and paid plans with higher limits. See https://www.bulkpublish.com/pricing.
-
Facebook, Instagram, X (Twitter), LinkedIn, TikTok, YouTube, Pinterest, Threads, Bluesky, Mastodon, Google Business Profile, Telegram, Discord, Tumblr and Snapchat.
-
Yes, in two ways. Turn on Auto-share in the editor panel for a single post, or create a rule under BulkPublish Automations so every new post of a given type or category is shared without anyone touching the panel.
-
Does it work with the classic editor?
-
Yes. The block editor gets a sidebar panel and the classic editor gets a meta box with the same features.
-
Does it work with WooCommerce products and custom post types?
-
Yes. Enable any public post type under BulkPublish Settings. Custom post types and their taxonomies also appear in the automation rule builder.
-
Yes. Open any published post and share or schedule it from the panel. The Dashboard shows which of your posts were never shared.
-
Where do I get an API key?
-
In your BulkPublish account under Settings Developer. Paste it into the plugin’s Settings page.
-
Is my API key safe?
-
The key is stored in your site’s options and used only server-side. It is never sent to the browser.
-
Auto-share runs through WP-Cron, which only fires when your site receives visits. For prompt, reliable auto-sharing on a low-traffic site, disable WP-Cron’s page-load trigger and use a real cron job: add
define( 'DISABLE_WP_CRON', true );to wp-config.php and schedulewget -q -O - https://yoursite.com/wp-cron.php?doing_wp_cronevery minute (or the WP-CLI equivalent). -
What does a post cost?
-
Most networks are included in your plan and only count against your daily and monthly post quota. X uses credit-based pricing, where posts containing links cost significantly more than plain text. The panel shows a “Before you publish” table with the exact cost and your balance before you act.
-
Can I upload large videos from WordPress?
-
Media attached in WordPress is sent to BulkPublish in a single request, so uploads are limited to 100MB per file and by your host’s PHP memory and timeout settings. For larger videos, up to 1GB, upload the file in your BulkPublish media library and attach it to the post there.
-
What is “Require approval”?
-
BulkPublish teams can require a second pair of eyes before a post goes out. Tick “Require approval” and the post is held, even once its scheduled time passes, until someone with the owner, admin or approver role approves it. Approving an overdue post publishes it immediately. Rejecting sends it back to draft with an optional reason. If your own role cannot publish, approval is required automatically.
-
Is the source code available?
-
Yes. The unminified JavaScript source lives in the
src/folder of the plugin. Runnpm install && npm run buildto rebuildbuild/with @wordpress/scripts. -
Can developers extend it?
-
Yes. Filters include
bulkpublish_post_types,bulkpublish_shareable_post_types,bulkpublish_manage_capability,bulkpublish_approve_capability,bulkpublish_caption_tokens,bulkpublish_caption_token_value,bulkpublish_update_reshare_cooldownandbulkpublish_max_upload_bytes. -
Anyone who can publish posts can share a post they are allowed to edit, from that post’s editor or from the Dashboard. Every share comes from a WordPress post: there is no way to send a share that is not tied to one, for any role. Authors see and edit only the social posts made from their own content; the whole account’s list needs the management capability (
manage_optionsby default, changeable with thebulkpublish_manage_capabilityfilter). -
Where do the network icons come from?
-
The icons in
assets/img/platforms/are from Simple Icons 11.15.0 (https://simpleicons.org), released under CC0 1.0 Universal. Details are inassets/img/platforms/LICENSE.md. The icons depict trademarks of their respective owners and are used only to identify the network a post is sent to.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“BulkPublish – Blog to Social & Auto Poster” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “BulkPublish – Blog to Social & Auto Poster” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.6.0
- Bulk actions: share or queue many posts at once with one caption template, retry failed shares, turn auto-share on or off, and approve, reject, reschedule or delete many social posts.
- Filter any post list by social state: not shared, published, needs attention, scheduled, or not shared in a number of days.
- Run an automation rule on posts published before it existed.
- The Social column links to each published post on every network, and shows partly failed, unconfirmed, awaiting-approval and removed shares.
- Share straight from the Posts, Pages and custom post type lists: a Social column shows what was shared, with a Share button that opens the composer under the row.
- Every BulkPublish screen now looks and works like the rest of WordPress: list tables, standard settings page, admin notices and your admin colour scheme.
- Share any post, page or custom post type from the Dashboard: a Share action on every row opens the composer for that post.
- Search the Dashboard’s content list.
- Edit the caption or time of a draft or scheduled social post from the Dashboard.
- “Use next free slot” picks the next open time in your posting schedule, in the Dashboard and in the editor.
- The editor panel and auto-share now cover every post type by default, including ones added later. Sites that had chosen post types keep their choice.
- Only public post types can be shared, so private record types that other plugins add (orders, coupons, form entries) never reach a social network.
- Password-protected, trashed and draft-in-progress posts are never shared, and a post is checked again at the moment an auto-share is sent.
- A “when first published” rule now fires only when a post is first published, never on a later edit, Quick Edit, bulk edit or import of an older post.
- Re-share on update waits for the post’s text to change and for the cooldown, like rule re-shares.
- A failed auto-share is no longer re-sent by the next save; use Retry.
- “Turn auto-share off” now also stops automation rules for those posts.
- Auto-share settings on a post are only acted on when they were set by someone allowed to share.
- A post held for approval, or already approved, can only be changed by someone who can approve.
- Sharing a post can use that post’s own featured image and media even when someone else uploaded them.
- Fixed captions with quotes, line breaks or accented letters being lost when saved from the classic editor or a bulk action.
- Captions show “&” and other characters as typed, not as HTML entities.
- A rule filtered by a taxonomy that no longer exists no longer matches every post.
- Scheduling a share for a time in the past is refused.
- Translations now load for the plugin’s screens.
- Every share must come from a WordPress post, for every role.
- Removed channel sets from the channel picker.
- The link added to a caption is always the post’s own permalink.
1.5.6
- Every share must now come from a WordPress post you can edit. Only site managers can send a share that is not tied to a post.
- Documented the source and license (CC0 1.0) of the bundled network icons.
- Removed the Reddit icon.
1.5.5
- Approving or rejecting a post now requires permission to approve, instead of permission to publish.
- Reading, deleting or retrying a social post is limited to the WordPress post it was shared from, unless you administer the site.
- The social post list shows only the posts shared from content you can edit.
- Sending a media file to your account now requires permission to edit that file.
- Everything typed into the editor panel and into automation rules is checked field by field before it is saved or sent.
1.5.4
- New plugin name: BulkPublish – Blog to Social & Auto Poster.
1.5.3
- The Dashboard content list and the share endpoint now follow WordPress edit permissions, so authors only see and share their own content.
- Pending auto-share events are cleared when the plugin is deactivated or deleted.
- Documented the external services the plugin talks to.
1.5.2
- API errors carry a request ID to make troubleshooting with support faster.
- Connection failures are reported correctly instead of as a generic error.
1.5.1
- Character counters and the pre-publish length check now cover Discord, Telegram, Tumblr and Snapchat.
- Snapchat channels show the Snapchat icon.
1.5.0
- Automations moved to their own screen.
- Rules can fire on updates as well as first publish, only when the post really changed and at most once an hour.
- Custom post types and their taxonomies are picked up automatically.
- The post editor is now the only composer. The Dashboard is the plugin’s home screen.
1.4.0
- Automation rules: share by post type, category, tag or any taxonomy, with a caption template per rule.
- Dashboard Content tab listing your site’s content and what was shared.
1.3.0
- New channel selector with Channel Sets.
- The media field follows the post’s featured image.
- Caption tokens with a live preview.
1.2.0
- Team approval: require approval, approve and reject from wp-admin.
1.1.0
- Channel Sets.
1.0.0
- Initial release: editor panel, publish and schedule, auto-share, per-network captions, status and retry.
