WPSEO_Rewrite::no_category_base()publicYoast 1.0

Override the category link to remove the category base.

Метод класса: WPSEO_Rewrite{}

Хуков нет.

Возвращает

Строку.

Использование

$WPSEO_Rewrite = new WPSEO_Rewrite();
$WPSEO_Rewrite->no_category_base( $link, $term, $taxonomy );
$link(строка) (обязательный)
Term link, overridden by the function for categories.
$term(WP_Term) (обязательный)
Unused, term object.
$taxonomy(строка) (обязательный)
Taxonomy slug.

Код WPSEO_Rewrite::no_category_base() Yoast 22.4

public function no_category_base( $link, $term, $taxonomy ) {
	if ( $taxonomy !== 'category' ) {
		return $link;
	}

	$category_base = get_option( 'category_base' );

	if ( empty( $category_base ) ) {
		$category_base = 'category';
	}

	/*
	 * Remove initial slash, if there is one (we remove the trailing slash
	 * in the regex replacement and don't want to end up short a slash).
	 */
	if ( substr( $category_base, 0, 1 ) === '/' ) {
		$category_base = substr( $category_base, 1 );
	}

	$category_base .= '/';

	return preg_replace( '`' . preg_quote( $category_base, '`' ) . '`u', '', $link, 1 );
}