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: class-wp-theme.php
* Translation files are not inherited from the parent theme. TODO: If this fails for the
[1500] Fix | Delete
* child theme, it should probably try to load the parent theme's translations.
[1501] Fix | Delete
*
[1502] Fix | Delete
* @since 3.4.0
[1503] Fix | Delete
*
[1504] Fix | Delete
* @return bool True if the textdomain was successfully loaded or has already been loaded.
[1505] Fix | Delete
* False if no textdomain was specified in the file headers, or if the domain could not be loaded.
[1506] Fix | Delete
*/
[1507] Fix | Delete
public function load_textdomain() {
[1508] Fix | Delete
if ( isset( $this->textdomain_loaded ) ) {
[1509] Fix | Delete
return $this->textdomain_loaded;
[1510] Fix | Delete
}
[1511] Fix | Delete
[1512] Fix | Delete
$textdomain = $this->get( 'TextDomain' );
[1513] Fix | Delete
if ( ! $textdomain ) {
[1514] Fix | Delete
$this->textdomain_loaded = false;
[1515] Fix | Delete
return false;
[1516] Fix | Delete
}
[1517] Fix | Delete
[1518] Fix | Delete
if ( is_textdomain_loaded( $textdomain ) ) {
[1519] Fix | Delete
$this->textdomain_loaded = true;
[1520] Fix | Delete
return true;
[1521] Fix | Delete
}
[1522] Fix | Delete
[1523] Fix | Delete
$path = $this->get_stylesheet_directory();
[1524] Fix | Delete
$domainpath = $this->get( 'DomainPath' );
[1525] Fix | Delete
if ( $domainpath ) {
[1526] Fix | Delete
$path .= $domainpath;
[1527] Fix | Delete
} else {
[1528] Fix | Delete
$path .= '/languages';
[1529] Fix | Delete
}
[1530] Fix | Delete
[1531] Fix | Delete
$this->textdomain_loaded = load_theme_textdomain( $textdomain, $path );
[1532] Fix | Delete
return $this->textdomain_loaded;
[1533] Fix | Delete
}
[1534] Fix | Delete
[1535] Fix | Delete
/**
[1536] Fix | Delete
* Determines whether the theme is allowed (multisite only).
[1537] Fix | Delete
*
[1538] Fix | Delete
* @since 3.4.0
[1539] Fix | Delete
*
[1540] Fix | Delete
* @param string $check Optional. Whether to check only the 'network'-wide settings, the 'site'
[1541] Fix | Delete
* settings, or 'both'. Defaults to 'both'.
[1542] Fix | Delete
* @param int $blog_id Optional. Ignored if only network-wide settings are checked. Defaults to current site.
[1543] Fix | Delete
* @return bool Whether the theme is allowed for the network. Returns true in single-site.
[1544] Fix | Delete
*/
[1545] Fix | Delete
public function is_allowed( $check = 'both', $blog_id = null ) {
[1546] Fix | Delete
if ( ! is_multisite() ) {
[1547] Fix | Delete
return true;
[1548] Fix | Delete
}
[1549] Fix | Delete
[1550] Fix | Delete
if ( 'both' === $check || 'network' === $check ) {
[1551] Fix | Delete
$allowed = self::get_allowed_on_network();
[1552] Fix | Delete
if ( ! empty( $allowed[ $this->get_stylesheet() ] ) ) {
[1553] Fix | Delete
return true;
[1554] Fix | Delete
}
[1555] Fix | Delete
}
[1556] Fix | Delete
[1557] Fix | Delete
if ( 'both' === $check || 'site' === $check ) {
[1558] Fix | Delete
$allowed = self::get_allowed_on_site( $blog_id );
[1559] Fix | Delete
if ( ! empty( $allowed[ $this->get_stylesheet() ] ) ) {
[1560] Fix | Delete
return true;
[1561] Fix | Delete
}
[1562] Fix | Delete
}
[1563] Fix | Delete
[1564] Fix | Delete
return false;
[1565] Fix | Delete
}
[1566] Fix | Delete
[1567] Fix | Delete
/**
[1568] Fix | Delete
* Returns whether this theme is a block-based theme or not.
[1569] Fix | Delete
*
[1570] Fix | Delete
* @since 5.9.0
[1571] Fix | Delete
*
[1572] Fix | Delete
* @return bool
[1573] Fix | Delete
*/
[1574] Fix | Delete
public function is_block_theme() {
[1575] Fix | Delete
if ( isset( $this->block_theme ) ) {
[1576] Fix | Delete
return $this->block_theme;
[1577] Fix | Delete
}
[1578] Fix | Delete
[1579] Fix | Delete
$paths_to_index_block_template = array(
[1580] Fix | Delete
$this->get_file_path( '/templates/index.html' ),
[1581] Fix | Delete
$this->get_file_path( '/block-templates/index.html' ),
[1582] Fix | Delete
);
[1583] Fix | Delete
[1584] Fix | Delete
$this->block_theme = false;
[1585] Fix | Delete
[1586] Fix | Delete
foreach ( $paths_to_index_block_template as $path_to_index_block_template ) {
[1587] Fix | Delete
if ( is_file( $path_to_index_block_template ) && is_readable( $path_to_index_block_template ) ) {
[1588] Fix | Delete
$this->block_theme = true;
[1589] Fix | Delete
break;
[1590] Fix | Delete
}
[1591] Fix | Delete
}
[1592] Fix | Delete
[1593] Fix | Delete
return $this->block_theme;
[1594] Fix | Delete
}
[1595] Fix | Delete
[1596] Fix | Delete
/**
[1597] Fix | Delete
* Retrieves the path of a file in the theme.
[1598] Fix | Delete
*
[1599] Fix | Delete
* Searches in the stylesheet directory before the template directory so themes
[1600] Fix | Delete
* which inherit from a parent theme can just override one file.
[1601] Fix | Delete
*
[1602] Fix | Delete
* @since 5.9.0
[1603] Fix | Delete
*
[1604] Fix | Delete
* @param string $file Optional. File to search for in the stylesheet directory.
[1605] Fix | Delete
* @return string The path of the file.
[1606] Fix | Delete
*/
[1607] Fix | Delete
public function get_file_path( $file = '' ) {
[1608] Fix | Delete
$file = ltrim( $file, '/' );
[1609] Fix | Delete
[1610] Fix | Delete
$stylesheet_directory = $this->get_stylesheet_directory();
[1611] Fix | Delete
$template_directory = $this->get_template_directory();
[1612] Fix | Delete
[1613] Fix | Delete
if ( empty( $file ) ) {
[1614] Fix | Delete
$path = $stylesheet_directory;
[1615] Fix | Delete
} elseif ( $stylesheet_directory !== $template_directory && file_exists( $stylesheet_directory . '/' . $file ) ) {
[1616] Fix | Delete
$path = $stylesheet_directory . '/' . $file;
[1617] Fix | Delete
} else {
[1618] Fix | Delete
$path = $template_directory . '/' . $file;
[1619] Fix | Delete
}
[1620] Fix | Delete
[1621] Fix | Delete
/** This filter is documented in wp-includes/link-template.php */
[1622] Fix | Delete
return apply_filters( 'theme_file_path', $path, $file );
[1623] Fix | Delete
}
[1624] Fix | Delete
[1625] Fix | Delete
/**
[1626] Fix | Delete
* Determines the latest WordPress default theme that is installed.
[1627] Fix | Delete
*
[1628] Fix | Delete
* This hits the filesystem.
[1629] Fix | Delete
*
[1630] Fix | Delete
* @since 4.4.0
[1631] Fix | Delete
*
[1632] Fix | Delete
* @return WP_Theme|false Object, or false if no theme is installed, which would be bad.
[1633] Fix | Delete
*/
[1634] Fix | Delete
public static function get_core_default_theme() {
[1635] Fix | Delete
foreach ( array_reverse( self::$default_themes ) as $slug => $name ) {
[1636] Fix | Delete
$theme = wp_get_theme( $slug );
[1637] Fix | Delete
if ( $theme->exists() ) {
[1638] Fix | Delete
return $theme;
[1639] Fix | Delete
}
[1640] Fix | Delete
}
[1641] Fix | Delete
return false;
[1642] Fix | Delete
}
[1643] Fix | Delete
[1644] Fix | Delete
/**
[1645] Fix | Delete
* Returns array of stylesheet names of themes allowed on the site or network.
[1646] Fix | Delete
*
[1647] Fix | Delete
* @since 3.4.0
[1648] Fix | Delete
*
[1649] Fix | Delete
* @param int $blog_id Optional. ID of the site. Defaults to the current site.
[1650] Fix | Delete
* @return string[] Array of stylesheet names.
[1651] Fix | Delete
*/
[1652] Fix | Delete
public static function get_allowed( $blog_id = null ) {
[1653] Fix | Delete
/**
[1654] Fix | Delete
* Filters the array of themes allowed on the network.
[1655] Fix | Delete
*
[1656] Fix | Delete
* Site is provided as context so that a list of network allowed themes can
[1657] Fix | Delete
* be filtered further.
[1658] Fix | Delete
*
[1659] Fix | Delete
* @since 4.5.0
[1660] Fix | Delete
*
[1661] Fix | Delete
* @param string[] $allowed_themes An array of theme stylesheet names.
[1662] Fix | Delete
* @param int $blog_id ID of the site.
[1663] Fix | Delete
*/
[1664] Fix | Delete
$network = (array) apply_filters( 'network_allowed_themes', self::get_allowed_on_network(), $blog_id );
[1665] Fix | Delete
return $network + self::get_allowed_on_site( $blog_id );
[1666] Fix | Delete
}
[1667] Fix | Delete
[1668] Fix | Delete
/**
[1669] Fix | Delete
* Returns array of stylesheet names of themes allowed on the network.
[1670] Fix | Delete
*
[1671] Fix | Delete
* @since 3.4.0
[1672] Fix | Delete
*
[1673] Fix | Delete
* @return string[] Array of stylesheet names.
[1674] Fix | Delete
*/
[1675] Fix | Delete
public static function get_allowed_on_network() {
[1676] Fix | Delete
static $allowed_themes;
[1677] Fix | Delete
if ( ! isset( $allowed_themes ) ) {
[1678] Fix | Delete
$allowed_themes = (array) get_site_option( 'allowedthemes' );
[1679] Fix | Delete
}
[1680] Fix | Delete
[1681] Fix | Delete
/**
[1682] Fix | Delete
* Filters the array of themes allowed on the network.
[1683] Fix | Delete
*
[1684] Fix | Delete
* @since MU (3.0.0)
[1685] Fix | Delete
*
[1686] Fix | Delete
* @param string[] $allowed_themes An array of theme stylesheet names.
[1687] Fix | Delete
*/
[1688] Fix | Delete
$allowed_themes = apply_filters( 'allowed_themes', $allowed_themes );
[1689] Fix | Delete
[1690] Fix | Delete
return $allowed_themes;
[1691] Fix | Delete
}
[1692] Fix | Delete
[1693] Fix | Delete
/**
[1694] Fix | Delete
* Returns array of stylesheet names of themes allowed on the site.
[1695] Fix | Delete
*
[1696] Fix | Delete
* @since 3.4.0
[1697] Fix | Delete
*
[1698] Fix | Delete
* @param int $blog_id Optional. ID of the site. Defaults to the current site.
[1699] Fix | Delete
* @return string[] Array of stylesheet names.
[1700] Fix | Delete
*/
[1701] Fix | Delete
public static function get_allowed_on_site( $blog_id = null ) {
[1702] Fix | Delete
static $allowed_themes = array();
[1703] Fix | Delete
[1704] Fix | Delete
if ( ! $blog_id || ! is_multisite() ) {
[1705] Fix | Delete
$blog_id = get_current_blog_id();
[1706] Fix | Delete
}
[1707] Fix | Delete
[1708] Fix | Delete
if ( isset( $allowed_themes[ $blog_id ] ) ) {
[1709] Fix | Delete
/**
[1710] Fix | Delete
* Filters the array of themes allowed on the site.
[1711] Fix | Delete
*
[1712] Fix | Delete
* @since 4.5.0
[1713] Fix | Delete
*
[1714] Fix | Delete
* @param string[] $allowed_themes An array of theme stylesheet names.
[1715] Fix | Delete
* @param int $blog_id ID of the site. Defaults to current site.
[1716] Fix | Delete
*/
[1717] Fix | Delete
return (array) apply_filters( 'site_allowed_themes', $allowed_themes[ $blog_id ], $blog_id );
[1718] Fix | Delete
}
[1719] Fix | Delete
[1720] Fix | Delete
$current = get_current_blog_id() === $blog_id;
[1721] Fix | Delete
[1722] Fix | Delete
if ( $current ) {
[1723] Fix | Delete
$allowed_themes[ $blog_id ] = get_option( 'allowedthemes' );
[1724] Fix | Delete
} else {
[1725] Fix | Delete
switch_to_blog( $blog_id );
[1726] Fix | Delete
$allowed_themes[ $blog_id ] = get_option( 'allowedthemes' );
[1727] Fix | Delete
restore_current_blog();
[1728] Fix | Delete
}
[1729] Fix | Delete
[1730] Fix | Delete
/*
[1731] Fix | Delete
* This is all super old MU back compat joy.
[1732] Fix | Delete
* 'allowedthemes' keys things by stylesheet. 'allowed_themes' keyed things by name.
[1733] Fix | Delete
*/
[1734] Fix | Delete
if ( false === $allowed_themes[ $blog_id ] ) {
[1735] Fix | Delete
if ( $current ) {
[1736] Fix | Delete
$allowed_themes[ $blog_id ] = get_option( 'allowed_themes' );
[1737] Fix | Delete
} else {
[1738] Fix | Delete
switch_to_blog( $blog_id );
[1739] Fix | Delete
$allowed_themes[ $blog_id ] = get_option( 'allowed_themes' );
[1740] Fix | Delete
restore_current_blog();
[1741] Fix | Delete
}
[1742] Fix | Delete
[1743] Fix | Delete
if ( ! is_array( $allowed_themes[ $blog_id ] ) || empty( $allowed_themes[ $blog_id ] ) ) {
[1744] Fix | Delete
$allowed_themes[ $blog_id ] = array();
[1745] Fix | Delete
} else {
[1746] Fix | Delete
$converted = array();
[1747] Fix | Delete
$themes = wp_get_themes();
[1748] Fix | Delete
foreach ( $themes as $stylesheet => $theme_data ) {
[1749] Fix | Delete
if ( isset( $allowed_themes[ $blog_id ][ $theme_data->get( 'Name' ) ] ) ) {
[1750] Fix | Delete
$converted[ $stylesheet ] = true;
[1751] Fix | Delete
}
[1752] Fix | Delete
}
[1753] Fix | Delete
$allowed_themes[ $blog_id ] = $converted;
[1754] Fix | Delete
}
[1755] Fix | Delete
// Set the option so we never have to go through this pain again.
[1756] Fix | Delete
if ( is_admin() && $allowed_themes[ $blog_id ] ) {
[1757] Fix | Delete
if ( $current ) {
[1758] Fix | Delete
update_option( 'allowedthemes', $allowed_themes[ $blog_id ] );
[1759] Fix | Delete
delete_option( 'allowed_themes' );
[1760] Fix | Delete
} else {
[1761] Fix | Delete
switch_to_blog( $blog_id );
[1762] Fix | Delete
update_option( 'allowedthemes', $allowed_themes[ $blog_id ] );
[1763] Fix | Delete
delete_option( 'allowed_themes' );
[1764] Fix | Delete
restore_current_blog();
[1765] Fix | Delete
}
[1766] Fix | Delete
}
[1767] Fix | Delete
}
[1768] Fix | Delete
[1769] Fix | Delete
/** This filter is documented in wp-includes/class-wp-theme.php */
[1770] Fix | Delete
return (array) apply_filters( 'site_allowed_themes', $allowed_themes[ $blog_id ], $blog_id );
[1771] Fix | Delete
}
[1772] Fix | Delete
[1773] Fix | Delete
/**
[1774] Fix | Delete
* Returns the folder names of the block template directories.
[1775] Fix | Delete
*
[1776] Fix | Delete
* @since 6.4.0
[1777] Fix | Delete
*
[1778] Fix | Delete
* @return string[] {
[1779] Fix | Delete
* Folder names used by block themes.
[1780] Fix | Delete
*
[1781] Fix | Delete
* @type string $wp_template Theme-relative directory name for block templates.
[1782] Fix | Delete
* @type string $wp_template_part Theme-relative directory name for block template parts.
[1783] Fix | Delete
* }
[1784] Fix | Delete
*/
[1785] Fix | Delete
public function get_block_template_folders() {
[1786] Fix | Delete
// Return set/cached value if available.
[1787] Fix | Delete
if ( isset( $this->block_template_folders ) ) {
[1788] Fix | Delete
return $this->block_template_folders;
[1789] Fix | Delete
}
[1790] Fix | Delete
[1791] Fix | Delete
$this->block_template_folders = $this->default_template_folders;
[1792] Fix | Delete
[1793] Fix | Delete
$stylesheet_directory = $this->get_stylesheet_directory();
[1794] Fix | Delete
// If the theme uses deprecated block template folders.
[1795] Fix | Delete
if ( file_exists( $stylesheet_directory . '/block-templates' ) || file_exists( $stylesheet_directory . '/block-template-parts' ) ) {
[1796] Fix | Delete
$this->block_template_folders = array(
[1797] Fix | Delete
'wp_template' => 'block-templates',
[1798] Fix | Delete
'wp_template_part' => 'block-template-parts',
[1799] Fix | Delete
);
[1800] Fix | Delete
}
[1801] Fix | Delete
return $this->block_template_folders;
[1802] Fix | Delete
}
[1803] Fix | Delete
[1804] Fix | Delete
/**
[1805] Fix | Delete
* Gets block pattern data for a specified theme.
[1806] Fix | Delete
* Each pattern is defined as a PHP file and defines
[1807] Fix | Delete
* its metadata using plugin-style headers. The minimum required definition is:
[1808] Fix | Delete
*
[1809] Fix | Delete
* /**
[1810] Fix | Delete
* * Title: My Pattern
[1811] Fix | Delete
* * Slug: my-theme/my-pattern
[1812] Fix | Delete
* *
[1813] Fix | Delete
*
[1814] Fix | Delete
* The output of the PHP source corresponds to the content of the pattern, e.g.:
[1815] Fix | Delete
*
[1816] Fix | Delete
* <main><p><?php echo "Hello"; ?></p></main>
[1817] Fix | Delete
*
[1818] Fix | Delete
* If applicable, this will collect from both parent and child theme.
[1819] Fix | Delete
*
[1820] Fix | Delete
* Other settable fields include:
[1821] Fix | Delete
*
[1822] Fix | Delete
* - Description
[1823] Fix | Delete
* - Viewport Width
[1824] Fix | Delete
* - Inserter (yes/no)
[1825] Fix | Delete
* - Categories (comma-separated values)
[1826] Fix | Delete
* - Keywords (comma-separated values)
[1827] Fix | Delete
* - Block Types (comma-separated values)
[1828] Fix | Delete
* - Post Types (comma-separated values)
[1829] Fix | Delete
* - Template Types (comma-separated values)
[1830] Fix | Delete
*
[1831] Fix | Delete
* @since 6.4.0
[1832] Fix | Delete
*
[1833] Fix | Delete
* @return array Block pattern data.
[1834] Fix | Delete
*/
[1835] Fix | Delete
public function get_block_patterns() {
[1836] Fix | Delete
$can_use_cached = ! wp_is_development_mode( 'theme' );
[1837] Fix | Delete
[1838] Fix | Delete
$pattern_data = $this->get_pattern_cache();
[1839] Fix | Delete
if ( is_array( $pattern_data ) ) {
[1840] Fix | Delete
if ( $can_use_cached ) {
[1841] Fix | Delete
return $pattern_data;
[1842] Fix | Delete
}
[1843] Fix | Delete
// If in development mode, clear pattern cache.
[1844] Fix | Delete
$this->delete_pattern_cache();
[1845] Fix | Delete
}
[1846] Fix | Delete
[1847] Fix | Delete
$dirpath = $this->get_stylesheet_directory() . '/patterns/';
[1848] Fix | Delete
$pattern_data = array();
[1849] Fix | Delete
[1850] Fix | Delete
if ( ! file_exists( $dirpath ) ) {
[1851] Fix | Delete
if ( $can_use_cached ) {
[1852] Fix | Delete
$this->set_pattern_cache( $pattern_data );
[1853] Fix | Delete
}
[1854] Fix | Delete
return $pattern_data;
[1855] Fix | Delete
}
[1856] Fix | Delete
$files = glob( $dirpath . '*.php' );
[1857] Fix | Delete
if ( ! $files ) {
[1858] Fix | Delete
if ( $can_use_cached ) {
[1859] Fix | Delete
$this->set_pattern_cache( $pattern_data );
[1860] Fix | Delete
}
[1861] Fix | Delete
return $pattern_data;
[1862] Fix | Delete
}
[1863] Fix | Delete
[1864] Fix | Delete
$default_headers = array(
[1865] Fix | Delete
'title' => 'Title',
[1866] Fix | Delete
'slug' => 'Slug',
[1867] Fix | Delete
'description' => 'Description',
[1868] Fix | Delete
'viewportWidth' => 'Viewport Width',
[1869] Fix | Delete
'inserter' => 'Inserter',
[1870] Fix | Delete
'categories' => 'Categories',
[1871] Fix | Delete
'keywords' => 'Keywords',
[1872] Fix | Delete
'blockTypes' => 'Block Types',
[1873] Fix | Delete
'postTypes' => 'Post Types',
[1874] Fix | Delete
'templateTypes' => 'Template Types',
[1875] Fix | Delete
);
[1876] Fix | Delete
[1877] Fix | Delete
$properties_to_parse = array(
[1878] Fix | Delete
'categories',
[1879] Fix | Delete
'keywords',
[1880] Fix | Delete
'blockTypes',
[1881] Fix | Delete
'postTypes',
[1882] Fix | Delete
'templateTypes',
[1883] Fix | Delete
);
[1884] Fix | Delete
[1885] Fix | Delete
foreach ( $files as $file ) {
[1886] Fix | Delete
$pattern = get_file_data( $file, $default_headers );
[1887] Fix | Delete
[1888] Fix | Delete
if ( empty( $pattern['slug'] ) ) {
[1889] Fix | Delete
_doing_it_wrong(
[1890] Fix | Delete
__FUNCTION__,
[1891] Fix | Delete
sprintf(
[1892] Fix | Delete
/* translators: 1: file name. */
[1893] Fix | Delete
__( 'Could not register file "%s" as a block pattern ("Slug" field missing)' ),
[1894] Fix | Delete
$file
[1895] Fix | Delete
),
[1896] Fix | Delete
'6.0.0'
[1897] Fix | Delete
);
[1898] Fix | Delete
continue;
[1899] Fix | Delete
}
[1900] Fix | Delete
[1901] Fix | Delete
if ( ! preg_match( '/^[A-z0-9\/_-]+$/', $pattern['slug'] ) ) {
[1902] Fix | Delete
_doing_it_wrong(
[1903] Fix | Delete
__FUNCTION__,
[1904] Fix | Delete
sprintf(
[1905] Fix | Delete
/* translators: 1: file name; 2: slug value found. */
[1906] Fix | Delete
__( 'Could not register file "%1$s" as a block pattern (invalid slug "%2$s")' ),
[1907] Fix | Delete
$file,
[1908] Fix | Delete
$pattern['slug']
[1909] Fix | Delete
),
[1910] Fix | Delete
'6.0.0'
[1911] Fix | Delete
);
[1912] Fix | Delete
}
[1913] Fix | Delete
[1914] Fix | Delete
// Title is a required property.
[1915] Fix | Delete
if ( ! $pattern['title'] ) {
[1916] Fix | Delete
_doing_it_wrong(
[1917] Fix | Delete
__FUNCTION__,
[1918] Fix | Delete
sprintf(
[1919] Fix | Delete
/* translators: 1: file name. */
[1920] Fix | Delete
__( 'Could not register file "%s" as a block pattern ("Title" field missing)' ),
[1921] Fix | Delete
$file
[1922] Fix | Delete
),
[1923] Fix | Delete
'6.0.0'
[1924] Fix | Delete
);
[1925] Fix | Delete
continue;
[1926] Fix | Delete
}
[1927] Fix | Delete
[1928] Fix | Delete
// For properties of type array, parse data as comma-separated.
[1929] Fix | Delete
foreach ( $properties_to_parse as $property ) {
[1930] Fix | Delete
if ( ! empty( $pattern[ $property ] ) ) {
[1931] Fix | Delete
$pattern[ $property ] = array_filter( wp_parse_list( (string) $pattern[ $property ] ) );
[1932] Fix | Delete
} else {
[1933] Fix | Delete
unset( $pattern[ $property ] );
[1934] Fix | Delete
}
[1935] Fix | Delete
}
[1936] Fix | Delete
[1937] Fix | Delete
// Parse properties of type int.
[1938] Fix | Delete
$property = 'viewportWidth';
[1939] Fix | Delete
if ( ! empty( $pattern[ $property ] ) ) {
[1940] Fix | Delete
$pattern[ $property ] = (int) $pattern[ $property ];
[1941] Fix | Delete
} else {
[1942] Fix | Delete
unset( $pattern[ $property ] );
[1943] Fix | Delete
}
[1944] Fix | Delete
[1945] Fix | Delete
// Parse properties of type bool.
[1946] Fix | Delete
$property = 'inserter';
[1947] Fix | Delete
if ( ! empty( $pattern[ $property ] ) ) {
[1948] Fix | Delete
$pattern[ $property ] = in_array(
[1949] Fix | Delete
strtolower( $pattern[ $property ] ),
[1950] Fix | Delete
array( 'yes', 'true' ),
[1951] Fix | Delete
true
[1952] Fix | Delete
);
[1953] Fix | Delete
} else {
[1954] Fix | Delete
unset( $pattern[ $property ] );
[1955] Fix | Delete
}
[1956] Fix | Delete
[1957] Fix | Delete
$key = str_replace( $dirpath, '', $file );
[1958] Fix | Delete
[1959] Fix | Delete
$pattern_data[ $key ] = $pattern;
[1960] Fix | Delete
}
[1961] Fix | Delete
[1962] Fix | Delete
if ( $can_use_cached ) {
[1963] Fix | Delete
$this->set_pattern_cache( $pattern_data );
[1964] Fix | Delete
}
[1965] Fix | Delete
[1966] Fix | Delete
return $pattern_data;
[1967] Fix | Delete
}
[1968] Fix | Delete
[1969] Fix | Delete
/**
[1970] Fix | Delete
* Gets block pattern cache.
[1971] Fix | Delete
*
[1972] Fix | Delete
* @since 6.4.0
[1973] Fix | Delete
* @since 6.6.0 Uses transients to cache regardless of site environment.
[1974] Fix | Delete
*
[1975] Fix | Delete
* @return array|false Returns an array of patterns if cache is found, otherwise false.
[1976] Fix | Delete
*/
[1977] Fix | Delete
private function get_pattern_cache() {
[1978] Fix | Delete
if ( ! $this->exists() ) {
[1979] Fix | Delete
return false;
[1980] Fix | Delete
}
[1981] Fix | Delete
[1982] Fix | Delete
$pattern_data = get_site_transient( 'wp_theme_files_patterns-' . $this->cache_hash );
[1983] Fix | Delete
[1984] Fix | Delete
if ( is_array( $pattern_data ) && $pattern_data['version'] === $this->get( 'Version' ) ) {
[1985] Fix | Delete
return $pattern_data['patterns'];
[1986] Fix | Delete
}
[1987] Fix | Delete
return false;
[1988] Fix | Delete
}
[1989] Fix | Delete
[1990] Fix | Delete
/**
[1991] Fix | Delete
* Sets block pattern cache.
[1992] Fix | Delete
*
[1993] Fix | Delete
* @since 6.4.0
[1994] Fix | Delete
* @since 6.6.0 Uses transients to cache regardless of site environment.
[1995] Fix | Delete
*
[1996] Fix | Delete
* @param array $patterns Block patterns data to set in cache.
[1997] Fix | Delete
*/
[1998] Fix | Delete
private function set_pattern_cache( array $patterns ) {
[1999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function