Go to file
Boone Gorges 3e704473e7 Taxonomy: Ensure consistency of hide_empty in term queries when taxonomy is excluded.
When querying for terms in hierarchical categories using `hide_empty=true`,
results have historically included parent terms which are themselves
unattached to any objects (are "empty") but which have non-empty descendent
terms. Because this process involves walking the descendant tree, we avoid it
when we detect that the queried taxonomies are not hierarchical. (This
behavior was introduced in [5525].)

When the `taxonomy` parameter of `get_terms()` was made optional - see #35495,
[36614] - it affected the mechanism for avoiding unneccessary tree walks,
since there may not be any explicitly declared taxonomies to run through
`is_taxonomy_hierarchical()`. As a result, term queries excluding `taxonomy`
did not check descendants, and empty parents with non-empty children were not
included in `hide_empty` results.

We correct the behavior by crawling term descendants when the `taxonomy`
argument is absent, which means that we're querying for terms in all taxonomies.

Props smerriman.
Fixes #37728.

git-svn-id: https://develop.svn.wordpress.org/trunk@45888 602fd350-edb4-49c9-b593-d223f7449a82
2019-08-23 16:04:07 +00:00
src Taxonomy: Ensure consistency of hide_empty in term queries when taxonomy is excluded. 2019-08-23 16:04:07 +00:00
tests Taxonomy: Ensure consistency of hide_empty in term queries when taxonomy is excluded. 2019-08-23 16:04:07 +00:00
tools Build Tools: Improve local-env start behaviour under Docker Toolbox. 2019-08-16 01:39:59 +00:00
.editorconfig General: Instruct file editors not to trim trailing whitespace in markdown files. 2018-03-20 22:14:53 +00:00
.env Build Tools: Miscellaneous local-env improvements. 2019-08-12 08:28:33 +00:00
.gitignore Build Tools: Miscellaneous local-env improvements. 2019-08-12 08:28:33 +00:00
.jshintrc Build tools: Fix the travis:js build. 2018-12-24 13:53:11 +00:00
.npmrc Once upon a midnight dreary, while I coded, weak and weary, 2018-05-23 10:04:22 +00:00
.nvmrc Once upon a midnight dreary, while I coded, weak and weary, 2018-05-23 10:04:22 +00:00
.travis.yml Tests: Add an xdebug group for tests that require xdebug. 2019-08-19 02:17:50 +00:00
appveyor.yml Build/Test Tools: Remove the dependency on a globally installed Grunt. 2019-05-26 19:34:24 +00:00
composer.json Coding Standards: Move the remaining PHPCS errors to report as warnings, and add Travis tests. 2019-07-19 07:47:16 +00:00
composer.lock Coding Standards: Upgrade WPCS to 2.1.1. 2019-07-05 02:49:53 +00:00
docker-compose.yml Build Tools: Pass the LOCAL_DIR environment variable through to the phpunit Docker container. 2019-08-23 01:55:28 +00:00
Gruntfile.js Emoji: Upgrade Twemoji to 12.1.2. 2019-08-08 04:04:15 +00:00
jsdoc.conf.json Build Tools: Fix JSDoc configuration include paths. 2018-06-14 12:45:06 +00:00
package-lock.json Build Tools: Don't use git for package installs. 2019-08-22 02:28:50 +00:00
package.json Build Tools: Don't use git for package installs. 2019-08-22 02:28:50 +00:00
phpcs.xml.dist Coding Standards: Move the remaining PHPCS errors to report as warnings, and add Travis tests. 2019-07-19 07:47:16 +00:00
phpunit.xml.dist Coding Standards: Fix the remaining issues in /tests. 2019-07-08 00:55:20 +00:00
README.md Build Tools: Add a WordPress Development Environment. 2019-08-05 07:09:14 +00:00
webpack.config.js Build tools: Allow building WordPress to src. 2018-12-24 13:28:22 +00:00
wp-cli.yml Build/Tests: Default to running unit tests from src. 2019-01-09 10:09:02 +00:00
wp-config-sample.php General: Replace "Happy blogging" with "Happy publishing". 2019-01-08 04:29:06 +00:00
wp-tests-config-sample.php Tests: Revert [44509]. 2019-01-09 11:13:03 +00:00

WordPress

Build Status

Welcome to the WordPress development repository! Please check out our contributor handbook for information about how to open bug reports, contribute patches, test, documention, or get involved in any way you can.

Getting Started

WordPress is a PHP/MySQL-based project. We have a basic development environment that you can quickly get up and running with a few commands. First off, you will need to download and install Docker, if you don't have it already. After that, there are a few commands to run:

Development Environment Commands

Running these commands will start the development environment:

npm install
npm run build:dev
npm run env:start
npm run env:install

Additionally, npm run env:stop will stop the environment.

npm run env:cli runs the WP-CLI tool. WP-CLI has a lot of useful commands you can use to work on your WordPress site. Where the documentation mentions running wp, run npm run env:cli instead. For example, npm run env:cli help.

npm run test:php and npm run test:e2e run the PHP and E2E test suites, respectively.