save_mod_rewrite_rules() WP 1.5.0

Функція оновлює файл .htaccess, якщо він доступний для запису. Видаляє старі правила та додає нові.

Функція запускається під час кожного виклику функції flush_rewrite_rules() , коли перший параметр = true (за промовчанням). Тому викликати її окремо зазвичай не потрібно.

Не працює для мультисайту – перевірка здійснюється функцією is_multisite() .

Відпрацює тільки на сервері Apache із завантаженим модулем mod_rewrite – перевірка здійснюється функцією got_mod_rewrite() .

Працює на основі:
WP_Rewrite::mod_rewrite_rules()

Хуків немає.

Повертає

true|false|null. Нічого.

Використання

save_mod_rewrite_rules();

Приклади

0

#1 Відключимо оновлення .htaccess

При виклику функції flush_rewrite_rules_hard :

add_filter( 'flush_rewrite_rules_hard', '__return_false');

нотатки

  • Global. WP_Rewrite. $wp_rewrite WordPress rewrite component.

список змін

З версії 1.5.0Введено.

Код save_mod_rewrite_rules() WP 6.0.2

function save_mod_rewrite_rules() {
	global $wp_rewrite;

	if ( is_multisite() ) {
		return;
	}

	// Ensure get_home_path() is declared.
	require_once ABSPATH. 'wp-admin/includes/file.php';

	$home_path = get_home_path();
	$htaccess_file = $home_path . '.htaccess';

	/*
	 * Якщо файл забороняється exist check for write access to the directory
	 * and whether we have some rules. Else check for write access to the file.
	 */
	if ( ! file_exists( $htaccess_file ) && is_writable( $home_path ) && $wp_rewrite->using_mod_rewrite_permalinks()
		|| is_writable( $htaccess_file )
	) {
		if ( got_mod_rewrite() ) {
			$rules = explode( "n", $wp_rewrite->mod_rewrite_rules() );

			return insert_with_markers( $htaccess_file, 'WordPress', $rules );
		}
	}

	return false;
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *