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.../httpdocs/wp-conte.../plugins/wordpres.../inc
File: class-wpseo-utils.php
case '*':
[500] Fix | Delete
case 'mul':
[501] Fix | Delete
case 'multiply':
[502] Fix | Delete
$result = ( $bc ) ? bcmul( $number1, $number2, $precision ) /* string */ : ( $number1 * $number2 );
[503] Fix | Delete
break;
[504] Fix | Delete
[505] Fix | Delete
case '/':
[506] Fix | Delete
case 'div':
[507] Fix | Delete
case 'divide':
[508] Fix | Delete
if ( $bc ) {
[509] Fix | Delete
$result = bcdiv( $number1, $number2, $precision ); // String, or NULL if right_operand is 0.
[510] Fix | Delete
}
[511] Fix | Delete
elseif ( $number2 != 0 ) { // phpcs:ignore Universal.Operators.StrictComparisons -- Purposeful loose comparison.
[512] Fix | Delete
$result = ( $number1 / $number2 );
[513] Fix | Delete
}
[514] Fix | Delete
[515] Fix | Delete
if ( ! isset( $result ) ) {
[516] Fix | Delete
$result = 0;
[517] Fix | Delete
}
[518] Fix | Delete
break;
[519] Fix | Delete
[520] Fix | Delete
case '%':
[521] Fix | Delete
case 'mod':
[522] Fix | Delete
case 'modulus':
[523] Fix | Delete
if ( $bc ) {
[524] Fix | Delete
$result = bcmod( $number1, $number2 ); // String, or NULL if modulus is 0.
[525] Fix | Delete
}
[526] Fix | Delete
elseif ( $number2 != 0 ) { // phpcs:ignore Universal.Operators.StrictComparisons -- Purposeful loose comparison.
[527] Fix | Delete
$result = ( $number1 % $number2 );
[528] Fix | Delete
}
[529] Fix | Delete
[530] Fix | Delete
if ( ! isset( $result ) ) {
[531] Fix | Delete
$result = 0;
[532] Fix | Delete
}
[533] Fix | Delete
break;
[534] Fix | Delete
[535] Fix | Delete
case '=':
[536] Fix | Delete
case 'comp':
[537] Fix | Delete
case 'compare':
[538] Fix | Delete
$compare = true;
[539] Fix | Delete
if ( $bc ) {
[540] Fix | Delete
$result = bccomp( $number1, $number2, $precision ); // Returns int 0, 1 or -1.
[541] Fix | Delete
}
[542] Fix | Delete
else {
[543] Fix | Delete
// phpcs:ignore Universal.Operators.StrictComparisons -- Purposeful loose comparison.
[544] Fix | Delete
$result = ( $number1 == $number2 ) ? 0 : ( ( $number1 > $number2 ) ? 1 : -1 );
[545] Fix | Delete
}
[546] Fix | Delete
break;
[547] Fix | Delete
}
[548] Fix | Delete
[549] Fix | Delete
if ( isset( $result ) ) {
[550] Fix | Delete
if ( $compare === false ) {
[551] Fix | Delete
if ( $round === true ) {
[552] Fix | Delete
$result = round( floatval( $result ), $decimals );
[553] Fix | Delete
if ( $decimals === 0 ) {
[554] Fix | Delete
$result = (int) $result;
[555] Fix | Delete
}
[556] Fix | Delete
}
[557] Fix | Delete
else {
[558] Fix | Delete
// phpcs:ignore Universal.Operators.StrictComparisons -- Purposeful loose comparison.
[559] Fix | Delete
$result = ( intval( $result ) == $result ) ? intval( $result ) : floatval( $result );
[560] Fix | Delete
}
[561] Fix | Delete
}
[562] Fix | Delete
[563] Fix | Delete
return $result;
[564] Fix | Delete
}
[565] Fix | Delete
[566] Fix | Delete
return false;
[567] Fix | Delete
}
[568] Fix | Delete
[569] Fix | Delete
/**
[570] Fix | Delete
* Trim whitespace and NBSP (Non-breaking space) from string.
[571] Fix | Delete
*
[572] Fix | Delete
* @since 2.0.0
[573] Fix | Delete
*
[574] Fix | Delete
* @param string $text String input to trim.
[575] Fix | Delete
*
[576] Fix | Delete
* @return string
[577] Fix | Delete
*/
[578] Fix | Delete
public static function trim_nbsp_from_string( $text ) {
[579] Fix | Delete
$find = [ ' ', chr( 0xC2 ) . chr( 0xA0 ) ];
[580] Fix | Delete
$text = str_replace( $find, ' ', $text );
[581] Fix | Delete
$text = trim( $text );
[582] Fix | Delete
[583] Fix | Delete
return $text;
[584] Fix | Delete
}
[585] Fix | Delete
[586] Fix | Delete
/**
[587] Fix | Delete
* Check if a string is a valid datetime.
[588] Fix | Delete
*
[589] Fix | Delete
* @since 2.0.0
[590] Fix | Delete
*
[591] Fix | Delete
* @param string $datetime String input to check as valid input for DateTime class.
[592] Fix | Delete
*
[593] Fix | Delete
* @return bool
[594] Fix | Delete
*/
[595] Fix | Delete
public static function is_valid_datetime( $datetime ) {
[596] Fix | Delete
return YoastSEO()->helpers->date->is_valid_datetime( $datetime );
[597] Fix | Delete
}
[598] Fix | Delete
[599] Fix | Delete
/**
[600] Fix | Delete
* Format the URL to be sure it is okay for using as a redirect url.
[601] Fix | Delete
*
[602] Fix | Delete
* This method will parse the URL and combine them in one string.
[603] Fix | Delete
*
[604] Fix | Delete
* @since 2.3.0
[605] Fix | Delete
*
[606] Fix | Delete
* @param string $url URL string.
[607] Fix | Delete
*
[608] Fix | Delete
* @return mixed
[609] Fix | Delete
*/
[610] Fix | Delete
public static function format_url( $url ) {
[611] Fix | Delete
$parsed_url = wp_parse_url( $url );
[612] Fix | Delete
[613] Fix | Delete
$formatted_url = '';
[614] Fix | Delete
if ( ! empty( $parsed_url['path'] ) ) {
[615] Fix | Delete
$formatted_url = $parsed_url['path'];
[616] Fix | Delete
}
[617] Fix | Delete
[618] Fix | Delete
// Prepend a slash if first char != slash.
[619] Fix | Delete
if ( stripos( $formatted_url, '/' ) !== 0 ) {
[620] Fix | Delete
$formatted_url = '/' . $formatted_url;
[621] Fix | Delete
}
[622] Fix | Delete
[623] Fix | Delete
// Append 'query' string if it exists.
[624] Fix | Delete
if ( ! empty( $parsed_url['query'] ) ) {
[625] Fix | Delete
$formatted_url .= '?' . $parsed_url['query'];
[626] Fix | Delete
}
[627] Fix | Delete
[628] Fix | Delete
return apply_filters( 'wpseo_format_admin_url', $formatted_url );
[629] Fix | Delete
}
[630] Fix | Delete
[631] Fix | Delete
/**
[632] Fix | Delete
* Retrieves the sitename.
[633] Fix | Delete
*
[634] Fix | Delete
* @since 3.0.0
[635] Fix | Delete
*
[636] Fix | Delete
* @return string
[637] Fix | Delete
*/
[638] Fix | Delete
public static function get_site_name() {
[639] Fix | Delete
return YoastSEO()->helpers->site->get_site_name();
[640] Fix | Delete
}
[641] Fix | Delete
[642] Fix | Delete
/**
[643] Fix | Delete
* Check if the current opened page is a Yoast SEO page.
[644] Fix | Delete
*
[645] Fix | Delete
* @since 3.0.0
[646] Fix | Delete
*
[647] Fix | Delete
* @return bool
[648] Fix | Delete
*/
[649] Fix | Delete
public static function is_yoast_seo_page() {
[650] Fix | Delete
return YoastSEO()->helpers->current_page->is_yoast_seo_page();
[651] Fix | Delete
}
[652] Fix | Delete
[653] Fix | Delete
/**
[654] Fix | Delete
* Check if the current opened page belongs to Yoast SEO Free.
[655] Fix | Delete
*
[656] Fix | Delete
* @since 3.3.0
[657] Fix | Delete
*
[658] Fix | Delete
* @param string $current_page The current page the user is on.
[659] Fix | Delete
*
[660] Fix | Delete
* @return bool
[661] Fix | Delete
*/
[662] Fix | Delete
public static function is_yoast_seo_free_page( $current_page ) {
[663] Fix | Delete
$yoast_seo_free_pages = [
[664] Fix | Delete
'wpseo_dashboard',
[665] Fix | Delete
'wpseo_tools',
[666] Fix | Delete
'wpseo_search_console',
[667] Fix | Delete
'wpseo_licenses',
[668] Fix | Delete
];
[669] Fix | Delete
[670] Fix | Delete
return in_array( $current_page, $yoast_seo_free_pages, true );
[671] Fix | Delete
}
[672] Fix | Delete
[673] Fix | Delete
/**
[674] Fix | Delete
* Determine if Yoast SEO is in development mode?
[675] Fix | Delete
*
[676] Fix | Delete
* Inspired by JetPack (https://github.com/Automattic/jetpack/blob/master/class.jetpack.php#L1383-L1406).
[677] Fix | Delete
*
[678] Fix | Delete
* @since 3.0.0
[679] Fix | Delete
*
[680] Fix | Delete
* @return bool
[681] Fix | Delete
*/
[682] Fix | Delete
public static function is_development_mode() {
[683] Fix | Delete
$development_mode = false;
[684] Fix | Delete
[685] Fix | Delete
if ( defined( 'YOAST_ENVIRONMENT' ) && YOAST_ENVIRONMENT === 'development' ) {
[686] Fix | Delete
$development_mode = true;
[687] Fix | Delete
}
[688] Fix | Delete
elseif ( defined( 'WPSEO_DEBUG' ) ) {
[689] Fix | Delete
$development_mode = WPSEO_DEBUG;
[690] Fix | Delete
}
[691] Fix | Delete
elseif ( site_url() && strpos( site_url(), '.' ) === false ) {
[692] Fix | Delete
$development_mode = true;
[693] Fix | Delete
}
[694] Fix | Delete
[695] Fix | Delete
/**
[696] Fix | Delete
* Filter the Yoast SEO development mode.
[697] Fix | Delete
*
[698] Fix | Delete
* @since 3.0
[699] Fix | Delete
*
[700] Fix | Delete
* @param bool $development_mode Is Yoast SEOs development mode active.
[701] Fix | Delete
*/
[702] Fix | Delete
return apply_filters( 'yoast_seo_development_mode', $development_mode );
[703] Fix | Delete
}
[704] Fix | Delete
[705] Fix | Delete
/**
[706] Fix | Delete
* Retrieve home URL with proper trailing slash.
[707] Fix | Delete
*
[708] Fix | Delete
* @since 3.3.0
[709] Fix | Delete
*
[710] Fix | Delete
* @param string $path Path relative to home URL.
[711] Fix | Delete
* @param string|null $scheme Scheme to apply.
[712] Fix | Delete
*
[713] Fix | Delete
* @return string Home URL with optional path, appropriately slashed if not.
[714] Fix | Delete
*/
[715] Fix | Delete
public static function home_url( $path = '', $scheme = null ) {
[716] Fix | Delete
return YoastSEO()->helpers->url->home( $path, $scheme );
[717] Fix | Delete
}
[718] Fix | Delete
[719] Fix | Delete
/**
[720] Fix | Delete
* Checks if the WP-REST-API is available.
[721] Fix | Delete
*
[722] Fix | Delete
* @since 3.6
[723] Fix | Delete
* @since 3.7 Introduced the $minimum_version parameter.
[724] Fix | Delete
*
[725] Fix | Delete
* @param string $minimum_version The minimum version the API should be.
[726] Fix | Delete
*
[727] Fix | Delete
* @return bool Returns true if the API is available.
[728] Fix | Delete
*/
[729] Fix | Delete
public static function is_api_available( $minimum_version = '2.0' ) {
[730] Fix | Delete
return ( defined( 'REST_API_VERSION' )
[731] Fix | Delete
&& version_compare( REST_API_VERSION, $minimum_version, '>=' ) );
[732] Fix | Delete
}
[733] Fix | Delete
[734] Fix | Delete
/**
[735] Fix | Delete
* Determine whether or not the metabox should be displayed for a post type.
[736] Fix | Delete
*
[737] Fix | Delete
* @param string|null $post_type Optional. The post type to check the visibility of the metabox for.
[738] Fix | Delete
*
[739] Fix | Delete
* @return bool Whether or not the metabox should be displayed.
[740] Fix | Delete
*/
[741] Fix | Delete
protected static function display_post_type_metabox( $post_type = null ) {
[742] Fix | Delete
if ( ! isset( $post_type ) ) {
[743] Fix | Delete
$post_type = get_post_type();
[744] Fix | Delete
}
[745] Fix | Delete
[746] Fix | Delete
if ( ! isset( $post_type ) || ! WPSEO_Post_Type::is_post_type_accessible( $post_type ) ) {
[747] Fix | Delete
return false;
[748] Fix | Delete
}
[749] Fix | Delete
[750] Fix | Delete
if ( $post_type === 'attachment' && WPSEO_Options::get( 'disable-attachment' ) ) {
[751] Fix | Delete
return false;
[752] Fix | Delete
}
[753] Fix | Delete
[754] Fix | Delete
return apply_filters( 'wpseo_enable_editor_features_' . $post_type, WPSEO_Options::get( 'display-metabox-pt-' . $post_type ) );
[755] Fix | Delete
}
[756] Fix | Delete
[757] Fix | Delete
/**
[758] Fix | Delete
* Determine whether or not the metabox should be displayed for a taxonomy.
[759] Fix | Delete
*
[760] Fix | Delete
* @param string|null $taxonomy Optional. The post type to check the visibility of the metabox for.
[761] Fix | Delete
*
[762] Fix | Delete
* @return bool Whether or not the metabox should be displayed.
[763] Fix | Delete
*/
[764] Fix | Delete
protected static function display_taxonomy_metabox( $taxonomy = null ) {
[765] Fix | Delete
if ( ! isset( $taxonomy ) || ! in_array( $taxonomy, get_taxonomies( [ 'public' => true ], 'names' ), true ) ) {
[766] Fix | Delete
return false;
[767] Fix | Delete
}
[768] Fix | Delete
[769] Fix | Delete
return WPSEO_Options::get( 'display-metabox-tax-' . $taxonomy );
[770] Fix | Delete
}
[771] Fix | Delete
[772] Fix | Delete
/**
[773] Fix | Delete
* Determines whether the metabox is active for the given identifier and type.
[774] Fix | Delete
*
[775] Fix | Delete
* @param string $identifier The identifier to check for.
[776] Fix | Delete
* @param string $type The type to check for.
[777] Fix | Delete
*
[778] Fix | Delete
* @return bool Whether or not the metabox is active.
[779] Fix | Delete
*/
[780] Fix | Delete
public static function is_metabox_active( $identifier, $type ) {
[781] Fix | Delete
if ( $type === 'post_type' ) {
[782] Fix | Delete
return self::display_post_type_metabox( $identifier );
[783] Fix | Delete
}
[784] Fix | Delete
[785] Fix | Delete
if ( $type === 'taxonomy' ) {
[786] Fix | Delete
return self::display_taxonomy_metabox( $identifier );
[787] Fix | Delete
}
[788] Fix | Delete
[789] Fix | Delete
return false;
[790] Fix | Delete
}
[791] Fix | Delete
[792] Fix | Delete
/**
[793] Fix | Delete
* Determines whether the plugin is active for the entire network.
[794] Fix | Delete
*
[795] Fix | Delete
* @return bool Whether the plugin is network-active.
[796] Fix | Delete
*/
[797] Fix | Delete
public static function is_plugin_network_active() {
[798] Fix | Delete
return YoastSEO()->helpers->url->is_plugin_network_active();
[799] Fix | Delete
}
[800] Fix | Delete
[801] Fix | Delete
/**
[802] Fix | Delete
* Gets the type of the current post.
[803] Fix | Delete
*
[804] Fix | Delete
* @return string The post type, or an empty string.
[805] Fix | Delete
*/
[806] Fix | Delete
public static function get_post_type() {
[807] Fix | Delete
$wp_screen = get_current_screen();
[808] Fix | Delete
[809] Fix | Delete
if ( $wp_screen !== null && ! empty( $wp_screen->post_type ) ) {
[810] Fix | Delete
return $wp_screen->post_type;
[811] Fix | Delete
}
[812] Fix | Delete
return '';
[813] Fix | Delete
}
[814] Fix | Delete
[815] Fix | Delete
/**
[816] Fix | Delete
* Gets the type of the current page.
[817] Fix | Delete
*
[818] Fix | Delete
* @return string Returns 'post' if the current page is a post edit page. Taxonomy in other cases.
[819] Fix | Delete
*/
[820] Fix | Delete
public static function get_page_type() {
[821] Fix | Delete
global $pagenow;
[822] Fix | Delete
if ( WPSEO_Metabox::is_post_edit( $pagenow ) ) {
[823] Fix | Delete
return 'post';
[824] Fix | Delete
}
[825] Fix | Delete
[826] Fix | Delete
return 'taxonomy';
[827] Fix | Delete
}
[828] Fix | Delete
[829] Fix | Delete
/**
[830] Fix | Delete
* Getter for the Adminl10n array. Applies the wpseo_admin_l10n filter.
[831] Fix | Delete
*
[832] Fix | Delete
* @return array The Adminl10n array.
[833] Fix | Delete
*/
[834] Fix | Delete
public static function get_admin_l10n() {
[835] Fix | Delete
$post_type = self::get_post_type();
[836] Fix | Delete
$page_type = self::get_page_type();
[837] Fix | Delete
[838] Fix | Delete
$label_object = false;
[839] Fix | Delete
$no_index = false;
[840] Fix | Delete
[841] Fix | Delete
if ( $page_type === 'post' ) {
[842] Fix | Delete
$label_object = get_post_type_object( $post_type );
[843] Fix | Delete
$no_index = WPSEO_Options::get( 'noindex-' . $post_type, false );
[844] Fix | Delete
}
[845] Fix | Delete
else {
[846] Fix | Delete
$label_object = WPSEO_Taxonomy::get_labels();
[847] Fix | Delete
[848] Fix | Delete
$wp_screen = get_current_screen();
[849] Fix | Delete
[850] Fix | Delete
if ( $wp_screen !== null && ! empty( $wp_screen->taxonomy ) ) {
[851] Fix | Delete
$taxonomy_slug = $wp_screen->taxonomy;
[852] Fix | Delete
$no_index = WPSEO_Options::get( 'noindex-tax-' . $taxonomy_slug, false );
[853] Fix | Delete
}
[854] Fix | Delete
}
[855] Fix | Delete
[856] Fix | Delete
$wpseo_admin_l10n = [
[857] Fix | Delete
'displayAdvancedTab' => WPSEO_Capability_Utils::current_user_can( 'wpseo_edit_advanced_metadata' ) || ! WPSEO_Options::get( 'disableadvanced_meta' ),
[858] Fix | Delete
'noIndex' => (bool) $no_index,
[859] Fix | Delete
'isPostType' => (bool) get_post_type(),
[860] Fix | Delete
'postType' => get_post_type(),
[861] Fix | Delete
'postTypeNamePlural' => ( $page_type === 'post' ) ? $label_object->label : $label_object->name,
[862] Fix | Delete
'postTypeNameSingular' => ( $page_type === 'post' ) ? $label_object->labels->singular_name : $label_object->singular_name,
[863] Fix | Delete
'isBreadcrumbsDisabled' => WPSEO_Options::get( 'breadcrumbs-enable', false ) !== true && ! current_theme_supports( 'yoast-seo-breadcrumbs' ),
[864] Fix | Delete
// phpcs:ignore Generic.ControlStructures.DisallowYodaConditions -- Bug: squizlabs/PHP_CodeSniffer#2962.
[865] Fix | Delete
'isPrivateBlog' => ( (string) get_option( 'blog_public' ) ) === '0',
[866] Fix | Delete
'news_seo_is_active' => ( defined( 'WPSEO_NEWS_FILE' ) ),
[867] Fix | Delete
];
[868] Fix | Delete
[869] Fix | Delete
$additional_entries = apply_filters( 'wpseo_admin_l10n', [] );
[870] Fix | Delete
if ( is_array( $additional_entries ) ) {
[871] Fix | Delete
$wpseo_admin_l10n = array_merge( $wpseo_admin_l10n, $additional_entries );
[872] Fix | Delete
}
[873] Fix | Delete
[874] Fix | Delete
return $wpseo_admin_l10n;
[875] Fix | Delete
}
[876] Fix | Delete
[877] Fix | Delete
/**
[878] Fix | Delete
* Retrieves the analysis worker log level. Defaults to errors only.
[879] Fix | Delete
*
[880] Fix | Delete
* Uses bool YOAST_SEO_DEBUG as flag to enable logging. Off equals ERROR.
[881] Fix | Delete
* Uses string YOAST_SEO_DEBUG_ANALYSIS_WORKER as log level for the Analysis
[882] Fix | Delete
* Worker. Defaults to INFO.
[883] Fix | Delete
* Can be: TRACE, DEBUG, INFO, WARN or ERROR.
[884] Fix | Delete
*
[885] Fix | Delete
* @return string The log level to use.
[886] Fix | Delete
*/
[887] Fix | Delete
public static function get_analysis_worker_log_level() {
[888] Fix | Delete
if ( defined( 'YOAST_SEO_DEBUG' ) && YOAST_SEO_DEBUG ) {
[889] Fix | Delete
return defined( 'YOAST_SEO_DEBUG_ANALYSIS_WORKER' ) ? YOAST_SEO_DEBUG_ANALYSIS_WORKER : 'INFO';
[890] Fix | Delete
}
[891] Fix | Delete
[892] Fix | Delete
return 'ERROR';
[893] Fix | Delete
}
[894] Fix | Delete
[895] Fix | Delete
/**
[896] Fix | Delete
* Returns the unfiltered home URL.
[897] Fix | Delete
*
[898] Fix | Delete
* In case WPML is installed, returns the original home_url and not the WPML version.
[899] Fix | Delete
* In case of a multisite setup we return the network_home_url.
[900] Fix | Delete
*
[901] Fix | Delete
* @codeCoverageIgnore
[902] Fix | Delete
*
[903] Fix | Delete
* @return string The home url.
[904] Fix | Delete
*/
[905] Fix | Delete
public static function get_home_url() {
[906] Fix | Delete
return YoastSEO()->helpers->url->network_safe_home_url();
[907] Fix | Delete
}
[908] Fix | Delete
[909] Fix | Delete
/**
[910] Fix | Delete
* Prepares data for outputting as JSON.
[911] Fix | Delete
*
[912] Fix | Delete
* @param array $data The data to format.
[913] Fix | Delete
*
[914] Fix | Delete
* @return false|string The prepared JSON string.
[915] Fix | Delete
*/
[916] Fix | Delete
public static function format_json_encode( $data ) {
[917] Fix | Delete
$flags = ( JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE );
[918] Fix | Delete
[919] Fix | Delete
if ( self::is_development_mode() ) {
[920] Fix | Delete
$flags = ( $flags | JSON_PRETTY_PRINT );
[921] Fix | Delete
[922] Fix | Delete
/**
[923] Fix | Delete
* Filter the Yoast SEO development mode.
[924] Fix | Delete
*
[925] Fix | Delete
* @param array $data Allows filtering of the JSON data for debug purposes.
[926] Fix | Delete
*/
[927] Fix | Delete
$data = apply_filters( 'wpseo_debug_json_data', $data );
[928] Fix | Delete
}
[929] Fix | Delete
[930] Fix | Delete
// phpcs:ignore Yoast.Yoast.JsonEncodeAlternative.FoundWithAdditionalParams -- This is the definition of format_json_encode.
[931] Fix | Delete
return wp_json_encode( $data, $flags );
[932] Fix | Delete
}
[933] Fix | Delete
[934] Fix | Delete
/**
[935] Fix | Delete
* Extends the allowed post tags with accessibility-related attributes.
[936] Fix | Delete
*
[937] Fix | Delete
* @codeCoverageIgnore
[938] Fix | Delete
*
[939] Fix | Delete
* @param array $allowed_post_tags The allowed post tags.
[940] Fix | Delete
*
[941] Fix | Delete
* @return array The allowed tags including post tags, input tags and select tags.
[942] Fix | Delete
*/
[943] Fix | Delete
public static function extend_kses_post_with_a11y( $allowed_post_tags ) {
[944] Fix | Delete
static $a11y_tags;
[945] Fix | Delete
[946] Fix | Delete
if ( isset( $a11y_tags ) === false ) {
[947] Fix | Delete
$a11y_tags = [
[948] Fix | Delete
'button' => [
[949] Fix | Delete
'aria-expanded' => true,
[950] Fix | Delete
'aria-controls' => true,
[951] Fix | Delete
],
[952] Fix | Delete
'div' => [
[953] Fix | Delete
'tabindex' => true,
[954] Fix | Delete
],
[955] Fix | Delete
// Below are attributes that are needed for backwards compatibility (WP < 5.1).
[956] Fix | Delete
'span' => [
[957] Fix | Delete
'aria-hidden' => true,
[958] Fix | Delete
],
[959] Fix | Delete
'input' => [
[960] Fix | Delete
'aria-describedby' => true,
[961] Fix | Delete
],
[962] Fix | Delete
'select' => [
[963] Fix | Delete
'aria-describedby' => true,
[964] Fix | Delete
],
[965] Fix | Delete
'textarea' => [
[966] Fix | Delete
'aria-describedby' => true,
[967] Fix | Delete
],
[968] Fix | Delete
];
[969] Fix | Delete
[970] Fix | Delete
// Add the global allowed attributes to each html element.
[971] Fix | Delete
$a11y_tags = array_map( '_wp_add_global_attributes', $a11y_tags );
[972] Fix | Delete
}
[973] Fix | Delete
[974] Fix | Delete
return array_merge_recursive( $allowed_post_tags, $a11y_tags );
[975] Fix | Delete
}
[976] Fix | Delete
[977] Fix | Delete
/**
[978] Fix | Delete
* Extends the allowed post tags with input, select and option tags.
[979] Fix | Delete
*
[980] Fix | Delete
* @codeCoverageIgnore
[981] Fix | Delete
*
[982] Fix | Delete
* @param array $allowed_post_tags The allowed post tags.
[983] Fix | Delete
*
[984] Fix | Delete
* @return array The allowed tags including post tags, input tags, select tags and option tags.
[985] Fix | Delete
*/
[986] Fix | Delete
public static function extend_kses_post_with_forms( $allowed_post_tags ) {
[987] Fix | Delete
static $input_tags;
[988] Fix | Delete
[989] Fix | Delete
if ( isset( $input_tags ) === false ) {
[990] Fix | Delete
$input_tags = [
[991] Fix | Delete
'input' => [
[992] Fix | Delete
'accept' => true,
[993] Fix | Delete
'accesskey' => true,
[994] Fix | Delete
'align' => true,
[995] Fix | Delete
'alt' => true,
[996] Fix | Delete
'autocomplete' => true,
[997] Fix | Delete
'autofocus' => true,
[998] Fix | Delete
'checked' => true,
[999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function