Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../public_h.../wp-inclu...
File: functions.php
'Cache-Control' => $cache_control,
[1500] Fix | Delete
);
[1501] Fix | Delete
[1502] Fix | Delete
if ( function_exists( 'apply_filters' ) ) {
[1503] Fix | Delete
/**
[1504] Fix | Delete
* Filters the cache-controlling HTTP headers that are used to prevent caching.
[1505] Fix | Delete
*
[1506] Fix | Delete
* @since 2.8.0
[1507] Fix | Delete
*
[1508] Fix | Delete
* @see wp_get_nocache_headers()
[1509] Fix | Delete
*
[1510] Fix | Delete
* @param array $headers Header names and field values.
[1511] Fix | Delete
*/
[1512] Fix | Delete
$headers = (array) apply_filters( 'nocache_headers', $headers );
[1513] Fix | Delete
}
[1514] Fix | Delete
$headers['Last-Modified'] = false;
[1515] Fix | Delete
return $headers;
[1516] Fix | Delete
}
[1517] Fix | Delete
[1518] Fix | Delete
/**
[1519] Fix | Delete
* Sets the HTTP headers to prevent caching for the different browsers.
[1520] Fix | Delete
*
[1521] Fix | Delete
* Different browsers support different nocache headers, so several
[1522] Fix | Delete
* headers must be sent so that all of them get the point that no
[1523] Fix | Delete
* caching should occur.
[1524] Fix | Delete
*
[1525] Fix | Delete
* @since 2.0.0
[1526] Fix | Delete
*
[1527] Fix | Delete
* @see wp_get_nocache_headers()
[1528] Fix | Delete
*/
[1529] Fix | Delete
function nocache_headers() {
[1530] Fix | Delete
if ( headers_sent() ) {
[1531] Fix | Delete
return;
[1532] Fix | Delete
}
[1533] Fix | Delete
[1534] Fix | Delete
$headers = wp_get_nocache_headers();
[1535] Fix | Delete
[1536] Fix | Delete
unset( $headers['Last-Modified'] );
[1537] Fix | Delete
[1538] Fix | Delete
header_remove( 'Last-Modified' );
[1539] Fix | Delete
[1540] Fix | Delete
foreach ( $headers as $name => $field_value ) {
[1541] Fix | Delete
header( "{$name}: {$field_value}" );
[1542] Fix | Delete
}
[1543] Fix | Delete
}
[1544] Fix | Delete
[1545] Fix | Delete
/**
[1546] Fix | Delete
* Sets the HTTP headers for caching for 10 days with JavaScript content type.
[1547] Fix | Delete
*
[1548] Fix | Delete
* @since 2.1.0
[1549] Fix | Delete
*/
[1550] Fix | Delete
function cache_javascript_headers() {
[1551] Fix | Delete
$expires_offset = 10 * DAY_IN_SECONDS;
[1552] Fix | Delete
[1553] Fix | Delete
header( 'Content-Type: text/javascript; charset=' . get_bloginfo( 'charset' ) );
[1554] Fix | Delete
header( 'Vary: Accept-Encoding' ); // Handle proxies.
[1555] Fix | Delete
header( 'Expires: ' . gmdate( 'D, d M Y H:i:s', time() + $expires_offset ) . ' GMT' );
[1556] Fix | Delete
}
[1557] Fix | Delete
[1558] Fix | Delete
/**
[1559] Fix | Delete
* Retrieves the number of database queries during the WordPress execution.
[1560] Fix | Delete
*
[1561] Fix | Delete
* @since 2.0.0
[1562] Fix | Delete
*
[1563] Fix | Delete
* @global wpdb $wpdb WordPress database abstraction object.
[1564] Fix | Delete
*
[1565] Fix | Delete
* @return int Number of database queries.
[1566] Fix | Delete
*/
[1567] Fix | Delete
function get_num_queries() {
[1568] Fix | Delete
global $wpdb;
[1569] Fix | Delete
return $wpdb->num_queries;
[1570] Fix | Delete
}
[1571] Fix | Delete
[1572] Fix | Delete
/**
[1573] Fix | Delete
* Determines whether input is yes or no.
[1574] Fix | Delete
*
[1575] Fix | Delete
* Must be 'y' to be true.
[1576] Fix | Delete
*
[1577] Fix | Delete
* @since 1.0.0
[1578] Fix | Delete
*
[1579] Fix | Delete
* @param string $yn Character string containing either 'y' (yes) or 'n' (no).
[1580] Fix | Delete
* @return bool True if 'y', false on anything else.
[1581] Fix | Delete
*/
[1582] Fix | Delete
function bool_from_yn( $yn ) {
[1583] Fix | Delete
return ( 'y' === strtolower( $yn ) );
[1584] Fix | Delete
}
[1585] Fix | Delete
[1586] Fix | Delete
/**
[1587] Fix | Delete
* Loads the feed template from the use of an action hook.
[1588] Fix | Delete
*
[1589] Fix | Delete
* If the feed action does not have a hook, then the function will die with a
[1590] Fix | Delete
* message telling the visitor that the feed is not valid.
[1591] Fix | Delete
*
[1592] Fix | Delete
* It is better to only have one hook for each feed.
[1593] Fix | Delete
*
[1594] Fix | Delete
* @since 2.1.0
[1595] Fix | Delete
*
[1596] Fix | Delete
* @global WP_Query $wp_query WordPress Query object.
[1597] Fix | Delete
*/
[1598] Fix | Delete
function do_feed() {
[1599] Fix | Delete
global $wp_query;
[1600] Fix | Delete
[1601] Fix | Delete
$feed = get_query_var( 'feed' );
[1602] Fix | Delete
[1603] Fix | Delete
// Remove the pad, if present.
[1604] Fix | Delete
$feed = preg_replace( '/^_+/', '', $feed );
[1605] Fix | Delete
[1606] Fix | Delete
if ( '' === $feed || 'feed' === $feed ) {
[1607] Fix | Delete
$feed = get_default_feed();
[1608] Fix | Delete
}
[1609] Fix | Delete
[1610] Fix | Delete
if ( ! has_action( "do_feed_{$feed}" ) ) {
[1611] Fix | Delete
wp_die( __( '<strong>Error:</strong> This is not a valid feed template.' ), '', array( 'response' => 404 ) );
[1612] Fix | Delete
}
[1613] Fix | Delete
[1614] Fix | Delete
/**
[1615] Fix | Delete
* Fires once the given feed is loaded.
[1616] Fix | Delete
*
[1617] Fix | Delete
* The dynamic portion of the hook name, `$feed`, refers to the feed template name.
[1618] Fix | Delete
*
[1619] Fix | Delete
* Possible hook names include:
[1620] Fix | Delete
*
[1621] Fix | Delete
* - `do_feed_atom`
[1622] Fix | Delete
* - `do_feed_rdf`
[1623] Fix | Delete
* - `do_feed_rss`
[1624] Fix | Delete
* - `do_feed_rss2`
[1625] Fix | Delete
*
[1626] Fix | Delete
* @since 2.1.0
[1627] Fix | Delete
* @since 4.4.0 The `$feed` parameter was added.
[1628] Fix | Delete
*
[1629] Fix | Delete
* @param bool $is_comment_feed Whether the feed is a comment feed.
[1630] Fix | Delete
* @param string $feed The feed name.
[1631] Fix | Delete
*/
[1632] Fix | Delete
do_action( "do_feed_{$feed}", $wp_query->is_comment_feed, $feed );
[1633] Fix | Delete
}
[1634] Fix | Delete
[1635] Fix | Delete
/**
[1636] Fix | Delete
* Loads the RDF RSS 0.91 Feed template.
[1637] Fix | Delete
*
[1638] Fix | Delete
* @since 2.1.0
[1639] Fix | Delete
*
[1640] Fix | Delete
* @see load_template()
[1641] Fix | Delete
*/
[1642] Fix | Delete
function do_feed_rdf() {
[1643] Fix | Delete
load_template( ABSPATH . WPINC . '/feed-rdf.php' );
[1644] Fix | Delete
}
[1645] Fix | Delete
[1646] Fix | Delete
/**
[1647] Fix | Delete
* Loads the RSS 1.0 Feed Template.
[1648] Fix | Delete
*
[1649] Fix | Delete
* @since 2.1.0
[1650] Fix | Delete
*
[1651] Fix | Delete
* @see load_template()
[1652] Fix | Delete
*/
[1653] Fix | Delete
function do_feed_rss() {
[1654] Fix | Delete
load_template( ABSPATH . WPINC . '/feed-rss.php' );
[1655] Fix | Delete
}
[1656] Fix | Delete
[1657] Fix | Delete
/**
[1658] Fix | Delete
* Loads either the RSS2 comment feed or the RSS2 posts feed.
[1659] Fix | Delete
*
[1660] Fix | Delete
* @since 2.1.0
[1661] Fix | Delete
*
[1662] Fix | Delete
* @see load_template()
[1663] Fix | Delete
*
[1664] Fix | Delete
* @param bool $for_comments True for the comment feed, false for normal feed.
[1665] Fix | Delete
*/
[1666] Fix | Delete
function do_feed_rss2( $for_comments ) {
[1667] Fix | Delete
if ( $for_comments ) {
[1668] Fix | Delete
load_template( ABSPATH . WPINC . '/feed-rss2-comments.php' );
[1669] Fix | Delete
} else {
[1670] Fix | Delete
load_template( ABSPATH . WPINC . '/feed-rss2.php' );
[1671] Fix | Delete
}
[1672] Fix | Delete
}
[1673] Fix | Delete
[1674] Fix | Delete
/**
[1675] Fix | Delete
* Loads either Atom comment feed or Atom posts feed.
[1676] Fix | Delete
*
[1677] Fix | Delete
* @since 2.1.0
[1678] Fix | Delete
*
[1679] Fix | Delete
* @see load_template()
[1680] Fix | Delete
*
[1681] Fix | Delete
* @param bool $for_comments True for the comment feed, false for normal feed.
[1682] Fix | Delete
*/
[1683] Fix | Delete
function do_feed_atom( $for_comments ) {
[1684] Fix | Delete
if ( $for_comments ) {
[1685] Fix | Delete
load_template( ABSPATH . WPINC . '/feed-atom-comments.php' );
[1686] Fix | Delete
} else {
[1687] Fix | Delete
load_template( ABSPATH . WPINC . '/feed-atom.php' );
[1688] Fix | Delete
}
[1689] Fix | Delete
}
[1690] Fix | Delete
[1691] Fix | Delete
/**
[1692] Fix | Delete
* Displays the default robots.txt file content.
[1693] Fix | Delete
*
[1694] Fix | Delete
* @since 2.1.0
[1695] Fix | Delete
* @since 5.3.0 Remove the "Disallow: /" output if search engine visibility is
[1696] Fix | Delete
* discouraged in favor of robots meta HTML tag via wp_robots_no_robots()
[1697] Fix | Delete
* filter callback.
[1698] Fix | Delete
*/
[1699] Fix | Delete
function do_robots() {
[1700] Fix | Delete
header( 'Content-Type: text/plain; charset=utf-8' );
[1701] Fix | Delete
[1702] Fix | Delete
/**
[1703] Fix | Delete
* Fires when displaying the robots.txt file.
[1704] Fix | Delete
*
[1705] Fix | Delete
* @since 2.1.0
[1706] Fix | Delete
*/
[1707] Fix | Delete
do_action( 'do_robotstxt' );
[1708] Fix | Delete
[1709] Fix | Delete
$output = "User-agent: *\n";
[1710] Fix | Delete
$public = get_option( 'blog_public' );
[1711] Fix | Delete
[1712] Fix | Delete
$site_url = parse_url( site_url() );
[1713] Fix | Delete
$path = ( ! empty( $site_url['path'] ) ) ? $site_url['path'] : '';
[1714] Fix | Delete
$output .= "Disallow: $path/wp-admin/\n";
[1715] Fix | Delete
$output .= "Allow: $path/wp-admin/admin-ajax.php\n";
[1716] Fix | Delete
[1717] Fix | Delete
/**
[1718] Fix | Delete
* Filters the robots.txt output.
[1719] Fix | Delete
*
[1720] Fix | Delete
* @since 3.0.0
[1721] Fix | Delete
*
[1722] Fix | Delete
* @param string $output The robots.txt output.
[1723] Fix | Delete
* @param bool $public Whether the site is considered "public".
[1724] Fix | Delete
*/
[1725] Fix | Delete
echo apply_filters( 'robots_txt', $output, $public );
[1726] Fix | Delete
}
[1727] Fix | Delete
[1728] Fix | Delete
/**
[1729] Fix | Delete
* Displays the favicon.ico file content.
[1730] Fix | Delete
*
[1731] Fix | Delete
* @since 5.4.0
[1732] Fix | Delete
*/
[1733] Fix | Delete
function do_favicon() {
[1734] Fix | Delete
/**
[1735] Fix | Delete
* Fires when serving the favicon.ico file.
[1736] Fix | Delete
*
[1737] Fix | Delete
* @since 5.4.0
[1738] Fix | Delete
*/
[1739] Fix | Delete
do_action( 'do_faviconico' );
[1740] Fix | Delete
[1741] Fix | Delete
wp_redirect( get_site_icon_url( 32, includes_url( 'images/w-logo-blue-white-bg.png' ) ) );
[1742] Fix | Delete
exit;
[1743] Fix | Delete
}
[1744] Fix | Delete
[1745] Fix | Delete
/**
[1746] Fix | Delete
* Determines whether WordPress is already installed.
[1747] Fix | Delete
*
[1748] Fix | Delete
* The cache will be checked first. If you have a cache plugin, which saves
[1749] Fix | Delete
* the cache values, then this will work. If you use the default WordPress
[1750] Fix | Delete
* cache, and the database goes away, then you might have problems.
[1751] Fix | Delete
*
[1752] Fix | Delete
* Checks for the 'siteurl' option for whether WordPress is installed.
[1753] Fix | Delete
*
[1754] Fix | Delete
* For more information on this and similar theme functions, check out
[1755] Fix | Delete
* the {@link https://developer.wordpress.org/themes/basics/conditional-tags/
[1756] Fix | Delete
* Conditional Tags} article in the Theme Developer Handbook.
[1757] Fix | Delete
*
[1758] Fix | Delete
* @since 2.1.0
[1759] Fix | Delete
*
[1760] Fix | Delete
* @global wpdb $wpdb WordPress database abstraction object.
[1761] Fix | Delete
*
[1762] Fix | Delete
* @return bool Whether the site is already installed.
[1763] Fix | Delete
*/
[1764] Fix | Delete
function is_blog_installed() {
[1765] Fix | Delete
global $wpdb;
[1766] Fix | Delete
[1767] Fix | Delete
/*
[1768] Fix | Delete
* Check cache first. If options table goes away and we have true
[1769] Fix | Delete
* cached, oh well.
[1770] Fix | Delete
*/
[1771] Fix | Delete
if ( wp_cache_get( 'is_blog_installed' ) ) {
[1772] Fix | Delete
return true;
[1773] Fix | Delete
}
[1774] Fix | Delete
[1775] Fix | Delete
$suppress = $wpdb->suppress_errors();
[1776] Fix | Delete
[1777] Fix | Delete
if ( ! wp_installing() ) {
[1778] Fix | Delete
$alloptions = wp_load_alloptions();
[1779] Fix | Delete
}
[1780] Fix | Delete
[1781] Fix | Delete
// If siteurl is not set to autoload, check it specifically.
[1782] Fix | Delete
if ( ! isset( $alloptions['siteurl'] ) ) {
[1783] Fix | Delete
$installed = $wpdb->get_var( "SELECT option_value FROM $wpdb->options WHERE option_name = 'siteurl'" );
[1784] Fix | Delete
} else {
[1785] Fix | Delete
$installed = $alloptions['siteurl'];
[1786] Fix | Delete
}
[1787] Fix | Delete
[1788] Fix | Delete
$wpdb->suppress_errors( $suppress );
[1789] Fix | Delete
[1790] Fix | Delete
$installed = ! empty( $installed );
[1791] Fix | Delete
wp_cache_set( 'is_blog_installed', $installed );
[1792] Fix | Delete
[1793] Fix | Delete
if ( $installed ) {
[1794] Fix | Delete
return true;
[1795] Fix | Delete
}
[1796] Fix | Delete
[1797] Fix | Delete
// If visiting repair.php, return true and let it take over.
[1798] Fix | Delete
if ( defined( 'WP_REPAIRING' ) ) {
[1799] Fix | Delete
return true;
[1800] Fix | Delete
}
[1801] Fix | Delete
[1802] Fix | Delete
$suppress = $wpdb->suppress_errors();
[1803] Fix | Delete
[1804] Fix | Delete
/*
[1805] Fix | Delete
* Loop over the WP tables. If none exist, then scratch installation is allowed.
[1806] Fix | Delete
* If one or more exist, suggest table repair since we got here because the
[1807] Fix | Delete
* options table could not be accessed.
[1808] Fix | Delete
*/
[1809] Fix | Delete
$wp_tables = $wpdb->tables();
[1810] Fix | Delete
foreach ( $wp_tables as $table ) {
[1811] Fix | Delete
// The existence of custom user tables shouldn't suggest an unwise state or prevent a clean installation.
[1812] Fix | Delete
if ( defined( 'CUSTOM_USER_TABLE' ) && CUSTOM_USER_TABLE === $table ) {
[1813] Fix | Delete
continue;
[1814] Fix | Delete
}
[1815] Fix | Delete
[1816] Fix | Delete
if ( defined( 'CUSTOM_USER_META_TABLE' ) && CUSTOM_USER_META_TABLE === $table ) {
[1817] Fix | Delete
continue;
[1818] Fix | Delete
}
[1819] Fix | Delete
[1820] Fix | Delete
$described_table = $wpdb->get_results( "DESCRIBE $table;" );
[1821] Fix | Delete
if (
[1822] Fix | Delete
( ! $described_table && empty( $wpdb->last_error ) ) ||
[1823] Fix | Delete
( is_array( $described_table ) && 0 === count( $described_table ) )
[1824] Fix | Delete
) {
[1825] Fix | Delete
continue;
[1826] Fix | Delete
}
[1827] Fix | Delete
[1828] Fix | Delete
// One or more tables exist. This is not good.
[1829] Fix | Delete
[1830] Fix | Delete
wp_load_translations_early();
[1831] Fix | Delete
[1832] Fix | Delete
// Die with a DB error.
[1833] Fix | Delete
$wpdb->error = sprintf(
[1834] Fix | Delete
/* translators: %s: Database repair URL. */
[1835] Fix | Delete
__( 'One or more database tables are unavailable. The database may need to be <a href="%s">repaired</a>.' ),
[1836] Fix | Delete
'maint/repair.php?referrer=is_blog_installed'
[1837] Fix | Delete
);
[1838] Fix | Delete
[1839] Fix | Delete
dead_db();
[1840] Fix | Delete
}
[1841] Fix | Delete
[1842] Fix | Delete
$wpdb->suppress_errors( $suppress );
[1843] Fix | Delete
[1844] Fix | Delete
wp_cache_set( 'is_blog_installed', false );
[1845] Fix | Delete
[1846] Fix | Delete
return false;
[1847] Fix | Delete
}
[1848] Fix | Delete
[1849] Fix | Delete
/**
[1850] Fix | Delete
* Retrieves URL with nonce added to URL query.
[1851] Fix | Delete
*
[1852] Fix | Delete
* @since 2.0.4
[1853] Fix | Delete
*
[1854] Fix | Delete
* @param string $actionurl URL to add nonce action.
[1855] Fix | Delete
* @param int|string $action Optional. Nonce action name. Default -1.
[1856] Fix | Delete
* @param string $name Optional. Nonce name. Default '_wpnonce'.
[1857] Fix | Delete
* @return string Escaped URL with nonce action added.
[1858] Fix | Delete
*/
[1859] Fix | Delete
function wp_nonce_url( $actionurl, $action = -1, $name = '_wpnonce' ) {
[1860] Fix | Delete
$actionurl = str_replace( '&amp;', '&', $actionurl );
[1861] Fix | Delete
return esc_html( add_query_arg( $name, wp_create_nonce( $action ), $actionurl ) );
[1862] Fix | Delete
}
[1863] Fix | Delete
[1864] Fix | Delete
/**
[1865] Fix | Delete
* Retrieves or display nonce hidden field for forms.
[1866] Fix | Delete
*
[1867] Fix | Delete
* The nonce field is used to validate that the contents of the form came from
[1868] Fix | Delete
* the location on the current site and not somewhere else. The nonce does not
[1869] Fix | Delete
* offer absolute protection, but should protect against most cases. It is very
[1870] Fix | Delete
* important to use nonce field in forms.
[1871] Fix | Delete
*
[1872] Fix | Delete
* The $action and $name are optional, but if you want to have better security,
[1873] Fix | Delete
* it is strongly suggested to set those two parameters. It is easier to just
[1874] Fix | Delete
* call the function without any parameters, because validation of the nonce
[1875] Fix | Delete
* doesn't require any parameters, but since crackers know what the default is
[1876] Fix | Delete
* it won't be difficult for them to find a way around your nonce and cause
[1877] Fix | Delete
* damage.
[1878] Fix | Delete
*
[1879] Fix | Delete
* The input name will be whatever $name value you gave. The input value will be
[1880] Fix | Delete
* the nonce creation value.
[1881] Fix | Delete
*
[1882] Fix | Delete
* @since 2.0.4
[1883] Fix | Delete
*
[1884] Fix | Delete
* @param int|string $action Optional. Action name. Default -1.
[1885] Fix | Delete
* @param string $name Optional. Nonce name. Default '_wpnonce'.
[1886] Fix | Delete
* @param bool $referer Optional. Whether to set the referer field for validation. Default true.
[1887] Fix | Delete
* @param bool $display Optional. Whether to display or return hidden form field. Default true.
[1888] Fix | Delete
* @return string Nonce field HTML markup.
[1889] Fix | Delete
*/
[1890] Fix | Delete
function wp_nonce_field( $action = -1, $name = '_wpnonce', $referer = true, $display = true ) {
[1891] Fix | Delete
$name = esc_attr( $name );
[1892] Fix | Delete
$nonce_field = '<input type="hidden" id="' . $name . '" name="' . $name . '" value="' . wp_create_nonce( $action ) . '" />';
[1893] Fix | Delete
[1894] Fix | Delete
if ( $referer ) {
[1895] Fix | Delete
$nonce_field .= wp_referer_field( false );
[1896] Fix | Delete
}
[1897] Fix | Delete
[1898] Fix | Delete
if ( $display ) {
[1899] Fix | Delete
echo $nonce_field;
[1900] Fix | Delete
}
[1901] Fix | Delete
[1902] Fix | Delete
return $nonce_field;
[1903] Fix | Delete
}
[1904] Fix | Delete
[1905] Fix | Delete
/**
[1906] Fix | Delete
* Retrieves or displays referer hidden field for forms.
[1907] Fix | Delete
*
[1908] Fix | Delete
* The referer link is the current Request URI from the server super global. The
[1909] Fix | Delete
* input name is '_wp_http_referer', in case you wanted to check manually.
[1910] Fix | Delete
*
[1911] Fix | Delete
* @since 2.0.4
[1912] Fix | Delete
*
[1913] Fix | Delete
* @param bool $display Optional. Whether to echo or return the referer field. Default true.
[1914] Fix | Delete
* @return string Referer field HTML markup.
[1915] Fix | Delete
*/
[1916] Fix | Delete
function wp_referer_field( $display = true ) {
[1917] Fix | Delete
$request_url = remove_query_arg( '_wp_http_referer' );
[1918] Fix | Delete
$referer_field = '<input type="hidden" name="_wp_http_referer" value="' . esc_url( $request_url ) . '" />';
[1919] Fix | Delete
[1920] Fix | Delete
if ( $display ) {
[1921] Fix | Delete
echo $referer_field;
[1922] Fix | Delete
}
[1923] Fix | Delete
[1924] Fix | Delete
return $referer_field;
[1925] Fix | Delete
}
[1926] Fix | Delete
[1927] Fix | Delete
/**
[1928] Fix | Delete
* Retrieves or displays original referer hidden field for forms.
[1929] Fix | Delete
*
[1930] Fix | Delete
* The input name is '_wp_original_http_referer' and will be either the same
[1931] Fix | Delete
* value of wp_referer_field(), if that was posted already or it will be the
[1932] Fix | Delete
* current page, if it doesn't exist.
[1933] Fix | Delete
*
[1934] Fix | Delete
* @since 2.0.4
[1935] Fix | Delete
*
[1936] Fix | Delete
* @param bool $display Optional. Whether to echo the original http referer. Default true.
[1937] Fix | Delete
* @param string $jump_back_to Optional. Can be 'previous' or page you want to jump back to.
[1938] Fix | Delete
* Default 'current'.
[1939] Fix | Delete
* @return string Original referer field.
[1940] Fix | Delete
*/
[1941] Fix | Delete
function wp_original_referer_field( $display = true, $jump_back_to = 'current' ) {
[1942] Fix | Delete
$ref = wp_get_original_referer();
[1943] Fix | Delete
[1944] Fix | Delete
if ( ! $ref ) {
[1945] Fix | Delete
$ref = ( 'previous' === $jump_back_to ) ? wp_get_referer() : wp_unslash( $_SERVER['REQUEST_URI'] );
[1946] Fix | Delete
}
[1947] Fix | Delete
[1948] Fix | Delete
$orig_referer_field = '<input type="hidden" name="_wp_original_http_referer" value="' . esc_attr( $ref ) . '" />';
[1949] Fix | Delete
[1950] Fix | Delete
if ( $display ) {
[1951] Fix | Delete
echo $orig_referer_field;
[1952] Fix | Delete
}
[1953] Fix | Delete
[1954] Fix | Delete
return $orig_referer_field;
[1955] Fix | Delete
}
[1956] Fix | Delete
[1957] Fix | Delete
/**
[1958] Fix | Delete
* Retrieves referer from '_wp_http_referer' or HTTP referer.
[1959] Fix | Delete
*
[1960] Fix | Delete
* If it's the same as the current request URL, will return false.
[1961] Fix | Delete
*
[1962] Fix | Delete
* @since 2.0.4
[1963] Fix | Delete
*
[1964] Fix | Delete
* @return string|false Referer URL on success, false on failure.
[1965] Fix | Delete
*/
[1966] Fix | Delete
function wp_get_referer() {
[1967] Fix | Delete
// Return early if called before wp_validate_redirect() is defined.
[1968] Fix | Delete
if ( ! function_exists( 'wp_validate_redirect' ) ) {
[1969] Fix | Delete
return false;
[1970] Fix | Delete
}
[1971] Fix | Delete
[1972] Fix | Delete
$ref = wp_get_raw_referer();
[1973] Fix | Delete
[1974] Fix | Delete
if ( $ref && wp_unslash( $_SERVER['REQUEST_URI'] ) !== $ref
[1975] Fix | Delete
&& home_url() . wp_unslash( $_SERVER['REQUEST_URI'] ) !== $ref
[1976] Fix | Delete
) {
[1977] Fix | Delete
return wp_validate_redirect( $ref, false );
[1978] Fix | Delete
}
[1979] Fix | Delete
[1980] Fix | Delete
return false;
[1981] Fix | Delete
}
[1982] Fix | Delete
[1983] Fix | Delete
/**
[1984] Fix | Delete
* Retrieves unvalidated referer from the '_wp_http_referer' URL query variable or the HTTP referer.
[1985] Fix | Delete
*
[1986] Fix | Delete
* If the value of the '_wp_http_referer' URL query variable is not a string then it will be ignored.
[1987] Fix | Delete
*
[1988] Fix | Delete
* Do not use for redirects, use wp_get_referer() instead.
[1989] Fix | Delete
*
[1990] Fix | Delete
* @since 4.5.0
[1991] Fix | Delete
*
[1992] Fix | Delete
* @return string|false Referer URL on success, false on failure.
[1993] Fix | Delete
*/
[1994] Fix | Delete
function wp_get_raw_referer() {
[1995] Fix | Delete
if ( ! empty( $_REQUEST['_wp_http_referer'] ) && is_string( $_REQUEST['_wp_http_referer'] ) ) {
[1996] Fix | Delete
return wp_unslash( $_REQUEST['_wp_http_referer'] );
[1997] Fix | Delete
} elseif ( ! empty( $_SERVER['HTTP_REFERER'] ) ) {
[1998] Fix | Delete
return wp_unslash( $_SERVER['HTTP_REFERER'] );
[1999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function