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-inclu...
File: formatting.php
break;
[5000] Fix | Delete
[5001] Fix | Delete
case 'illegal_names':
[5002] Fix | Delete
$value = $wpdb->strip_invalid_text_for_column( $wpdb->options, 'option_value', $value );
[5003] Fix | Delete
if ( is_wp_error( $value ) ) {
[5004] Fix | Delete
$error = $value->get_error_message();
[5005] Fix | Delete
} else {
[5006] Fix | Delete
if ( ! is_array( $value ) ) {
[5007] Fix | Delete
$value = explode( ' ', $value );
[5008] Fix | Delete
}
[5009] Fix | Delete
[5010] Fix | Delete
$value = array_values( array_filter( array_map( 'trim', $value ) ) );
[5011] Fix | Delete
[5012] Fix | Delete
if ( ! $value ) {
[5013] Fix | Delete
$value = '';
[5014] Fix | Delete
}
[5015] Fix | Delete
}
[5016] Fix | Delete
break;
[5017] Fix | Delete
[5018] Fix | Delete
case 'limited_email_domains':
[5019] Fix | Delete
case 'banned_email_domains':
[5020] Fix | Delete
$value = $wpdb->strip_invalid_text_for_column( $wpdb->options, 'option_value', $value );
[5021] Fix | Delete
if ( is_wp_error( $value ) ) {
[5022] Fix | Delete
$error = $value->get_error_message();
[5023] Fix | Delete
} else {
[5024] Fix | Delete
if ( ! is_array( $value ) ) {
[5025] Fix | Delete
$value = explode( "\n", $value );
[5026] Fix | Delete
}
[5027] Fix | Delete
[5028] Fix | Delete
$domains = array_values( array_filter( array_map( 'trim', $value ) ) );
[5029] Fix | Delete
$value = array();
[5030] Fix | Delete
[5031] Fix | Delete
foreach ( $domains as $domain ) {
[5032] Fix | Delete
if ( ! preg_match( '/(--|\.\.)/', $domain ) && preg_match( '|^([a-zA-Z0-9-\.])+$|', $domain ) ) {
[5033] Fix | Delete
$value[] = $domain;
[5034] Fix | Delete
}
[5035] Fix | Delete
}
[5036] Fix | Delete
if ( ! $value ) {
[5037] Fix | Delete
$value = '';
[5038] Fix | Delete
}
[5039] Fix | Delete
}
[5040] Fix | Delete
break;
[5041] Fix | Delete
[5042] Fix | Delete
case 'timezone_string':
[5043] Fix | Delete
$allowed_zones = timezone_identifiers_list( DateTimeZone::ALL_WITH_BC );
[5044] Fix | Delete
if ( ! in_array( $value, $allowed_zones, true ) && ! empty( $value ) ) {
[5045] Fix | Delete
$error = __( 'The timezone you have entered is not valid. Please select a valid timezone.' );
[5046] Fix | Delete
}
[5047] Fix | Delete
break;
[5048] Fix | Delete
[5049] Fix | Delete
case 'permalink_structure':
[5050] Fix | Delete
case 'category_base':
[5051] Fix | Delete
case 'tag_base':
[5052] Fix | Delete
$value = $wpdb->strip_invalid_text_for_column( $wpdb->options, 'option_value', $value );
[5053] Fix | Delete
if ( is_wp_error( $value ) ) {
[5054] Fix | Delete
$error = $value->get_error_message();
[5055] Fix | Delete
} else {
[5056] Fix | Delete
$value = sanitize_url( $value );
[5057] Fix | Delete
$value = str_replace( 'http://', '', $value );
[5058] Fix | Delete
}
[5059] Fix | Delete
[5060] Fix | Delete
if ( 'permalink_structure' === $option && null === $error
[5061] Fix | Delete
&& '' !== $value && ! preg_match( '/%[^\/%]+%/', $value )
[5062] Fix | Delete
) {
[5063] Fix | Delete
$error = sprintf(
[5064] Fix | Delete
/* translators: %s: Documentation URL. */
[5065] Fix | Delete
__( 'A structure tag is required when using custom permalinks. <a href="%s">Learn more</a>' ),
[5066] Fix | Delete
__( 'https://wordpress.org/documentation/article/customize-permalinks/#choosing-your-permalink-structure' )
[5067] Fix | Delete
);
[5068] Fix | Delete
}
[5069] Fix | Delete
break;
[5070] Fix | Delete
[5071] Fix | Delete
case 'default_role':
[5072] Fix | Delete
if ( ! get_role( $value ) && get_role( 'subscriber' ) ) {
[5073] Fix | Delete
$value = 'subscriber';
[5074] Fix | Delete
}
[5075] Fix | Delete
break;
[5076] Fix | Delete
[5077] Fix | Delete
case 'moderation_keys':
[5078] Fix | Delete
case 'disallowed_keys':
[5079] Fix | Delete
$value = $wpdb->strip_invalid_text_for_column( $wpdb->options, 'option_value', $value );
[5080] Fix | Delete
if ( is_wp_error( $value ) ) {
[5081] Fix | Delete
$error = $value->get_error_message();
[5082] Fix | Delete
} else {
[5083] Fix | Delete
$value = explode( "\n", $value );
[5084] Fix | Delete
$value = array_filter( array_map( 'trim', $value ) );
[5085] Fix | Delete
$value = array_unique( $value );
[5086] Fix | Delete
$value = implode( "\n", $value );
[5087] Fix | Delete
}
[5088] Fix | Delete
break;
[5089] Fix | Delete
}
[5090] Fix | Delete
[5091] Fix | Delete
if ( null !== $error ) {
[5092] Fix | Delete
if ( '' === $error && is_wp_error( $value ) ) {
[5093] Fix | Delete
/* translators: 1: Option name, 2: Error code. */
[5094] Fix | Delete
$error = sprintf( __( 'Could not sanitize the %1$s option. Error code: %2$s' ), $option, $value->get_error_code() );
[5095] Fix | Delete
}
[5096] Fix | Delete
[5097] Fix | Delete
$value = get_option( $option );
[5098] Fix | Delete
if ( function_exists( 'add_settings_error' ) ) {
[5099] Fix | Delete
add_settings_error( $option, "invalid_{$option}", $error );
[5100] Fix | Delete
}
[5101] Fix | Delete
}
[5102] Fix | Delete
[5103] Fix | Delete
/**
[5104] Fix | Delete
* Filters an option value following sanitization.
[5105] Fix | Delete
*
[5106] Fix | Delete
* @since 2.3.0
[5107] Fix | Delete
* @since 4.3.0 Added the `$original_value` parameter.
[5108] Fix | Delete
*
[5109] Fix | Delete
* @param mixed $value The sanitized option value.
[5110] Fix | Delete
* @param string $option The option name.
[5111] Fix | Delete
* @param mixed $original_value The original value passed to the function.
[5112] Fix | Delete
*/
[5113] Fix | Delete
return apply_filters( "sanitize_option_{$option}", $value, $option, $original_value );
[5114] Fix | Delete
}
[5115] Fix | Delete
[5116] Fix | Delete
/**
[5117] Fix | Delete
* Maps a function to all non-iterable elements of an array or an object.
[5118] Fix | Delete
*
[5119] Fix | Delete
* This is similar to `array_walk_recursive()` but acts upon objects too.
[5120] Fix | Delete
*
[5121] Fix | Delete
* @since 4.4.0
[5122] Fix | Delete
*
[5123] Fix | Delete
* @param mixed $value The array, object, or scalar.
[5124] Fix | Delete
* @param callable $callback The function to map onto $value.
[5125] Fix | Delete
* @return mixed The value with the callback applied to all non-arrays and non-objects inside it.
[5126] Fix | Delete
*/
[5127] Fix | Delete
function map_deep( $value, $callback ) {
[5128] Fix | Delete
if ( is_array( $value ) ) {
[5129] Fix | Delete
foreach ( $value as $index => $item ) {
[5130] Fix | Delete
$value[ $index ] = map_deep( $item, $callback );
[5131] Fix | Delete
}
[5132] Fix | Delete
} elseif ( is_object( $value ) ) {
[5133] Fix | Delete
$object_vars = get_object_vars( $value );
[5134] Fix | Delete
foreach ( $object_vars as $property_name => $property_value ) {
[5135] Fix | Delete
$value->$property_name = map_deep( $property_value, $callback );
[5136] Fix | Delete
}
[5137] Fix | Delete
} else {
[5138] Fix | Delete
$value = call_user_func( $callback, $value );
[5139] Fix | Delete
}
[5140] Fix | Delete
[5141] Fix | Delete
return $value;
[5142] Fix | Delete
}
[5143] Fix | Delete
[5144] Fix | Delete
/**
[5145] Fix | Delete
* Parses a string into variables to be stored in an array.
[5146] Fix | Delete
*
[5147] Fix | Delete
* @since 2.2.1
[5148] Fix | Delete
*
[5149] Fix | Delete
* @param string $input_string The string to be parsed.
[5150] Fix | Delete
* @param array $result Variables will be stored in this array.
[5151] Fix | Delete
*/
[5152] Fix | Delete
function wp_parse_str( $input_string, &$result ) {
[5153] Fix | Delete
parse_str( (string) $input_string, $result );
[5154] Fix | Delete
[5155] Fix | Delete
/**
[5156] Fix | Delete
* Filters the array of variables derived from a parsed string.
[5157] Fix | Delete
*
[5158] Fix | Delete
* @since 2.2.1
[5159] Fix | Delete
*
[5160] Fix | Delete
* @param array $result The array populated with variables.
[5161] Fix | Delete
*/
[5162] Fix | Delete
$result = apply_filters( 'wp_parse_str', $result );
[5163] Fix | Delete
}
[5164] Fix | Delete
[5165] Fix | Delete
/**
[5166] Fix | Delete
* Converts lone less than signs.
[5167] Fix | Delete
*
[5168] Fix | Delete
* KSES already converts lone greater than signs.
[5169] Fix | Delete
*
[5170] Fix | Delete
* @since 2.3.0
[5171] Fix | Delete
*
[5172] Fix | Delete
* @param string $content Text to be converted.
[5173] Fix | Delete
* @return string Converted text.
[5174] Fix | Delete
*/
[5175] Fix | Delete
function wp_pre_kses_less_than( $content ) {
[5176] Fix | Delete
return preg_replace_callback( '%<[^>]*?((?=<)|>|$)%', 'wp_pre_kses_less_than_callback', $content );
[5177] Fix | Delete
}
[5178] Fix | Delete
[5179] Fix | Delete
/**
[5180] Fix | Delete
* Callback function used by preg_replace.
[5181] Fix | Delete
*
[5182] Fix | Delete
* @since 2.3.0
[5183] Fix | Delete
*
[5184] Fix | Delete
* @param string[] $matches Populated by matches to preg_replace.
[5185] Fix | Delete
* @return string The text returned after esc_html if needed.
[5186] Fix | Delete
*/
[5187] Fix | Delete
function wp_pre_kses_less_than_callback( $matches ) {
[5188] Fix | Delete
if ( ! str_contains( $matches[0], '>' ) ) {
[5189] Fix | Delete
return esc_html( $matches[0] );
[5190] Fix | Delete
}
[5191] Fix | Delete
return $matches[0];
[5192] Fix | Delete
}
[5193] Fix | Delete
[5194] Fix | Delete
/**
[5195] Fix | Delete
* Removes non-allowable HTML from parsed block attribute values when filtering
[5196] Fix | Delete
* in the post context.
[5197] Fix | Delete
*
[5198] Fix | Delete
* @since 5.3.1
[5199] Fix | Delete
*
[5200] Fix | Delete
* @param string $content Content to be run through KSES.
[5201] Fix | Delete
* @param array[]|string $allowed_html An array of allowed HTML elements
[5202] Fix | Delete
* and attributes, or a context name
[5203] Fix | Delete
* such as 'post'.
[5204] Fix | Delete
* @param string[] $allowed_protocols Array of allowed URL protocols.
[5205] Fix | Delete
* @return string Filtered text to run through KSES.
[5206] Fix | Delete
*/
[5207] Fix | Delete
function wp_pre_kses_block_attributes( $content, $allowed_html, $allowed_protocols ) {
[5208] Fix | Delete
/*
[5209] Fix | Delete
* `filter_block_content` is expected to call `wp_kses`. Temporarily remove
[5210] Fix | Delete
* the filter to avoid recursion.
[5211] Fix | Delete
*/
[5212] Fix | Delete
remove_filter( 'pre_kses', 'wp_pre_kses_block_attributes', 10 );
[5213] Fix | Delete
$content = filter_block_content( $content, $allowed_html, $allowed_protocols );
[5214] Fix | Delete
add_filter( 'pre_kses', 'wp_pre_kses_block_attributes', 10, 3 );
[5215] Fix | Delete
[5216] Fix | Delete
return $content;
[5217] Fix | Delete
}
[5218] Fix | Delete
[5219] Fix | Delete
/**
[5220] Fix | Delete
* WordPress' implementation of PHP sprintf() with filters.
[5221] Fix | Delete
*
[5222] Fix | Delete
* @since 2.5.0
[5223] Fix | Delete
* @since 5.3.0 Formalized the existing and already documented `...$args` parameter
[5224] Fix | Delete
* by adding it to the function signature.
[5225] Fix | Delete
*
[5226] Fix | Delete
* @link https://www.php.net/sprintf
[5227] Fix | Delete
*
[5228] Fix | Delete
* @param string $pattern The string which formatted args are inserted.
[5229] Fix | Delete
* @param mixed ...$args Arguments to be formatted into the $pattern string.
[5230] Fix | Delete
* @return string The formatted string.
[5231] Fix | Delete
*/
[5232] Fix | Delete
function wp_sprintf( $pattern, ...$args ) {
[5233] Fix | Delete
$len = strlen( $pattern );
[5234] Fix | Delete
$start = 0;
[5235] Fix | Delete
$result = '';
[5236] Fix | Delete
$arg_index = 0;
[5237] Fix | Delete
[5238] Fix | Delete
while ( $len > $start ) {
[5239] Fix | Delete
// Last character: append and break.
[5240] Fix | Delete
if ( strlen( $pattern ) - 1 === $start ) {
[5241] Fix | Delete
$result .= substr( $pattern, -1 );
[5242] Fix | Delete
break;
[5243] Fix | Delete
}
[5244] Fix | Delete
[5245] Fix | Delete
// Literal %: append and continue.
[5246] Fix | Delete
if ( '%%' === substr( $pattern, $start, 2 ) ) {
[5247] Fix | Delete
$start += 2;
[5248] Fix | Delete
$result .= '%';
[5249] Fix | Delete
continue;
[5250] Fix | Delete
}
[5251] Fix | Delete
[5252] Fix | Delete
// Get fragment before next %.
[5253] Fix | Delete
$end = strpos( $pattern, '%', $start + 1 );
[5254] Fix | Delete
if ( false === $end ) {
[5255] Fix | Delete
$end = $len;
[5256] Fix | Delete
}
[5257] Fix | Delete
$fragment = substr( $pattern, $start, $end - $start );
[5258] Fix | Delete
[5259] Fix | Delete
// Fragment has a specifier.
[5260] Fix | Delete
if ( '%' === $pattern[ $start ] ) {
[5261] Fix | Delete
// Find numbered arguments or take the next one in order.
[5262] Fix | Delete
if ( preg_match( '/^%(\d+)\$/', $fragment, $matches ) ) {
[5263] Fix | Delete
$index = $matches[1] - 1; // 0-based array vs 1-based sprintf() arguments.
[5264] Fix | Delete
$arg = isset( $args[ $index ] ) ? $args[ $index ] : '';
[5265] Fix | Delete
$fragment = str_replace( "%{$matches[1]}$", '%', $fragment );
[5266] Fix | Delete
} else {
[5267] Fix | Delete
$arg = isset( $args[ $arg_index ] ) ? $args[ $arg_index ] : '';
[5268] Fix | Delete
++$arg_index;
[5269] Fix | Delete
}
[5270] Fix | Delete
[5271] Fix | Delete
/**
[5272] Fix | Delete
* Filters a fragment from the pattern passed to wp_sprintf().
[5273] Fix | Delete
*
[5274] Fix | Delete
* If the fragment is unchanged, then sprintf() will be run on the fragment.
[5275] Fix | Delete
*
[5276] Fix | Delete
* @since 2.5.0
[5277] Fix | Delete
*
[5278] Fix | Delete
* @param string $fragment A fragment from the pattern.
[5279] Fix | Delete
* @param string $arg The argument.
[5280] Fix | Delete
*/
[5281] Fix | Delete
$_fragment = apply_filters( 'wp_sprintf', $fragment, $arg );
[5282] Fix | Delete
[5283] Fix | Delete
if ( $_fragment !== $fragment ) {
[5284] Fix | Delete
$fragment = $_fragment;
[5285] Fix | Delete
} else {
[5286] Fix | Delete
$fragment = sprintf( $fragment, (string) $arg );
[5287] Fix | Delete
}
[5288] Fix | Delete
}
[5289] Fix | Delete
[5290] Fix | Delete
// Append to result and move to next fragment.
[5291] Fix | Delete
$result .= $fragment;
[5292] Fix | Delete
$start = $end;
[5293] Fix | Delete
}
[5294] Fix | Delete
[5295] Fix | Delete
return $result;
[5296] Fix | Delete
}
[5297] Fix | Delete
[5298] Fix | Delete
/**
[5299] Fix | Delete
* Localizes list items before the rest of the content.
[5300] Fix | Delete
*
[5301] Fix | Delete
* The '%l' must be at the first characters can then contain the rest of the
[5302] Fix | Delete
* content. The list items will have ', ', ', and', and ' and ' added depending
[5303] Fix | Delete
* on the amount of list items in the $args parameter.
[5304] Fix | Delete
*
[5305] Fix | Delete
* @since 2.5.0
[5306] Fix | Delete
*
[5307] Fix | Delete
* @param string $pattern Content containing '%l' at the beginning.
[5308] Fix | Delete
* @param array $args List items to prepend to the content and replace '%l'.
[5309] Fix | Delete
* @return string Localized list items and rest of the content.
[5310] Fix | Delete
*/
[5311] Fix | Delete
function wp_sprintf_l( $pattern, $args ) {
[5312] Fix | Delete
// Not a match.
[5313] Fix | Delete
if ( ! str_starts_with( $pattern, '%l' ) ) {
[5314] Fix | Delete
return $pattern;
[5315] Fix | Delete
}
[5316] Fix | Delete
[5317] Fix | Delete
// Nothing to work with.
[5318] Fix | Delete
if ( empty( $args ) ) {
[5319] Fix | Delete
return '';
[5320] Fix | Delete
}
[5321] Fix | Delete
[5322] Fix | Delete
/**
[5323] Fix | Delete
* Filters the translated delimiters used by wp_sprintf_l().
[5324] Fix | Delete
* Placeholders (%s) are included to assist translators and then
[5325] Fix | Delete
* removed before the array of strings reaches the filter.
[5326] Fix | Delete
*
[5327] Fix | Delete
* Please note: Ampersands and entities should be avoided here.
[5328] Fix | Delete
*
[5329] Fix | Delete
* @since 2.5.0
[5330] Fix | Delete
*
[5331] Fix | Delete
* @param array $delimiters An array of translated delimiters.
[5332] Fix | Delete
*/
[5333] Fix | Delete
$l = apply_filters(
[5334] Fix | Delete
'wp_sprintf_l',
[5335] Fix | Delete
array(
[5336] Fix | Delete
/* translators: Used to join items in a list with more than 2 items. */
[5337] Fix | Delete
'between' => sprintf( __( '%1$s, %2$s' ), '', '' ),
[5338] Fix | Delete
/* translators: Used to join last two items in a list with more than 2 times. */
[5339] Fix | Delete
'between_last_two' => sprintf( __( '%1$s, and %2$s' ), '', '' ),
[5340] Fix | Delete
/* translators: Used to join items in a list with only 2 items. */
[5341] Fix | Delete
'between_only_two' => sprintf( __( '%1$s and %2$s' ), '', '' ),
[5342] Fix | Delete
)
[5343] Fix | Delete
);
[5344] Fix | Delete
[5345] Fix | Delete
$args = (array) $args;
[5346] Fix | Delete
$result = array_shift( $args );
[5347] Fix | Delete
if ( count( $args ) === 1 ) {
[5348] Fix | Delete
$result .= $l['between_only_two'] . array_shift( $args );
[5349] Fix | Delete
}
[5350] Fix | Delete
[5351] Fix | Delete
// Loop when more than two args.
[5352] Fix | Delete
$i = count( $args );
[5353] Fix | Delete
while ( $i ) {
[5354] Fix | Delete
$arg = array_shift( $args );
[5355] Fix | Delete
--$i;
[5356] Fix | Delete
if ( 0 === $i ) {
[5357] Fix | Delete
$result .= $l['between_last_two'] . $arg;
[5358] Fix | Delete
} else {
[5359] Fix | Delete
$result .= $l['between'] . $arg;
[5360] Fix | Delete
}
[5361] Fix | Delete
}
[5362] Fix | Delete
[5363] Fix | Delete
return $result . substr( $pattern, 2 );
[5364] Fix | Delete
}
[5365] Fix | Delete
[5366] Fix | Delete
/**
[5367] Fix | Delete
* Safely extracts not more than the first $count characters from HTML string.
[5368] Fix | Delete
*
[5369] Fix | Delete
* UTF-8, tags and entities safe prefix extraction. Entities inside will *NOT*
[5370] Fix | Delete
* be counted as one character. For example &amp; will be counted as 4, &lt; as
[5371] Fix | Delete
* 3, etc.
[5372] Fix | Delete
*
[5373] Fix | Delete
* @since 2.5.0
[5374] Fix | Delete
*
[5375] Fix | Delete
* @param string $str String to get the excerpt from.
[5376] Fix | Delete
* @param int $count Maximum number of characters to take.
[5377] Fix | Delete
* @param string $more Optional. What to append if $str needs to be trimmed. Defaults to empty string.
[5378] Fix | Delete
* @return string The excerpt.
[5379] Fix | Delete
*/
[5380] Fix | Delete
function wp_html_excerpt( $str, $count, $more = null ) {
[5381] Fix | Delete
if ( null === $more ) {
[5382] Fix | Delete
$more = '';
[5383] Fix | Delete
}
[5384] Fix | Delete
[5385] Fix | Delete
$str = wp_strip_all_tags( $str, true );
[5386] Fix | Delete
$excerpt = mb_substr( $str, 0, $count );
[5387] Fix | Delete
[5388] Fix | Delete
// Remove part of an entity at the end.
[5389] Fix | Delete
$excerpt = preg_replace( '/&[^;\s]{0,6}$/', '', $excerpt );
[5390] Fix | Delete
[5391] Fix | Delete
if ( $str !== $excerpt ) {
[5392] Fix | Delete
$excerpt = trim( $excerpt ) . $more;
[5393] Fix | Delete
}
[5394] Fix | Delete
[5395] Fix | Delete
return $excerpt;
[5396] Fix | Delete
}
[5397] Fix | Delete
[5398] Fix | Delete
/**
[5399] Fix | Delete
* Adds a base URL to relative links in passed content.
[5400] Fix | Delete
*
[5401] Fix | Delete
* By default, this function supports the 'src' and 'href' attributes.
[5402] Fix | Delete
* However, this can be modified via the `$attrs` parameter.
[5403] Fix | Delete
*
[5404] Fix | Delete
* @since 2.7.0
[5405] Fix | Delete
*
[5406] Fix | Delete
* @global string $_links_add_base
[5407] Fix | Delete
*
[5408] Fix | Delete
* @param string $content String to search for links in.
[5409] Fix | Delete
* @param string $base The base URL to prefix to links.
[5410] Fix | Delete
* @param array $attrs The attributes which should be processed.
[5411] Fix | Delete
* @return string The processed content.
[5412] Fix | Delete
*/
[5413] Fix | Delete
function links_add_base_url( $content, $base, $attrs = array( 'src', 'href' ) ) {
[5414] Fix | Delete
global $_links_add_base;
[5415] Fix | Delete
$_links_add_base = $base;
[5416] Fix | Delete
$attrs = implode( '|', (array) $attrs );
[5417] Fix | Delete
return preg_replace_callback( "!($attrs)=(['\"])(.+?)\\2!i", '_links_add_base', $content );
[5418] Fix | Delete
}
[5419] Fix | Delete
[5420] Fix | Delete
/**
[5421] Fix | Delete
* Callback to add a base URL to relative links in passed content.
[5422] Fix | Delete
*
[5423] Fix | Delete
* @since 2.7.0
[5424] Fix | Delete
* @access private
[5425] Fix | Delete
*
[5426] Fix | Delete
* @global string $_links_add_base
[5427] Fix | Delete
*
[5428] Fix | Delete
* @param string $m The matched link.
[5429] Fix | Delete
* @return string The processed link.
[5430] Fix | Delete
*/
[5431] Fix | Delete
function _links_add_base( $m ) {
[5432] Fix | Delete
global $_links_add_base;
[5433] Fix | Delete
// 1 = attribute name 2 = quotation mark 3 = URL.
[5434] Fix | Delete
return $m[1] . '=' . $m[2] .
[5435] Fix | Delete
( preg_match( '#^(\w{1,20}):#', $m[3], $protocol ) && in_array( $protocol[1], wp_allowed_protocols(), true ) ?
[5436] Fix | Delete
$m[3] :
[5437] Fix | Delete
WP_Http::make_absolute_url( $m[3], $_links_add_base )
[5438] Fix | Delete
)
[5439] Fix | Delete
. $m[2];
[5440] Fix | Delete
}
[5441] Fix | Delete
[5442] Fix | Delete
/**
[5443] Fix | Delete
* Adds a target attribute to all links in passed content.
[5444] Fix | Delete
*
[5445] Fix | Delete
* By default, this function only applies to `<a>` tags.
[5446] Fix | Delete
* However, this can be modified via the `$tags` parameter.
[5447] Fix | Delete
*
[5448] Fix | Delete
* *NOTE:* Any current target attribute will be stripped and replaced.
[5449] Fix | Delete
*
[5450] Fix | Delete
* @since 2.7.0
[5451] Fix | Delete
*
[5452] Fix | Delete
* @global string $_links_add_target
[5453] Fix | Delete
*
[5454] Fix | Delete
* @param string $content String to search for links in.
[5455] Fix | Delete
* @param string $target The target to add to the links.
[5456] Fix | Delete
* @param string[] $tags An array of tags to apply to.
[5457] Fix | Delete
* @return string The processed content.
[5458] Fix | Delete
*/
[5459] Fix | Delete
function links_add_target( $content, $target = '_blank', $tags = array( 'a' ) ) {
[5460] Fix | Delete
global $_links_add_target;
[5461] Fix | Delete
$_links_add_target = $target;
[5462] Fix | Delete
$tags = implode( '|', (array) $tags );
[5463] Fix | Delete
return preg_replace_callback( "!<($tags)((\s[^>]*)?)>!i", '_links_add_target', $content );
[5464] Fix | Delete
}
[5465] Fix | Delete
[5466] Fix | Delete
/**
[5467] Fix | Delete
* Callback to add a target attribute to all links in passed content.
[5468] Fix | Delete
*
[5469] Fix | Delete
* @since 2.7.0
[5470] Fix | Delete
* @access private
[5471] Fix | Delete
*
[5472] Fix | Delete
* @global string $_links_add_target
[5473] Fix | Delete
*
[5474] Fix | Delete
* @param string $m The matched link.
[5475] Fix | Delete
* @return string The processed link.
[5476] Fix | Delete
*/
[5477] Fix | Delete
function _links_add_target( $m ) {
[5478] Fix | Delete
global $_links_add_target;
[5479] Fix | Delete
$tag = $m[1];
[5480] Fix | Delete
$link = preg_replace( '|( target=([\'"])(.*?)\2)|i', '', $m[2] );
[5481] Fix | Delete
return '<' . $tag . $link . ' target="' . esc_attr( $_links_add_target ) . '">';
[5482] Fix | Delete
}
[5483] Fix | Delete
[5484] Fix | Delete
/**
[5485] Fix | Delete
* Normalizes EOL characters and strips duplicate whitespace.
[5486] Fix | Delete
*
[5487] Fix | Delete
* @since 2.7.0
[5488] Fix | Delete
*
[5489] Fix | Delete
* @param string $str The string to normalize.
[5490] Fix | Delete
* @return string The normalized string.
[5491] Fix | Delete
*/
[5492] Fix | Delete
function normalize_whitespace( $str ) {
[5493] Fix | Delete
$str = trim( $str );
[5494] Fix | Delete
$str = str_replace( "\r", "\n", $str );
[5495] Fix | Delete
$str = preg_replace( array( '/\n+/', '/[ \t]+/' ), array( "\n", ' ' ), $str );
[5496] Fix | Delete
return $str;
[5497] Fix | Delete
}
[5498] Fix | Delete
[5499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function