{"id":13557164,"url":"https://github.com/discourse/wp-discourse","last_synced_at":"2025-09-25T14:12:43.963Z","repository":{"id":7684763,"uuid":"9048030","full_name":"discourse/wp-discourse","owner":"discourse","description":"WordPress plugin that lets you use Discourse as the community engine for a WordPress blog","archived":false,"fork":false,"pushed_at":"2025-07-21T23:13:11.000Z","size":12427,"stargazers_count":527,"open_issues_count":22,"forks_count":115,"subscribers_count":52,"default_branch":"main","last_synced_at":"2025-09-10T00:22:25.481Z","etag":null,"topics":["authentication","comments","discussions","single-sign-on","wordpress-plugin"],"latest_commit_sha":null,"homepage":"http://www.discourse.org","language":"PHP","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/discourse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2013-03-27T06:31:28.000Z","updated_at":"2025-08-17T15:24:57.000Z","dependencies_parsed_at":"2023-02-18T08:16:04.583Z","dependency_job_id":"cc6c82d4-2500-47df-b229-8afb6ef3ae2b","html_url":"https://github.com/discourse/wp-discourse","commit_stats":{"total_commits":2046,"total_committers":58,"mean_commits":"35.275862068965516","dds":"0.19012707722385147","last_synced_commit":"471720c2778489d41b8ccbba159360eb6cfa67ed"},"previous_names":[],"tags_count":147,"template":false,"template_full_name":null,"purl":"pkg:github/discourse/wp-discourse","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/discourse%2Fwp-discourse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/discourse%2Fwp-discourse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/discourse%2Fwp-discourse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/discourse%2Fwp-discourse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/discourse","download_url":"https://codeload.github.com/discourse/wp-discourse/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/discourse%2Fwp-discourse/sbom","scorecard":{"id":344649,"data":{"date":"2025-08-11","repo":{"name":"github.com/discourse/wp-discourse","commit":"b87610d6d32231517619146690f429d6b3c8976c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"name":"Maintained","score":1,"reason":"2 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/deploy.yml:1","Warn: no topLevel permission defined: .github/workflows/formatting.yml:1","Warn: no topLevel permission defined: .github/workflows/metadata.yml:1","Warn: no topLevel permission defined: .github/workflows/tests.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/deploy.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/discourse/wp-discourse/deploy.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/deploy.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/discourse/wp-discourse/deploy.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/formatting.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/discourse/wp-discourse/formatting.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/formatting.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/discourse/wp-discourse/formatting.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/formatting.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/discourse/wp-discourse/formatting.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/metadata.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/discourse/wp-discourse/metadata.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/metadata.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/discourse/wp-discourse/metadata.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/metadata.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/discourse/wp-discourse/metadata.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/metadata.yml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/discourse/wp-discourse/metadata.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/discourse/wp-discourse/tests.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/discourse/wp-discourse/tests.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/discourse/wp-discourse/tests.yml/main?enable=pin","Warn: npmCommand not pinned by hash: .github/workflows/formatting.yml:50","Warn: npmCommand not pinned by hash: .github/workflows/metadata.yml:46","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   5 third-party GitHubAction dependencies pinned","Info:   0 out of   2 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":6,"reason":"branch protection is not maximal on development and all release branches","details":["Info: 'allow deletion' disabled on branch 'main'","Info: 'force pushes' disabled on branch 'main'","Warn: required approving review count is 1 on branch 'main'","Warn: codeowners review is not required on branch 'main'","Warn: no status checks found to merge onto branch 'main'","Info: PRs are required in order to make changes on branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"15 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-jr5f-v2jv-69x6","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-c7qv-q95q-8v27","Warn: Project is vulnerable to: GHSA-4www-5p9h-95mh","Warn: Project is vulnerable to: GHSA-9gqv-wp59-fq42","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-rhx6-c78j-4q9w","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-8cj5-5rvv-wf4v","Warn: Project is vulnerable to: GHSA-4v9v-hfq4-rm2v","Warn: Project is vulnerable to: GHSA-9jgg-88mc-972h","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T06:45:42.777Z","repository_id":7684763,"created_at":"2025-08-18T06:45:42.778Z","updated_at":"2025-08-18T06:45:42.778Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276929648,"owners_count":25730216,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-25T02:00:09.612Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authentication","comments","discussions","single-sign-on","wordpress-plugin"],"created_at":"2024-08-01T12:04:11.937Z","updated_at":"2025-09-25T14:12:43.924Z","avatar_url":"https://github.com/discourse.png","language":"PHP","readme":"# WP Discourse\n[![OpenCollective](https://opencollective.com/wp-discourse/backers/badge.svg)](#backers)\n[![OpenCollective](https://opencollective.com/wp-discourse/sponsors/badge.svg)](#sponsors)\n\n**Note:** the wp-discourse plugin requires \u003e= PHP-5.4.0.\n\nThe WP Discourse plugin acts as an interface between your WordPress site and your\n[Discourse](http://www.discourse.org/) community.\n\nThe plugin is not a substitute for Disqus-like commenting systems.\n\n### Use Discourse for Comments:\n\n- Automatically creates a forum topic for discussion when a new blog post is published.\n- Associates WP author accounts with their respective Discourse accounts. Does not require DiscourseConnect.\n- Replies from the forum discussion can be embedded in the WP blog post. Select which replies to display\nbased on post score and commenter \"trust level\" -- see docs.\n\n#### See it Live\n\n- [blog.discourse.org](http://blog.discourse.org/)\n- [boingboing.net](http://boingboing.net/)\n\n### DiscourseConnect\n\nThe plugin also comes with optional DiscourseConnect functionality which lets you use your WordPress site as the DiscourseConnect provider for your Discourse forum.\n\nThis will override Discourse's native (and powerful) login flow and is only recommended for use cases\nthat strictly require such a setup, e.g. a site that is already using WordPress for large scale user management.\n\n### Contact\n\nPlease post bug reports, support requests and all other inquiries in our [dedicated support forum](https://meta.discourse.org/c/support/wordpress)\n\n### Installation\n\n#### From your WordPress dashboard\n\n1. Visit 'Plugins \u003e Add New'\n2. Search for 'WP Discourse'\n3. Activate WP Discourse from your Plugins page\n\n#### From wordpress.org\n\n1. Download WP Discourse\n2. Upload the 'wp-discourse' directory to your '/wp-content/plugins/' directory\n3. Activate WP Discourse from your Plugins page\n\n#### With Composer\n\nIf you're using Composer to manage WordPress, add WP-Discourse to your project's dependencies. Run:\n\n```sh\ncomposer require discourse/wp-discourse ~1.3.2\n```\n\nOr manually add it to your `composer.json`:\n\n```json\n{\n  \"require\": {\n    \"php\": \"\u003e=5.4.0\",\n    \"discourse/wp-discourse\": \"~1.3.2\"\n  }\n}\n```\n\nFor more detailed instructions please see the [WP Discourse plugin installation and setup](https://meta.discourse.org/t/wp-discourse-plugin-installation-and-setup/50752).\n### Frequently Asked Questions\n\n#### Does this plugin install Discourse for me?\n\nNo this plugin acts as an interface between Discourse and WordPress. For it to work you will need to first set up\nDiscourse forum. You can install Discourse for yourself following either of these guides:\n\n- [Install Discourse in Under 30 Minutes](https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md)\n- [How to use the Discourse One-Click Application on DigitalOcean](https://www.digitalocean.com/community/tutorials/how-to-use-the-discourse-one-click-application-on-digitalocean)\n\n#### Can I import old WordPress comments as Discourse comments (i.e. \"replies\")?\n\nNo.\n\n#### Do WordPress and Discourse have to be installed on the same server?\n\nThe plugin uses the Discourse API, so your forum and blog can be hosted separately and the integration will still work.\nIn fact, we strongly recommend hosting the two applications separately, since their hosting requirements are very different.\n\n#### Is it possible to customize the comment templates?\n\nYes, the html templates used for publishing posts on Discourse and for displaying comments on WordPress can be customized in your theme.\nThis is done by hooking into the filters that are applied to each template.\n\nFor more details on template customization, see: [WP Discourse template customization](https://meta.discourse.org/t/wp-discourse-template-customization/50754)\n\n#### Contributing\n\nBefore you start contributing or developing this plugin please read the documentation in ``docs/``, starting with [contributing.md](https://github.com/discourse/wp-discourse/blob/main/docs/contributing.md). If you have any questions about those process, please post in [#dev](https://meta.discourse.org/c/dev/7) for assistance.\n","funding_links":[],"categories":["PHP","others"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiscourse%2Fwp-discourse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdiscourse%2Fwp-discourse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiscourse%2Fwp-discourse/lists"}