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

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

「関数リファレンス/flush rewrite rules」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(使い方)
()
46行目: 46行目:
 
</pre>
 
</pre>
  
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:
+
 
もし、あなたがテーマを開発しているなら、このコードスニペットが使えます。これが記述されたファイルの変更、または48時間毎に、リライトルールをフラッシュします。
+
もしあなたがテーマを開発しているなら、このコードスニペットを使うことができます。これが記述されたファイルの変更、または48時間毎に、リライトルールをフラッシュします。
 
<pre>
 
<pre>
 
// do not use on live/production servers
 
// do not use on live/production servers

2015年9月2日 (水) 21:36時点における版

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

Description

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

それは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 );
	}

}

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を作成するためのお手伝いをお願いします。