Want to take your software engineering career to the next level? Join the mailing list for career tips & advice Click here


WordPress plugin that lets you use Discourse as the community engine for a WordPress blog

Subscribe to updates I use wp-discourse

Statistics on wp-discourse

Number of watchers on Github 410
Number of open issues 23
Average time to close an issue 20 days
Main language PHP
Average time to merge a PR 3 days
Open pull requests 33+
Closed pull requests 21+
Last commit over 2 years ago
Repo Created over 7 years ago
Repo Last Updated over 2 years ago
Size 3.96 MB
Homepage http://www.discou...
Organization / Authordiscourse
Latest Release0.7.0
Page Updated
Do you use wp-discourse? Leave a review!
View open issues (23)
View wp-discourse activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
Evaluating wp-discourse for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

WP Discourse

OpenCollective OpenCollective

Note: the wp-discourse plugin requires >= PHP-5.4.0.

The WP Discourse plugin acts as an interface between your WordPress site and your Discourse community.

Use Discourse for comments:

  • Automatically creates a forum topic for discussion when a new blog post is published.
  • Associates WP author accounts with their respective Discourse accounts. Does not require SSO.
  • Replies from the forum discussion can be embedded in the WP blog post. Select which replies to display based on post score and commenter trust level -- see docs.

See it live

Single Sign On

The plugin also comes with optional SSO functionality which lets you use your WordPress site as the Single Sign On provider for your Discourse forum.

This will override Discourse's native (and powerful) login flow and is only recommended for use cases that strictly require such a setup, e.g. a site that is already using WordPress for large scale user management.



From your WordPress dashboard

  1. Visit 'Plugins > Add New'
  2. Search for 'WP Discourse'
  3. Activate WP Discourse from your Plugins page

From wordpress.org

  1. Download WP Discourse
  2. Upload the 'wp-discourse' directory to your '/wp-content/plugins/' directory
  3. Activate WP Discourse from your Plugins page

With Composer

If you're using Composer to manage WordPress, add WP-Discourse to your project's dependencies. Run:

composer require discourse/wp-discourse ~1.3.2

Or manually add it to your composer.json:

  "require": {
    "php": ">=5.4.0",
    "discourse/wp-discourse": "~1.3.2"

For more detailed instructions please see the setup page of the wp-discourse wiki

Frequently Asked Questions

Does this plugin install Discourse for me?

No this plugin acts as an interface between Discourse and WordPress. For it to work you will need to first set up Discourse forum. You can install Discourse for yourself following either of these guides:

Can I import old WordPress comments as Discourse comments (i.e. replies)?


Do WordPress and Discourse have to be installed on the same server?

The plugin uses the Discourse API, so your forum and blog can be hosted separately and the integration will still work. In fact, we strongly recommend hosting the two applications separately, since their hosting requirements are very different.

Is it possible to customize the comment templates?

Yes, the html templates used for publishing posts on Discourse and for displaying comments on WordPress can be customized in your theme. This is done by hooking into the filters that are applied to each template.

For more details on template customization, take a look at this section of our wiki: Template Customization


  1. Fork this repo
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new pull request
wp-discourse open issues Ask a question     (View All Issues)
  • almost 4 years comment form on wordpress site ? impossible?
  • almost 4 years Is it possible to translate the messages?
  • almost 4 years Why recent releases available from wordpress.org are not tagged in the git repo?
  • almost 4 years get_date_from_gmt not working if non-GMT times are used
  • almost 4 years Feature Request - SSO fills in discourse_username
  • almost 4 years update from 0.6.6 to 0.7.0 failed
  • about 4 years Point all post to the same topic at Discourse
  • over 4 years Possible to throttle calls?
  • over 4 years Feature request - trust level in wordpress profile
  • about 5 years Can a deleted user be re-added?
  • about 5 years Feature Request - Click to Comment button should go to bottom of the thread....
  • about 5 years Strip shortcodes
  • about 5 years Feature Request - Option to Include Comment Redirect For Unsync'd Posts
  • about 5 years Old WP posts being republished to Discourse
  • about 5 years Handling of escape characters in titles
  • about 5 years Emoji image broken
  • about 5 years Can't connect to a discourse instance with http auth basic
  • about 5 years Comment counts not synced
  • over 5 years sync.php?
  • over 5 years license confusion - GPL v2 or v3?
  • over 5 years manually sync comments and discourse permalinks
  • almost 6 years Warning displayed and no new topic created when post automatically created via scheduling
  • about 6 years errors accessing comments on a closed forum
  • over 6 years Discourse URL Change Doesn't Update Links
  • over 6 years Shortcodes for Discourse
  • over 6 years Publishing Doesn't Work After Upgrading to Latest Discourse Version
  • over 6 years Plugin overrides Theme settings on comments link
  • almost 7 years Reply count shows as -1 when Discourse can't be accessed.
  • about 7 years Need minimum length check
  • about 7 years Add CSS styles for comments to the plugin
wp-discourse open pull requests (View All Pulls)
  • Allow choosing Discourse category per post
  • Update Discourse post on WP post update
  • Allow redirect to Discourse without login
  • Choose discourse category per post
  • Better method for including comments script and other small tweaks
  • Fix typo in localization variable
  • WIP: sanitize comment template output
  • WIP: Move templates out of options
  • WIP: add notices to indicate connection status
  • add type argument to text input method
  • FIX: use cached categories when there is a configuration error
  • WIP: validate settings
  • Add .mention-bot config file
  • [WIP]: Handle bad response from Discourse
  • Feature [WIP]: Comment stats for top of reply area
  • FEATURE [WIP]: optionally include subcategories in category dropdown
  • FEATURE: use WordPress excerpt if there is one
  • [WIP] alpha branch
  • WordPress coding standards admin.php
  • WordPress coding standards comments.php
  • WordPress coding standards settings-validator.php
  • [WIP] Use a meta-box for getting and saving the meta-data
  • Delete the sync.php file
  • WIP: 1.0.0 release
  • WIP: Ajax content
  • Use Discourse instance as a SSO provider
  • Allow existing topics as comments
  • Create github issue template
  • Wp standard autoload
  • Display metabox only if the user is allowed to publish a post
  • Added `featured_link` as params & DRY
  • Semantic issue
  • Added useful parameters to the excerpt filter
wp-discourse list of languages used
wp-discourse latest release notes
0.7.0 0.7.0
  • Move templates out of options (#194)
  • Validate settings (#189)
  • Add notices to indicate connection status (#193)
  • Sanitize admin options page (#196)
  • Sanitize comment template output (#195)
  • Add type argument to text input method (#192)
  • Use cached categories when there is a configuration error (#191)
  • Fix name property not available in participants array (#187)
  • Use wp_get_current_user (#185)
  • Fix add_query_arg undefined offset notice (#184)
  • Update Discourse post on WP post update (#176)
  • Better method for including comments script and other small tweaks (#181)
  • Allow choosing Discourse category per post (#177)
  • Replace avatar URL function (#172)
  • Fix timezone for custom timestamp (#162)
0.6.6 0.6.6
  • Add custom datetime format string to admin settings (#160)
  • Add a log entry when HTTP request fails (#159)
  • Log out of WordPress when logging out of Discourse (#158)
  • Fix security issue, add missing esc_url_raw() (#157)
  • Fix SSO login (#156)
  • Use wp_remote_get instead of file_get_contents (#155)
  • Fix user mention links (8b6fe46)
  • Allow showing existing WP comments under Discourse (#137)
  • Add <time> to allowed tags (#135)
  • Don't do a replace if already an absolute URL (#131)
0.6.5 0.6.5
  • Whitespaces should be stripped only on strings
Other projects in PHP