Commit Graph

65 Commits

Author SHA1 Message Date
Felix Arntz
78d7aba4ed Multisite: Replace unnecessary is_super_admin() check when setting up the initial network.
When using `is_super_admin()` in a non-multisite environment, the function is supposed to check for administrator capabilities. The process of querying all users and filtering them with that function can be optimized by only querying users with the administrator role instead.

Fixes #40406. See #37616.


git-svn-id: https://develop.svn.wordpress.org/trunk@40406 602fd350-edb4-49c9-b593-d223f7449a82
2017-04-10 21:59:59 +00:00
Sergey Biryukov
fac3bbb51d Docs: Move install_network() DocBlock after the function_exists() call.
Props keesiemeijer.
Fixes #39478.

git-svn-id: https://develop.svn.wordpress.org/trunk@39709 602fd350-edb4-49c9-b593-d223f7449a82
2017-01-05 12:33:34 +00:00
Helen Hou-Sandi
bbfed835a3 Only set fresh_site during an actual fresh install.
props westonruter.
fixes #38533.


git-svn-id: https://develop.svn.wordpress.org/trunk@39076 602fd350-edb4-49c9-b593-d223f7449a82
2016-11-01 20:15:08 +00:00
Weston Ruter
630fd305fc Customize: Introduce starter content and site freshness state.
A theme can opt-in for tailored starter content to apply to the customizer when previewing the theme on a fresh install, when `fresh_site` is at its initial `1` value. Starter content is staged in the customizer and does not go live unless the changes are published. Initial starter content is added to Twenty Seventeen.

* The `fresh_site` flag is cleared when a published post or page is saved, when widgets are modified, or when the customizer state is saved.
* Starter content is registered via `starter-content` theme support, where the argument is an array containing `widgets`, `posts`, `nav_menus`, `options`, and `theme_mods`. Posts/pages in starter content are created with the `auto-draft` status, re-using the page/post stubs feature added to nav menus and the static front page controls.
* A `get_theme_starter_content` filter allows for plugins to extend a theme's starter content.
* Starter content in themes can/should re-use existing starter content items in core by using named placeholders.
* Import theme starter content into customized state when fresh site.
* Prevent original_title differences from causing refreshes if title is present.
* Ensure nav menu item url is set according to object when previewing.
* Make sure initial saved state is false if there are dirty settings without an existing changeset.
* Ensure dirty settings are cleaned upon changeset publishing.

Props helen, westonruter, ocean90.
Fixes #38114, #38533.


git-svn-id: https://develop.svn.wordpress.org/trunk@38991 602fd350-edb4-49c9-b593-d223f7449a82
2016-10-28 02:56:16 +00:00
Jeremy Felt
2979167ba7 Multisite: Use get_network() and get_current_network_id() for current network data.
`get_network()` falls back to the current network when called without any arguments. Between this and `get_current_network_id()`, we can replace almost all instances of the global `$current_site` and all instances of `get_current_site()`.

This effectively deprecates `get_current_site()`, something that we'll do in a future ticket.

Props flixos90.
Fixes #37414.


git-svn-id: https://develop.svn.wordpress.org/trunk@38814 602fd350-edb4-49c9-b593-d223f7449a82
2016-10-19 04:46:14 +00:00
Gary Pendergast
f54b5428c4 Database: Increase the size of wp_posts.post_password to 255 characters.
Longer passwords and passphrases are much more common than when post passwords were introduced all those eons ago, so let's increase the length of the `post_password` field from 20 to 255 characters.

The password will continue to be stored in plaintext, as the ability for the post author to view the password is a commonly used feature.

Trivia: this was the last 3 digit Trac ticket to be closed.

Props skippy, nazgul, iandunn, adamsilverstein, pento.
Fixes #881.



git-svn-id: https://develop.svn.wordpress.org/trunk@38590 602fd350-edb4-49c9-b593-d223f7449a82
2016-09-12 02:27:55 +00:00
Peter Wilson
db0195c936 DOCS: Replace HTTP links with HTTPS.
Replaces unsecure links in documentation and translator comments with their secure versions.

Props johnpgreen, netweb

Fixes #36993


git-svn-id: https://develop.svn.wordpress.org/trunk@37674 602fd350-edb4-49c9-b593-d223f7449a82
2016-06-10 04:49:09 +00:00
Gary Pendergast
448896a2c7 Database: Remove some duplicate code.
`schema.php` was manually defining the character set/collation query, instead of using `wpdb::get_charset_collate()`.

Props sudar.

Fixes #35756.



git-svn-id: https://develop.svn.wordpress.org/trunk@37524 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-23 06:37:53 +00:00
Drew Jaynes
1cd420af5e Docs: Standardize hook docs in wp-admin/* to use third-person singular verbs per the inline documentation standards for PHP.
See #36913.


git-svn-id: https://develop.svn.wordpress.org/trunk@37488 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-22 18:00:23 +00:00
Dominik Schilling (ocean90)
960863e74c Schema: Add an index to wp_users.user_email.
Improves lookup of an email address on large user tables.

See #9568.
Fixes #33376.

git-svn-id: https://develop.svn.wordpress.org/trunk@36654 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-23 23:20:36 +00:00
ericlewis
3fde994152 Networks and sites: Replace "blog" usage with "site" in docs.
Multisite functions use the term "blog" to refer to what we now call a "site," e.g. `get_current_blog_id()`. These functions are here to stay because of our commitment to backwards compatibility. What we can do is set the documentation straight.

See #35417.


git-svn-id: https://develop.svn.wordpress.org/trunk@36416 602fd350-edb4-49c9-b593-d223f7449a82
2016-01-28 03:34:02 +00:00
Pascal Birchler
844e1b6e7e After [36254], commit all the necessary files and not just the unit test.
git-svn-id: https://develop.svn.wordpress.org/trunk@36255 602fd350-edb4-49c9-b593-d223f7449a82
2016-01-10 19:06:03 +00:00
John Blackbourn
ba5f0fdc7b Docs: Various docblock corrections.
See #32246


git-svn-id: https://develop.svn.wordpress.org/trunk@36250 602fd350-edb4-49c9-b593-d223f7449a82
2016-01-10 01:25:44 +00:00
Scott Taylor
663b7f28ff Upgrade: New themes are not automatically installed on upgrade. This can still be explicitly asked for by defining CORE_UPGRADE_SKIP_NEW_BUNDLED as false.
In `populate_options()`, if the theme specified by `WP_DEFAULT_THEME` doesn't exist, fall back to the latest core default theme. If we can't find a core default theme, `WP_DEFAULT_THEME` is the best we can do. 

Props nacin, jeremyfelt, dd32.
See #34306.


git-svn-id: https://develop.svn.wordpress.org/trunk@35738 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-25 21:44:02 +00:00
Aaron Jorbin
ee18e04df0 Revert [34291] bringing back my-hacks
Keeping myhacks support is a small price to pay for not breaking people's sites.  Even if it is very very very few sites, breaking sites isn't something that should be encouraged. Even with 10 years of deprecation notices.

https://core.trac.wordpress.org/ticket/33741#comment:18 outlines all the ways that the hack_file and my-hacks options can be setup and thus all the ways that the removal of those options could break sites.

Fixes #33741.




git-svn-id: https://develop.svn.wordpress.org/trunk@35688 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-18 20:48:24 +00:00
Dominik Schilling (ocean90)
0792eaf237 Schema: Increase length of user_pass and user_activation_key fields to 255.
Props grvrulz and Miglosh for testing.
Fixes #33904.

git-svn-id: https://develop.svn.wordpress.org/trunk@35638 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-15 14:18:51 +00:00
Sergey Biryukov
de44d6b375 Remove non-translatable HTML code from the first post content in populate_network() and wp_install_defaults().
Add translator comment.

Props ramiy.
Fixes #34619.

git-svn-id: https://develop.svn.wordpress.org/trunk@35614 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-11 20:54:20 +00:00
Jeremy Felt
21de649fd0 MS: Allow "Network Admin Email" to be a non-user during network setup.
The network admin email setting for a network is often used as a catch-all or notification email separate from the actual user ID set as the owner of the new network. If a non-user email address is set during network installation, we can defer to the current user as the actual network admin and apply the entered email as the address to which general notifications are sent and emails are sent from.

In the future, we'll want to update the messaging around "Network Admin Email" to reflect its reality. See #34293.

Props jjeaton.
Fixes #34065.


git-svn-id: https://develop.svn.wordpress.org/trunk@35575 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-08 03:15:07 +00:00
Scott Taylor
48501d6658 Roles: map add_users cap to promote_users and remove it.
"Never used, will be removed." - The Ghost of 3.5 Nacin

Props Craig Ralston, renoirb.
Fixes #16719.


git-svn-id: https://develop.svn.wordpress.org/trunk@35507 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-04 17:53:40 +00:00
Scott Taylor
bd7bf83886 Media: add a new image size, medium_large. Bumps db version to add new options.
Adds unit tests.

Props DH-Shredder, joemcgill, azaozz.
Fixes #34196.


git-svn-id: https://develop.svn.wordpress.org/trunk@35479 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-31 20:49:26 +00:00
Scott Taylor
9aba8ef2aa Options: remove old 'gzipcompression' and 'advanced_edit' options.
Props chriscct7, solarissmoke.
Fixes #12996.


git-svn-id: https://develop.svn.wordpress.org/trunk@35360 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-22 19:48:38 +00:00
Boone Gorges
e4b72ad5ca Don't force comment pagination.
[34561] instituted the policy of forcing pagination for comments. This strategy
was intended to avert problems when 'page_comments' is set to 0 - as it is by
default - and the number of comments on a given post rises into the hundreds or
thousands. By forcing pagination in all cases, we ensured that WordPress would
not time out by processing unwieldy numbers of comments on a given pageload.

The strategy proves problematic, however, because comment permalinks are
generated using the page of the comment. Forcing pagination for posts that
were not previously paginated would change the URL of all comments that do not
appear on the default comment page.

This changeset reintroduces the 'page_comments' setting and its corresponding
checkbox on Settings > Discussion. A number of tests, which were written after
[34561], are modified to work now that 'page_comments' will, once again, be
disabled by default.

See #8071.

git-svn-id: https://develop.svn.wordpress.org/trunk@35331 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-21 16:25:31 +00:00
Scott Taylor
e4bcddecfb Site Icon: make the default value for the site_icon option 0 in schema.php.
Props swissspidy, sebastian.pisula.
Fixes #34339.


git-svn-id: https://develop.svn.wordpress.org/trunk@35312 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-21 03:27:54 +00:00
Drew Jaynes
0cb7c0bd9f Docs: Add missing descriptions for the $wpdb global in DocBlocks all the places.
See #32246.


git-svn-id: https://develop.svn.wordpress.org/trunk@35170 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-14 23:43:10 +00:00
Dominik Schilling (ocean90)
f771be9e2c Term Meta: Prevent a "Multiple primary key defined" error during database upgrades.
You must have two spaces between the words `PRIMARY KEY` and the definition of your primary key. Yes, seriously.

See [34529].
Fixes #34210.

git-svn-id: https://develop.svn.wordpress.org/trunk@34936 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-08 11:08:15 +00:00
Jeremy Felt
599fb50e09 Revert [34778], continue using _site_option() for the current network.
The `_network_option()` parameter order will be changing to accept `$network_id` first. The `_site_option()` functions will remain in use throughout core as our way of retrieving a network option for the current network.

See #28290.


git-svn-id: https://develop.svn.wordpress.org/trunk@34912 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-07 17:11:01 +00:00
Jeremy Felt
3c177b8c6f MS: Use *_network_option() functions throughout core.
Replaces all uses of `*_site_option()` with the corresponding "network" function.

This excludes one usage in `wp-admin/admin-footer.php` that needs more investigation.

Props spacedmonkey.
See #28290.


git-svn-id: https://develop.svn.wordpress.org/trunk@34778 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-02 19:07:23 +00:00
Boone Gorges
0604eff2e2 After [35461], remove 'page_comments' from database.
* Don't set as part of initial schema.
* Delete as part of the `$unusedoptions` routine.

Props ocean90.
See #8071.

git-svn-id: https://develop.svn.wordpress.org/trunk@34562 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-25 20:49:47 +00:00
Boone Gorges
0b7e8399b0 Force comment pagination on single posts.
Previously, the 'page_comments' toggle allowed users to disable comment
pagination. This toggle was only superficial, however. Even with
'page_comments' turned on, `comments_template()` loaded all of a post's
comments into memory, and passed them to `wp_list_comments()` and
`Walker_Comment`, the latter of which produced markup for only the
current page of comments. In other words, it was possible to enable
'page_comments', thereby showing only a subset of a post's comments on a given
page, but all comments continued to be loaded in the background. This technique
scaled poorly. Posts with hundreds or thousands of comments would load slowly,
or not at all, even when the 'comments_per_page' setting was set to a
reasonable number.

Recent changesets have addressed this problem through more efficient tree-
walking, better descendant caching, and more selective queries for top-level
post comments. The current changeset completes the project by addressing the
root issue: that loading a post causes all of its comments to be loaded too.

Here's the breakdown:

* Comment pagination is now forced. Setting 'page_comments' to false leads to evil things when you have many comments. If you want to avoid pagination, set 'comments_per_page' to something high.
* The 'page_comments' setting has been expunged from options-discussion.php, and from places in the codebase where it was referenced. For plugins relying on 'page_comments', we now force the value to `true` with a `pre_option` filter.
* `comments_template()` now queries for an appropriately small number of comments. Usually, this means the `comments_per_page` value.
* To preserve the current (odd) behavior for comment pagination links, some unholy hacks have been inserted into `comments_template()`. The ugliness is insulated in this function for backward compatibility and to minimize collateral damage. A side-effect is that, for certain settings of 'default_comments_page', up to 2x the value of `comments_per_page` might be fetched at a time.
* In support of these changes, a `$format` parameter has been added to `WP_Comment::get_children()`. This param allows you to request a flattened array of comment children, suitable for feeding into `Walker_Comment`.
* `WP_Query` loops are now informed about total available comment counts and comment pages by the `WP_Comment_Query` (`found_comments`, `max_num_pages`), instead of by `Walker_Comment`.

Aside from radical performance improvements in the case of a post with many
comments, this changeset fixes a bug that caused the first page of comments to
be partial (`found_comments` % `comments_per_page`), rather than the last, as
you'd expect.

Props boonebgorges, wonderboymusic.
Fixes #8071.

git-svn-id: https://develop.svn.wordpress.org/trunk@34561 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-25 20:39:18 +00:00
Boone Gorges
3425177325 Introduce metadata for taxonomy terms.
Adds a new table to the database schema (`wp_termmeta`), and a set of
`*_term_meta()` API functions. `get_terms()` and `wp_get_object_terms()`
now also support 'meta_query' parameters, with syntax identical to other
uses of `WP_Meta_Query`.

When fetching terms via `get_terms()` or `wp_get_object_terms()`, metadata for
matched terms is preloaded into the cache by default. Disable this behavior
by setting the new `$update_term_meta_cache` paramater to `false`.

To maximize performance, within `WP_Query` loops, the termmeta cache is *not*
primed by default. Instead, we use a lazy-loading technique: metadata for all
terms belonging to posts in the loop is loaded into the cache the first time
that `get_term_meta()` is called within the loop.

Props boonebgorges, sirzooro.
See #10142.

git-svn-id: https://develop.svn.wordpress.org/trunk@34529 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-25 03:58:59 +00:00
Sergey Biryukov
f90ee7b348 Add missing translator comments after [34293].
See #31851.

git-svn-id: https://develop.svn.wordpress.org/trunk@34298 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-18 18:38:54 +00:00
Scott Taylor
d2b4e0c728 Don't use <code> in translation strings in wp-admin/includes/schema.php.
Props ramiy.
Fixes #31851.


git-svn-id: https://develop.svn.wordpress.org/trunk@34293 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-18 18:20:46 +00:00
Aaron Jorbin
308179c232 Remove support for my-hacks.php
For the last 10 years, my-hacks has been deprecated and has been throwing a deprecation notice. For the last six years, you haven't been able to enable my-hacks.php in the admin UI. That should be enough time to give developers notice. Plugins and themes seem like they might have staying power.

Fixes #33741
Props bobbingwide



git-svn-id: https://develop.svn.wordpress.org/trunk@34291 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-18 17:05:28 +00:00
Gary Pendergast
32b8ff1b14 Schema: Increase the length of wp_options.option_name.
It's pretty easy to run over the `option_name` length, which causes undefined behaviour when inserting and retrieving options. Increasing the length from `VARCHAR(64)` to `VARCHAR(191)` significantly reduces the risk of this occurring.

Because `option_name` has a `UNIQUE` index, we can only increase it to 191 characters, rather than 255. The index can only use a prefix of 191 characters, so will incorrectly restrict long different strings that have the same prefix, if we make the column longer.

Props scribu, OriginalEXE, khromov, MikeHansenMe, netweb, pento.

Fixes #13310.



git-svn-id: https://develop.svn.wordpress.org/trunk@34030 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-11 01:25:21 +00:00
Helen Hou-Sandi
0c19c94561 Drop the hyphen from e-mail and standardize on email.
The AP Stylebook changed this in 2011, and we're woefully inconsistent, so let's go with the standard.

props morganestes, voldemortensen, niallkennedy (for patching on the previous AP style).
fixes #26156.


git-svn-id: https://develop.svn.wordpress.org/trunk@33774 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-28 03:16:02 +00:00
Scott Taylor
e1b1541932 Media:
When inserting an image into a post, the values in `wp.media.controller.Library` should not default to linking the image when no user settings are present.

The default display setting value for `link` is now `none`. User settings persist and will override or confirm this value based on user actions.

Props liljimmi, janhenckens, eherman24, wonderboymusic.
Fixes #31467.


git-svn-id: https://develop.svn.wordpress.org/trunk@33729 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-25 12:12:59 +00:00
Boone Gorges
e33ff607e6 Don't run term-splitting routine on new installations.
Props pento.
Fixes #30261.

git-svn-id: https://develop.svn.wordpress.org/trunk@33621 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-17 14:28:03 +00:00
Scott Taylor
f864c1d712 Add @global annotations to (the rest of the?) wp-admin/* files.
Does not include list table file changes.

See #32444.


git-svn-id: https://develop.svn.wordpress.org/trunk@32643 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-29 02:05:26 +00:00
Scott Taylor
23ce2efd12 Add @global annotations for wp-admin/*.
See #32444.


git-svn-id: https://develop.svn.wordpress.org/trunk@32642 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-28 21:40:27 +00:00
Sergey Biryukov
2b8e7270d5 Multisite: Add translator comments to default email messages with non-typical placeholders.
props yoavf.
fixes #32263.

git-svn-id: https://develop.svn.wordpress.org/trunk@32381 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-06 09:11:18 +00:00
Sergey Biryukov
edeb3f3ae3 Replace generic "Dear user" greeting in email notifications with a more personalized one.
props Ipstenu.
fixes #31217.

git-svn-id: https://develop.svn.wordpress.org/trunk@31403 602fd350-edb4-49c9-b593-d223f7449a82
2015-02-10 07:46:50 +00:00
Gary Pendergast
9f6ddf8944 WPDB: If a site is using the utf8 charset, and their version of MySQL supports utf8mb4, auto-upgrade them to utf8mb4.
This patch also resizes some indexes, to allow for the 767 byte index size limit in standard MySQL installs.

See #21212



git-svn-id: https://develop.svn.wordpress.org/trunk@31349 602fd350-edb4-49c9-b593-d223f7449a82
2015-02-06 04:50:19 +00:00
Andrew Nacin
96dee2af62 Adjust [29806] and revert [29807] to restore placeholder and email copy order.
Avoids unnecessarily changing a (large, carefully formatted) translated string from 4.0.

fixes #21089.


git-svn-id: https://develop.svn.wordpress.org/trunk@30742 602fd350-edb4-49c9-b593-d223f7449a82
2014-12-05 01:14:03 +00:00
Drew Jaynes (DrewAPicture)
7cd15026bd Correct references of @uses $wpdb in core documentation to use @global.
See #30191, [30105].
Fixes #30217.


git-svn-id: https://develop.svn.wordpress.org/trunk@30122 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-31 17:55:39 +00:00
Boone Gorges
ad4aa0b7e0 Remove UNIQUE key from 'slug' column of terms table.
Each slug is a unique and beautiful snowflake, but let's enforce that
uniqueness elsewhere.

Props hotchkissconsulting.
Fixes #22023.

git-svn-id: https://develop.svn.wordpress.org/trunk@30056 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-28 18:36:57 +00:00
Scott Taylor
3a11531451 In the wp_new_blog_notification() email template, include the login url.
Props obenland, georgestephanis.
Fixes #21089.


git-svn-id: https://develop.svn.wordpress.org/trunk@29806 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-02 01:27:57 +00:00
Drew Jaynes (DrewAPicture)
6ddc1e5f6d Fix syntax for single- and multi-line comments in wp-admin-directory files.
See #28931.


git-svn-id: https://develop.svn.wordpress.org/trunk@29206 602fd350-edb4-49c9-b593-d223f7449a82
2014-07-17 09:13:53 +00:00
Andrew Nacin
9452f31220 DB schema change: Add comment_author_email(10) index.
props tellyworth, pento.
fixes #21435.


git-svn-id: https://develop.svn.wordpress.org/trunk@29188 602fd350-edb4-49c9-b593-d223f7449a82
2014-07-16 15:53:14 +00:00
Scott Taylor
1c947d9ef1 Bring the list of upload_filetypes for multisite into modernity based on .com upgrades and supported extensions for audio and video.
Fixes #24434.


git-svn-id: https://develop.svn.wordpress.org/trunk@28832 602fd350-edb4-49c9-b593-d223f7449a82
2014-06-25 17:59:54 +00:00
Scott Taylor
84ad12b439 Replace all uses of like_escape() with $wpdb->esc_like().
Props miqrogroove.
See #10041.


git-svn-id: https://develop.svn.wordpress.org/trunk@28712 602fd350-edb4-49c9-b593-d223f7449a82
2014-06-10 00:43:32 +00:00