mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-04-02 19:54:28 +00:00
Bootstrap/Load: Make handling the /favicon.ico requests more flexible.
Previously, `wp_favicon_request()` was introduced in [13205] to avoid a performance hit of serving a full 404 page on every favicon request. While working as intended, that implementation did not provide a way for theme or plugin authors to manage the behavior of favicon requests. This changeset implements the following logic (only applied if WordPress is installed in the root directory): * If there is a Site Icon set in Customizer, redirect `/favicon.ico` requests to that icon. * Otherwise, use the WordPress logo as a default icon. * If a physical `/favicon.ico` file exists, do nothing, let the server handle the request. Handling `/favicon.ico` is now more consistent with handling `/robots.txt` requests. New functions and hooks: * Introduce `is_favicon()` conditional tag to complement `is_robots()`. * Introduce `do_favicon` action to complement `do_robots` and use it in template loader. * Introduce `do_favicon()` function, hooked to the above action by default, to complement `do_robots()`. * Introduce `do_faviconico` action to complement `do_robotstxt`, for plugins to override the default behavior. * Mark `wp_favicon_request()` as deprecated in favor of `do_favicon()`. Props jonoaldersonwp, birgire, joostdevalk, mukesh27, SergeyBiryukov. Fixes #47398. git-svn-id: https://develop.svn.wordpress.org/trunk@47018 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -623,7 +623,7 @@ function is_preview() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the query for the robots file?
|
||||
* Is the query for the robots.txt file?
|
||||
*
|
||||
* @since 2.1.0
|
||||
*
|
||||
@@ -642,6 +642,26 @@ function is_robots() {
|
||||
return $wp_query->is_robots();
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the query for the favicon.ico file?
|
||||
*
|
||||
* @since 5.4.0
|
||||
*
|
||||
* @global WP_Query $wp_query WordPress Query object.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function is_favicon() {
|
||||
global $wp_query;
|
||||
|
||||
if ( ! isset( $wp_query ) ) {
|
||||
_doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1.0' );
|
||||
return false;
|
||||
}
|
||||
|
||||
return $wp_query->is_favicon();
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines whether the query is for a search.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user