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

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

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

提供: WordPress Codex 日本語版
< 関数リファレンス
2015年9月2日 (水) 22:46時点におけるMiccweb (トーク | 投稿記録)による版 (見出しと参照追加)

移動先: 案内検索

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

説明

既存のリライトルールを削除し、再生成します。

それはWordPressのリライトルールの自動再生成を可能にするなどのカスタム投稿タイプで使用する際に便利です。(通常は新しいカスタム投稿タイプのために手動で実行する必要があります). しかし, これは非常にコストのかかる操作です。 本当に必要である場合のみに実行して下さい。詳細については、使い方のセクションを参照してください。.

使い方

重要:

  • リライトルールの再生成はとても高コストな操作です。 'init' フックでこれを実行することを勧めるチュートリアルや例が存在しますが、 バッドプラクティスです
  • リライトルールの再生成は有効化、無効化、または明示的にリライトルールを変更する必要があるときのみにすべきです。 常にトリガされるすべてのフックで実行しないでください。もっと詳細な情報は WP Engineer's post: Custom Post Type and Permalink のコメント欄にあります。
  • 特にプラグインの有効化時には、リライトルールのフラッシュをする前に、カスタム投稿やタクソノミーがちゃんと登録されていることを確かめて下さい。: Activation Checklist for WordPress Plugin Developers
<?php flush_rewrite_rules( $hard ); ?>

パラメーター

$hard
真偽値) (optional.htaccess も更新するか (ハードフラッシュ) or rewrite_rules のみを更新するか (ソフトフラッシュ).
初期値: true (hard flush)

これはプラグインを有効化/無効化するときに、リライトルールをフラッシュする方法です。:

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();
}


これはテーマを有効化するときに、リライトルールをフラッシュする方法です。:

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


もしあなたがテーマを開発しているなら、このコードスニペットを使うことができます。これが記述されたファイルの変更、または48時間毎に、リライトルールをフラッシュします。

// 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 );
	}

}

更新履歴

新規導入: 3.0

ソースファイル

flush_rewrite_rules()wp-includes/rewrite.phpにあります。

関連

http://www.torounit.com/blog/2015/09/02/2077/ - Toro_Unitさん いい加減 flush_rewrite_rules を書くのはやめてください!!


記事

フック

  • フィルター: 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を作成するためのお手伝いをお願いします。