WPSEO_Replace_Vars::register_replacement()
Register new replacement %%variables%%. For use by other plugins/themes to register extra variables.
Метод класса: WPSEO_Replace_Vars{}
Хуков нет.
Возвращает
true|false
. Whether the replacement function was succesfully registered.
Использование
$result = WPSEO_Replace_Vars::register_replacement( $var_to_replace, $replace_function, $type, $help_text );
- $var_to_replace(строка) (обязательный)
- The name of the variable to replace, i.e. '%%var%%'. Note: the surrounding %% are optional.
- $replace_function(разное) (обязательный)
- Function or method to call to retrieve the replacement value for the variable. Uses the same format as add_filter/add_action function parameter and should return the replacement value. DON'T echo it.
- $type(строка)
- Type of variable: 'basic' or 'advanced'.
По умолчанию: 'advanced' - $help_text(строка)
- Help text to be added to the help tab for this variable.
По умолчанию: ''
Заметки
- Смотрите: wpseo_register_var_replacement() for a usage example.
Код WPSEO_Replace_Vars::register_replacement() WPSEO Replace Vars::register replacement Yoast 24.9
public static function register_replacement( $var_to_replace, $replace_function, $type = 'advanced', $help_text = '' ) { $success = false; if ( is_string( $var_to_replace ) && $var_to_replace !== '' ) { $var_to_replace = self::remove_var_delimiter( $var_to_replace ); if ( preg_match( '`^[A-Z0-9_-]+$`i', $var_to_replace ) === false ) { trigger_error( esc_html__( 'A replacement variable can only contain alphanumeric characters, an underscore or a dash. Try renaming your variable.', 'wordpress-seo' ), E_USER_WARNING ); } elseif ( strpos( $var_to_replace, 'cf_' ) === 0 || strpos( $var_to_replace, 'ct_' ) === 0 ) { trigger_error( esc_html__( 'A replacement variable can not start with "%%cf_" or "%%ct_" as these are reserved for the WPSEO standard variable variables for custom fields and custom taxonomies. Try making your variable name unique.', 'wordpress-seo' ), E_USER_WARNING ); } elseif ( ! method_exists( self::class, 'retrieve_' . $var_to_replace ) ) { if ( $var_to_replace !== '' && ! isset( self::$external_replacements[ $var_to_replace ] ) ) { self::$external_replacements[ $var_to_replace ] = $replace_function; $replacement_variable = new WPSEO_Replacement_Variable( $var_to_replace, $var_to_replace, $help_text ); self::register_help_text( $type, $replacement_variable ); $success = true; } else { trigger_error( esc_html__( 'A replacement variable with the same name has already been registered. Try making your variable name unique.', 'wordpress-seo' ), E_USER_WARNING ); } } else { trigger_error( esc_html__( 'You cannot overrule a WPSEO standard variable replacement by registering a variable with the same name. Use the "wpseo_replacements" filter instead to adjust the replacement value.', 'wordpress-seo' ), E_USER_WARNING ); } } return $success; }