尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证easyQ – WordPress Q&A plugin built from blocks. A port of Question2Answer with voting, best answers, points, moderation, categories, tags and search. No plugin CSS, styled by your block theme. Privacy by default.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗A complete question and answer community for WordPress, built from blocks.
Visitors ask questions, the community answers, comments and votes, and the asker picks the best answer. easyQ brings the proven feature set of Question2Answer 1.8.8 to WordPress, rebuilt the WordPress way: every page is a block template, every part of it a block, and your theme decides how it looks.
Status: early development, not ready for live sites yet. Asking, answering, voting, moderation, profiles, all Q&A pages, the settings screen, the category management, the moderation list, points, user titles, user fields, the dashboard and the maintenance tools work. Emails and notifications, the privacy tools and translations are still to come, see what is next.
easyQ is built in phases, see the phase plan:
easyQ is not in the plugin directory yet. To try it on a test site:
npm run plugin-zip), or start the bundled development site with wp-env./questions/ on your site. Add the Q&A pages to your menu with the Navigation
block, and adjust the page templates under Appearance → Editor → Templates.easyQ is developed with the help of Claude, an AI assistant by Anthropic. Claude helps above all with code reviews, tests and documentation, which makes development much easier and a lot faster. Every change, whoever wrote it, has to pass the same checks before it is published: the WordPress coding standards, static analysis at the strictest level, unit, integration and end-to-end tests with accessibility checks, and the official Plugin Check.
The full mapping of Question2Answer features to WordPress is documented in docs/feature-mapping.md, the public hooks in docs/hooks.md and the REST API in docs/rest-api.md.
composer install
npm install
npm run build
npm run env:start
The development site runs at http://localhost:8888, the test site at
http://localhost:8889 (user admin, password password). They are two separate
wp-env environments: .wp-env.json for development and .wp-env.test.json for the
integration and end-to-end tests, which reset its content. Run wp-env commands for the
test site with npm run env:test -- <command>, e.g. npm run env:test -- run cli wp plugin list.
| Command | Purpose |
|---|---|
composer lint | PHP coding standards (WPCS, PHPCompatibility) |
composer lint:fix | Fix coding standard violations automatically |
composer analyse | Static analysis with PHPStan |
composer test:unit | Unit tests without WordPress |
npm run test:php | Integration tests with the WordPress test suite |
npm run test:php:multisite | Integration tests on multisite |
npm run test:e2e | End-to-end tests with Playwright |
npm run build | Build the editor script and the interactivity module |
npm run start | Rebuild JavaScript on changes |
npm run lint:js | JavaScript coding standards |
npm run lint:md | Markdown coding standards |
npm run plugin-check | Official Plugin Check on the development site (WP_ENV_CONFIG=.wp-env.test.json for the test site) |
npm run i18n:pot | Regenerate languages/easyq.pot |
npm run plugin-zip | Build the release archive |
To test against another WordPress or PHP version, create .wp-env.test.override.json
(.wp-env.override.json for the development site) and start the environment again:
{ "core": "WordPress/WordPress#6.7", "phpVersion": "8.2" }
GitHub Actions checks every push to main and every pull request
(.github/workflows/ci.yml):
package.json
linting;Markdown is linted on every run; commits that only change Markdown files skip the other
jobs. Before pushing, run the
commands above for the parts you changed, at least composer lint, composer analyse
and the tests.
| Path | Content |
|---|---|
easyq.php | Plugin bootstrap |
uninstall.php | Data removal when the plugin is deleted |
includes/ | PHP classes; EasyQ\Database\Schema lives in includes/database/class-schema.php |
blocks/ | Block metadata (block.json) of every block; they are rendered by includes/blocks/ |
src/ | JavaScript sources: block editor (src/editor) and frontend interactivity (src/view) |
build/ | Built JavaScript, created by npm run build |
languages/ | Translation template and bundled translations |
tests/unit/ | Unit tests without WordPress |
tests/integration/ | Integration tests with the WordPress test suite |
tests/e2e/ | Playwright end-to-end tests |
docs/ | Project documentation |
.github/workflows/ | Continuous integration |
EasyQ namespace and follow the WordPress file naming
conventions (class-*.php, lowercase directories).@since;error( $option, $actor, check_blocks: false );<br />) and unique IDs;@ error suppression;Feeds_Test), in a
file named like the class.easyQ is free software, licensed under the GNU General Public License v2 or later.
easyQ is based on Question2Answer by Gideon Greenspan and contributors, licensed under the GNU General Public License v2 or later.