Commit Graph

62 Commits

Author SHA1 Message Date
Sergey Biryukov
4e78b0acd9 Themes: Allow template loading functions to pass additional arguments to the template via the $args parameter.
This affects:
* `get_header()`
* `get_footer()`
* `get_sidebar()`
* `get_template_part()`
* `locate_template()`
* `load_template()`

Note: `get_search_form()` already passes additional arguments to the template as of [44956].

Props enrico.sorcinelli, sc0ttkclark, scribu, nacin, wonderboymusic, GeertDD, beatpanda, amaschas, mintindeed, ysalame, caiocrcosta, bigdawggi, julianm, eddiemoya, shawnz, sayedwp, shamai, mboynes, mihai2u, guidobras, Mte90, apedog, stuffradio, overclokk, johnbillion, joyously, afercia, audrasjb, justlevine, SergeyBiryukov.
See #21676.

git-svn-id: https://develop.svn.wordpress.org/trunk@48370 602fd350-edb4-49c9-b593-d223f7449a82
2020-07-07 11:00:21 +00:00
Sergey Biryukov
6742d0d7a6 Coding Standards: Use strict comparison where static strings are involved.
This reduces the number of `WordPress.PHP.StrictComparisons.LooseComparison` issues in half, from 1897 to 890.

Includes minor code layout fixes for better readability.

See #49542.

git-svn-id: https://develop.svn.wordpress.org/trunk@47808 602fd350-edb4-49c9-b593-d223f7449a82
2020-05-16 18:40:52 +00:00
Sergey Biryukov
e72fff9cef Code Modernization: Replace dirname( __FILE__ ) calls with __DIR__ magic constant.
This avoids the performance overhead of the function call every time `dirname( __FILE__ )` was used instead of `__DIR__`.

This commit also includes:

* Removing unnecessary parentheses from `include`/`require` statements. These are language constructs, not function calls.
* Replacing `include` statements for several files with `require_once`, for consistency:
 * `wp-admin/admin-header.php`
 * `wp-admin/admin-footer.php`
 * `wp-includes/version.php`

Props ayeshrajans, desrosj, valentinbora, jrf, joostdevalk, netweb.
Fixes #48082.

git-svn-id: https://develop.svn.wordpress.org/trunk@47198 602fd350-edb4-49c9-b593-d223f7449a82
2020-02-06 06:31:22 +00:00
Sergey Biryukov
cfc3b57488 Docs: Improve inline comments per the documentation standards.
Includes minor code layout fixes for better readability.

See #48303.

git-svn-id: https://develop.svn.wordpress.org/trunk@47122 602fd350-edb4-49c9-b593-d223f7449a82
2020-01-29 00:43:23 +00:00
Sergey Biryukov
c2bcdea8c9 Docs: Add missing description for $comment global.
Props immeet94, mukesh27.
Fixes #46928. See #47110.

git-svn-id: https://develop.svn.wordpress.org/trunk@46391 602fd350-edb4-49c9-b593-d223f7449a82
2019-10-04 22:18:11 +00:00
Sergey Biryukov
7a6f44b979 Docs: Add missing description for $post global.
Props immeet94.
Fixes #46503. See #47110.

git-svn-id: https://develop.svn.wordpress.org/trunk@45742 602fd350-edb4-49c9-b593-d223f7449a82
2019-08-04 12:27:02 +00:00
Sergey Biryukov
d19f4d7ff4 Docs: Add missing description for $wp_query and $wp_the_query globals.
Props mukesh27.
See #45604, #47110.

git-svn-id: https://develop.svn.wordpress.org/trunk@45739 602fd350-edb4-49c9-b593-d223f7449a82
2019-08-04 01:58:03 +00:00
Sergey Biryukov
914509f940 Docs: Add missing description for $wp global.
See #45604, #47110.

git-svn-id: https://develop.svn.wordpress.org/trunk@45736 602fd350-edb4-49c9-b593-d223f7449a82
2019-08-04 01:27:22 +00:00
Sergey Biryukov
9c1123fb26 Docs: Add missing description for $wp_rewrite global.
See #45604, #47110.

git-svn-id: https://develop.svn.wordpress.org/trunk@45735 602fd350-edb4-49c9-b593-d223f7449a82
2019-08-04 01:18:54 +00:00
SergeyBiryukov
cb1d21191d Docs: Add missing description for $wpdb, $wp_db_version, and $wp_current_db_version globals.
Props mukesh27, utsav72640, immeet94, SergeyBiryukov.
See #45604.

git-svn-id: https://develop.svn.wordpress.org/trunk@45734 602fd350-edb4-49c9-b593-d223f7449a82
2019-08-04 01:11:01 +00:00
Sergey Biryukov
b3d9869efc Docs: Correct @return description for get_privacy_policy_template().
Props tmatsuur.
Fixes #46989. See #44005.

git-svn-id: https://develop.svn.wordpress.org/trunk@45251 602fd350-edb4-49c9-b593-d223f7449a82
2019-04-19 13:45:08 +00:00
Sergey Biryukov
7d6c912f16 Themes: Standardize on passing frontpage and privacypolicy as the $type parameter to get_query_template().
These keys are used in `{$type}_template_hierarchy` and `{$type}_template` filters.

Previously, `front_page` and `privacy_policy` were passed, but `get_query_template()` stripped the underscores before passing the values to the filters.

Props rinatkhaziev, tmatsuur, johnbillion.
Fixes #21213, #46958.

git-svn-id: https://develop.svn.wordpress.org/trunk@45231 602fd350-edb4-49c9-b593-d223f7449a82
2019-04-17 12:57:01 +00:00
Sergey Biryukov
65bd3654cc Privacy: Introduce Privacy Policy page helpers:
* `is_privacy_policy()` template tag
* `privacy-policy.php` template
* `.privacy-policy` body class
* `.menu-item-privacy-policy` menu item class

Props garrett-eclipse, birgire, xkon, Clorith.
Fixes #44005.

git-svn-id: https://develop.svn.wordpress.org/trunk@44966 602fd350-edb4-49c9-b593-d223f7449a82
2019-03-21 19:47:29 +00:00
Gary Pendergast
ff53bd388c Coding Standards: Extract extract() from the codebase.
Of the last four instances of `extract()` occurring, three of them are removed by this commit, and the fourth is appropriately documented.

See #45934.



git-svn-id: https://develop.svn.wordpress.org/trunk@44569 602fd350-edb4-49c9-b593-d223f7449a82
2019-01-12 03:19:23 +00:00
John Blackbourn
4836686b6f Docs: Add missing code formatting to various @since entries.
See #42505


git-svn-id: https://develop.svn.wordpress.org/trunk@42678 602fd350-edb4-49c9-b593-d223f7449a82
2018-02-09 16:54:58 +00:00
Gary Pendergast
8f95800d52 Code is Poetry.
WordPress' code just... wasn't.
This is now dealt with.

Props jrf, pento, netweb, GaryJ, jdgrimes, westonruter, Greg Sherwood from PHPCS, and everyone who's ever contributed to WPCS and PHPCS.
Fixes #41057.



git-svn-id: https://develop.svn.wordpress.org/trunk@42343 602fd350-edb4-49c9-b593-d223f7449a82
2017-11-30 23:09:33 +00:00
Drew Jaynes
a970c07994 Docs: Don't reference non-existent hooks inline in the DocBlock descriptions for the following template functions:
* `get_index_template()`
* `get_404_template()`
* `get_author_template()`
* `get_category_template()`
* `get_tag_template()`
* `get_taxonomy_template()`
* `get_date_template()`
* `get_home_template()`
* `get_front_page_template()`
* `get_page_template()`
* `get_search_template()`
* `get_single_template()`
* `get_embed_template()`
* `get_singular_template()`
* `get_attachment_template()`

As mentioned when these dynamic hook references were originally fixed in [33274], we can't link to non-existent hooks inline because the Code Reference auto-linker won't pick up on the dynamic-ness of the hook, it'll just try to link to a hook reference that doesn't exist. In these cases, we need to be generic and provide context for the value of `$type`.

See [38418] for where the original fix was reversed. See this changeset for reversing the reversal.

Props donutz, milana_cap.

Fixes #41198.


git-svn-id: https://develop.svn.wordpress.org/trunk@40964 602fd350-edb4-49c9-b593-d223f7449a82
2017-06-29 16:04:45 +00:00
Drew Jaynes
2d68e15e00 Docs: Don't reference non-existent hooks inline in the DocBlock description for get_archive_template().
Also removes extra curly braces from the dynamic hook references added in [40962] to aid future re-parsing.

See #41198.


git-svn-id: https://develop.svn.wordpress.org/trunk@40963 602fd350-edb4-49c9-b593-d223f7449a82
2017-06-29 15:46:29 +00:00
Drew Jaynes
de8cb2d5b2 Docs: Don't reference non-existent hooks inline in the DocBlock description for get_post_type_archive_template().
Props milana_cap.
See #41198.


git-svn-id: https://develop.svn.wordpress.org/trunk@40962 602fd350-edb4-49c9-b593-d223f7449a82
2017-06-29 15:38:14 +00:00
Sergey Biryukov
03eeb7efa8 Docs: Add missing opening quote for 'home' in {$type}_template_hierarchy and {$type}_template filters documentation.
Props tmatsuur, truongwp.
Fixes #40962.

git-svn-id: https://develop.svn.wordpress.org/trunk@40894 602fd350-edb4-49c9-b593-d223f7449a82
2017-06-10 22:47:59 +00:00
John Blackbourn
acf5ca35c8 Themes: Add template type and template candidates as parameters to the {$type}_template filter.
Props mschadegg
Fixes #39525


git-svn-id: https://develop.svn.wordpress.org/trunk@40057 602fd350-edb4-49c9-b593-d223f7449a82
2017-02-12 21:24:16 +00:00
Boone Gorges
3e6e1a12f6 Avoid PHP notices in get_post_type_archive_template().
The function should fail more gracefully when called in the context
where `get_query_var( 'post_type' )` doesn't represent an actual post
type.

Props technopolitica, dlh.
Fixes #38374.

git-svn-id: https://develop.svn.wordpress.org/trunk@40031 602fd350-edb4-49c9-b593-d223f7449a82
2017-01-30 19:31:25 +00:00
Sergey Biryukov
6afc94def0 Themes: Use curly braces for variables inside strings in `get_page_template() to explicitly specify the end of the variable name.
Props kuck1u.
Fixes #38625.

git-svn-id: https://develop.svn.wordpress.org/trunk@39884 602fd350-edb4-49c9-b593-d223f7449a82
2017-01-12 04:12:22 +00:00
Pascal Birchler
a9516abb54 Posts, Post Types: Add support for post type templates.
WordPress has supported custom page templates for over 12 years, allowing developers to create various layouts for specific pages.
While this feature is very helpful, it has always been limited to the 'page' post type and not was not available to other post types.

By opening up the page template functionality to all post types, we continue to improve the template hierarchy's flexibility.

In addition to the `Template Name` file header, the post types supported by a template can be specified using `Template Post Type: post, foo, bar`.
When at least one template exists for a post type, the 'Post Attributes' meta box will be displayed in the back end, without the need to add post type support for `'page-attributes'`. 'Post Attributes' can be customized per post type using the `'attributes'` label when registering a post type.

Props johnbillion, Mte90, dipesh.kakadiya, swissspidy.
Fixes #18375.

git-svn-id: https://develop.svn.wordpress.org/trunk@38951 602fd350-edb4-49c9-b593-d223f7449a82
2016-10-26 08:06:43 +00:00
John Blackbourn
6b8d8c90a5 Themes: Improve the inline documentation for the get_*_template() functions by providing examples instead of verbose explanations.
Fixes #38249
See #37770


git-svn-id: https://develop.svn.wordpress.org/trunk@38789 602fd350-edb4-49c9-b593-d223f7449a82
2016-10-14 14:19:08 +00:00
John Blackbourn
1271cbd258 Themes: Remove paged.php from the theme template hierarchy.
The position of this template within the hierarchy is of so little use that zero themes in the WordPress.org theme directory make use of it. It's second only to `index.php` in the hierarchy, meaning that any archive template such as `category.php` or `archive.php` will be chosen before it.

Fixes #38162
Props ryankienstra for initial patch


git-svn-id: https://develop.svn.wordpress.org/trunk@38755 602fd350-edb4-49c9-b593-d223f7449a82
2016-10-07 21:02:39 +00:00
Sergey Biryukov
2f9762b668 Docs: Use a third-person singular verb for {$type}_template_hierarchy filter added in [38385].
See #14310.

git-svn-id: https://develop.svn.wordpress.org/trunk@38609 602fd350-edb4-49c9-b593-d223f7449a82
2016-09-14 21:53:47 +00:00
John Blackbourn
e7b058117a Themes: Add the non-encoded form of the queried item slug to the template hierarchy when the slug contains non-ASCII characters.
This affects category, tag, and custom taxonomy archives, and single posts, pages, and custom post types.

Fixes #37655


git-svn-id: https://develop.svn.wordpress.org/trunk@38583 602fd350-edb4-49c9-b593-d223f7449a82
2016-09-09 00:47:17 +00:00
John Blackbourn
3b723b31ee Themes: Correct the list of possible values for the dynamic portion of the {$type}_template_hierarchy and {$type}_template filters.
See #14310


git-svn-id: https://develop.svn.wordpress.org/trunk@38428 602fd350-edb4-49c9-b593-d223f7449a82
2016-08-28 23:56:04 +00:00
John Blackbourn
6ab9dc2dba Themes: Update filter names in the inline documentation for the get_*_template() functions.
See #14310, #37770


git-svn-id: https://develop.svn.wordpress.org/trunk@38418 602fd350-edb4-49c9-b593-d223f7449a82
2016-08-28 16:14:53 +00:00
John Blackbourn
9df1424d88 Themes: Make the template hierarchy for a given template type filterable.
This introduces a `{$type}_template_hierarchy` filter that allows the hierarchy of candidate template filenames for a given template type to be filtered.

This allows the hierarchy to be added to or altered completely without resorting to re-building the hierarchy from scratch within the `template_include` filter, which is common and prone to conflicts between plugins and prone to getting out of sync with core's hierarchy.

Fixes #14310


git-svn-id: https://develop.svn.wordpress.org/trunk@38385 602fd350-edb4-49c9-b593-d223f7449a82
2016-08-26 21:02:08 +00:00
Drew Jaynes
d11f7ed391 Docs: Standardize filter docs in remaining wp-includes/* files to use third-person singular verbs per the inline documentation standards for PHP.
See #36913.


git-svn-id: https://develop.svn.wordpress.org/trunk@37518 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-22 18:49:05 +00:00
Drew Jaynes
520ed6b725 Docs: Remove/replace invalid inline @link tags in DocBlocks in wp-includes/*.
Fixes #36910.


git-svn-id: https://develop.svn.wordpress.org/trunk@37487 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-22 17:39:00 +00:00
Drew Jaynes
deaabdcc28 Docs: Correct a typo in the DocBlock summary for get_embed_template(), introduced in [36963].
Props swissspidy.
See #34561, #34278. See #35986.


git-svn-id: https://develop.svn.wordpress.org/trunk@36965 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-10 22:44:15 +00:00
Drew Jaynes
fd7c2fef96 Docs: Use a third-person singular verb in the summary for get_embed_template(), introduced in [36876].
See #34561, #34278. See #35986.


git-svn-id: https://develop.svn.wordpress.org/trunk@36963 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-10 22:08:16 +00:00
Pascal Birchler
bae3fb43a5 Embeds: Add support for embeds in the theme template hierarchy.
This allows themes to directly override the default template. The order in which the template is retrieved is as follows: `embed-$post_type-$post_format.php` -> `embed-$post_type.php` -> `embed.php`.

The `embed_template` filter gets replaced by the dynamic `{$type}_template` filter in `get_query_template()`.

Props ChriCo, swissspidy.
See #34561. Fixes #34278.

git-svn-id: https://develop.svn.wordpress.org/trunk@36876 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-07 19:33:01 +00:00
Drew Jaynes
177351364c Embeds: Introduce embed templates into the template hierarchy via theme-compat.
Splits wp-includes/embed-template.php, introduced in 4.4, into five new templates that can be individually overridden by themes:

* embed.php
* embed-404.php
* embed-content.php
* header-embed.php
* footer-embed.php

Also introduces a new template tag for outputting the site title, `the_embed_site_title()`.

The five new templates live in theme-compat, allowing for graceful fallbacks should themes prefer not to override any or all of them.

Props swissspidy, imath, ocean90, DrewAPicture.
See #34561.


git-svn-id: https://develop.svn.wordpress.org/trunk@36693 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-24 20:56:18 +00:00
John Blackbourn
c4cf5124ca Comments: The year is 2003. Permalinks are a new thing and everyone's using Blogger. It's a time when opening a modal window in JavaScript to view a section of a website is not a completely weird thing, although many users get annoyed by it. b2 has recently become WordPress, and with it comes a bunch of functionality that will become stale over the next decade, remnants of simpler times.
Twelve years later, after no fewer than three themes have intentionally implemented popup comments in their functionality, before being abandoned for at least the last six years, we've reached a time where we can put this era behind us. A time when we can remove comment popup functionality from WordPress.

If this breaks the internet, I'll eat my hat.

Fixes #28617


git-svn-id: https://develop.svn.wordpress.org/trunk@35848 602fd350-edb4-49c9-b593-d223f7449a82
2015-12-10 03:05:34 +00:00
John Blackbourn
c1aa66cd52 List the possible values for the dynamic portion of the {type}_template hook.
See #14310, #32246


git-svn-id: https://develop.svn.wordpress.org/trunk@35413 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-28 14:05:04 +00:00
Scott Taylor
c123726ba0 Docs: some @global object vernaculars should be converted to the actual object type.
See #33491.


git-svn-id: https://develop.svn.wordpress.org/trunk@35013 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-10 15:44:16 +00:00
Sergey Biryukov
02f76495c6 Add single-{post_type}-{post_name}.php to the top of the template hierarchy for single posts.
This is consistent with page and taxonomy templates, which support slugs as well.

Props ericjuden, johnbillion.
Fixes #18859.

git-svn-id: https://develop.svn.wordpress.org/trunk@34800 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-03 14:59:46 +00:00
Drew Jaynes
c928758054 Docs: Update the DocBlock descriptions for a variety of template functions to better reflect that the dynamic $type_template hook can be used to filter the template path.
It's important to reference the actual dynamic hook name instead of an alias for purposes of auto-linking in the Code Reference.

Affects the docs for:
* `get_index_template()`
* `get_404_template()`
* `get_archive_template()`
* `get_post_type_archive_template()`
* `get_author_template()`
* `get_category_template()`
* `get_tag_template()`
* `get_taxonomy_template()`
* `get_date_template()`
* `get_home_template()`
* `get_page_template()`
* `get_paged_template()`
* `get_search_template()`
* `get_single_template()`
* `get_singular_template()`
* `get_attachment_template()`

See #32246.


git-svn-id: https://develop.svn.wordpress.org/trunk@33274 602fd350-edb4-49c9-b593-d223f7449a82
2015-07-14 22:26:32 +00:00
Drew Jaynes
b55154c579 Docs: Clarify the hook docs for the {$type}_template hook to mention that non-alphanumeric characters delimiting words will also be removed from the passed $type parameter.
Also remove a now-unnecessary inline `@see` tag from the return description.

See #32246. See #32989.


git-svn-id: https://develop.svn.wordpress.org/trunk@33273 602fd350-edb4-49c9-b593-d223f7449a82
2015-07-14 22:11:52 +00:00
Drew Jaynes
7b91a81c4a Update the descriptions for get_front_page_template() and get_comments_popup_template() to reference the correct dynamic hook names.
Part props @birgire.

Fixes #32989. See #32246.


git-svn-id: https://develop.svn.wordpress.org/trunk@33272 602fd350-edb4-49c9-b593-d223f7449a82
2015-07-14 21:58:16 +00:00
Drew Jaynes
0b9afe692d Fix inline documentation syntax in the DocBlock for get_singular_template(), added in 4.3.
See [32846]. See #32891.


git-svn-id: https://develop.svn.wordpress.org/trunk@33239 602fd350-edb4-49c9-b593-d223f7449a82
2015-07-13 21:58:23 +00:00
Aaron Jorbin
301988d967 Add singular.php to template hierarchy
Singular is the only template context conditional that lacks a corresponding template. This allows some themes to simplify.

Fixes #22314.
Props chipbennett.



git-svn-id: https://develop.svn.wordpress.org/trunk@32846 602fd350-edb4-49c9-b593-d223f7449a82
2015-06-18 19:00:09 +00:00
Scott Taylor
195b61009f In get_attachment_template(), pass an array of templates to get_query_template( 'attachment', $templates ), instead of bailing on the first found template.
Props willnorris, jfarthing84, SergeyBiryukov, DrewAPicture, wonderboymusic.
Fixes #15337.


git-svn-id: https://develop.svn.wordpress.org/trunk@32804 602fd350-edb4-49c9-b593-d223f7449a82
2015-06-16 20:49:44 +00:00
Scott Taylor
c8ec7ffffa Add missing doc blocks to template.php.
See #32444.


git-svn-id: https://develop.svn.wordpress.org/trunk@32628 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-27 22:03:52 +00:00
Andrew Nacin
ca8d6fb60f Escape the $s global.
fixes #32142.


git-svn-id: https://develop.svn.wordpress.org/trunk@32298 602fd350-edb4-49c9-b593-d223f7449a82
2015-04-27 05:09:24 +00:00
Scott Taylor
5acc6bdb58 In PHP 5.0.0, is_a() became deprecated in favour of the instanceof operator. Calling is_a() would result in an E_STRICT warning.
In PHP 5.3.0, `is_a()` is no longer deprecated, and will therefore no longer throw `E_STRICT` warnings.

To avoid warnings in PHP < 5.3.0, convert all `is_a()` calls to `$var instanceof WP_Class` calls.

`instanceof` does not throw any error if the variable being tested is not an object, it simply returns `false`.

Props markoheijnen, wonderboymusic.
Fixes #25672.


git-svn-id: https://develop.svn.wordpress.org/trunk@31188 602fd350-edb4-49c9-b593-d223f7449a82
2015-01-16 01:05:52 +00:00