• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

関数リファレンス/flush rewrite rules

提供: WordPress Codex 日本語版
< 関数リファレンス
2015年9月2日 (水) 13:02時点におけるTorounit (トーク | 投稿記録)による版 (en:flush rewrite rules 10:36, 5 May 2015‎・Juliobox 版)

(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

このページ「関数リファレンス/flush rewrite rules」は未翻訳です。和訳や日本語情報を加筆してくださる協力者を求めています

Description

Remove rewrite rules and then recreate rewrite rules.

This function is useful when used with custom post types as it allows for automatic flushing of the WordPress rewrite rules (usually needs to be done manually for new custom post types). However, this is an expensive operation so it should only be used when absolutely necessary. See Usage section for more details.

Usage

Important:

  • Flushing the rewrite rules is an expensive operation, there are tutorials and examples that suggest executing it on the 'init' hook. This is bad practice.
  • Flush rules only on activation or deactivation, or when you know that the rewrite rules need to be changed. Don't do it on any hook that will triggered on a routine basis. More detail information in the comments on WP Engineer's post: Custom Post Type and Permalink
  • Make sure custom post types and taxonomies are properly registered before flushing rewrite rules, especially during plugin activation: Activation Checklist for WordPress Plugin Developers

%%%<?php flush_rewrite_rules( $hard ); ?>%%%

Parameters

$hard
boolean) (optional) Whether to update .htaccess (hard flush) or just update rewrite_rules transient (soft flush).
初期値: true (hard flush)

Examples

This is how you would flush rewrite rules when a plugin is activated or deactivated:

register_deactivation_hook( __FILE__, 'flush_rewrite_rules' );
register_activation_hook( __FILE__, 'myplugin_flush_rewrites' );
function myplugin_flush_rewrites() {
	// call your CPT registration function here (it should also be hooked into 'init')
	myplugin_custom_post_types_registration();
	flush_rewrite_rules();
}

This is how you would flush rules on theme activation:

/* Flush rewrite rules for custom post types. */
add_action( 'after_switch_theme', 'flush_rewrite_rules' );

If you're developing a theme, while building it you can use this snippet of code that will flush rewrite rules when the file containing it is changed, or every 48 hours:

// do not use on live/production servers
add_action( 'init','maybe_rewrite_rules' );
function maybe_rewrite_rules() {

	$ver = filemtime( __FILE__ ); // Get the file time for this file as the version number
	$defaults = array( 'version' => 0, 'time' => time() );
	$r = wp_parse_args( get_option( __CLASS__ . '_flush', array() ), $defaults );

	if ( $r['version'] != $ver || $r['time'] + 172800 < time() ) { // Flush if ver changes or if 48hrs has passed.
		flush_rewrite_rules();
		// trace( 'flushed' );
		$args = array( 'version' => $ver, 'time' => time() );
		if ( ! update_option( __CLASS__ . '_flush', $args ) )
			add_option( __CLASS__ . '_flush', $args );
	}

}

Change Log

Since: 3.0

Source File

flush_rewrite_rules() is located in wp-includes/rewrite.php

Related

記事

フック

  • フィルター: root_rewrite_rules /en - ブログのルート用に生成されたリライトルールをフィルターする。
  • フィルター: post_rewrite_rules /en - パーマリンク URL 向けに生成されたリライトルールをフィルターする。
  • フィルター: page_rewrite_rules /en - 固定ページ向けに生成されたリライトルールをフィルターする。
  • フィルター: date_rewrite_rules /en - 日付ごとのアーカイブ URL 向けに生成されたリライトルールをフィルターする。
  • フィルター: search_rewrite_rules /en - 検索 URL 向けに生成されたリライトルールをフィルターする。
  • フィルター: comments_rewrite_rules /en - 最新コメントフィード URL 向けに生成されたリライトルールをフィルターする。
  • フィルター: author_rewrite_rules /en - 投稿者アーカイブ URL 向けに生成されたリライトルールをフィルターする。
  • フィルター: rewrite_rules_array /en - すべてのリライトルールを一度にフィルターする。
  • フィルター: {$permastruct}_rewrite_rules /en - タクソノミーやカスタム投稿タイプなどのカスタムパーマストラクト向けのリライトルールを作成・編集するために使える。
  • アクション: generate_rewrite_rules /en - すべてのルールが生成された後に実行される。

関数

  • add_rewrite_tag() / en - WordPress にカスタム変数 (特に、カスタムクエリストリング変数) を認識させるために使える。
  • add_rewrite_rule() / en - 新しいカスタムリライトルールを指定できる。
  • add_rewrite_endpoint() / en - /trackback/ などの新規エンドポイントを追加する。
  • flush_rules() / en - リライトルールを再生成してデータベースに保存する。
  • flush_rewrite_rules() / en - リライトルールを削除して再生成する。
  • generate_rewrite_rules() / en - パーマリンク構造からリライトルールを生成する。
  • add_permastruct() / en - 新規パーマストラクトを追加する。
  • add_feed() / en - /atom1/ のような新規フィードタイプを追加する。
この記事は翻訳時に編集が必要であるとマークされていました。その為Codex原文が大きく編集されている可能性があります。内容を確認される際は原文を参照していただき、可能であれば本項目へ反映させてください。よりよいCodexを作成するためのお手伝いをお願いします。