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

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

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

提供: WordPress Codex 日本語版
移動先: 案内検索
(en:flush rewrite rules 10:36, 5 May 2015‎・Juliobox 版)
 
 
(3人の利用者による、間の13版が非表示)
1行目: 1行目:
{{NeedTrans}}
+
== 説明 ==
  
== Description ==
+
既存のリライトルールをフラッシュ(削除し再生成)します。
  
Remove rewrite rules and then recreate rewrite rules.
+
これは WordPress のリライトルールの自動再生成を可能にするなどのカスタム投稿タイプで使用する際に便利です(通常は新しいカスタム投稿タイプのために手動で実行する必要があります)。しかし、'''これは非常にコストのかかる操作です'''。本当に必要である場合のみに実行して下さい。詳細については、[[#Usage|使い方]]のセクションを参照してください。
  
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 [http://codex.wordpress.org/Function_Reference/flush_rewrite_rules#Usage Usage] section for more details.
+
<div id=“Usage”>
 +
== 使い方 ==
 +
</div>
  
== Usage ==
+
'''重要:'''
 +
* リライトルールの再生成はとても高コストな操作です。 <tt>[[Plugin API/Action Reference/init|'init']]</tt> フックでこれを実行することを勧めるチュートリアルや例が存在しますが、 '''バッドプラクティスです'''。
 +
* リライトルールの再生成は有効化、無効化、または明示的にリライトルールを変更する必要があるときのみにすべきです。 '''常にトリガされるすべてのフックで実行しないでください'''。もっと詳細な情報は WP Engineer's post: [http://wpengineer.com/2044/custom-post-type-and-permalink/ Custom Post Type and Permalink] のコメント欄にあります。
 +
* 特にプラグインの有効化時には、リライトルールのフラッシュをする'''前に'''、カスタム投稿やタクソノミーが'''ちゃんと登録されていること'''を確かめて下さい。: [http://solislab.com/blog/plugin-activation-checklist/#flush-rewrite-rules Activation Checklist for WordPress Plugin Developers]
  
'''Important:'''
+
<pre>
* Flushing the rewrite rules is an expensive operation, there are tutorials and examples that suggest executing it on the <tt>[[Plugin API/Action Reference/init|'init']]</tt> hook. '''This is bad practice.'''
+
<?php flush_rewrite_rules( $hard ); ?>
* 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: [http://wpengineer.com/2044/custom-post-type-and-permalink/ Custom Post Type and Permalink]
+
</pre>
* Make sure custom post types and taxonomies are '''properly registered before''' flushing rewrite rules, especially during plugin activation: [http://solislab.com/blog/plugin-activation-checklist/#flush-rewrite-rules Activation Checklist for WordPress Plugin Developers]
+
%%%<?php flush_rewrite_rules( $hard ); ?>%%%
+
  
== Parameters ==
+
== パラメーター ==
  
{{Parameter|$hard|boolean|Whether to update [[htaccess|.htaccess]] (hard flush) or just update <tt>rewrite_rules</tt> transient (soft flush).|optional|<tt>true</tt> (hard flush)}}
+
{{Parameter|$hard|真偽値| [[htaccess|.htaccess]] も更新するか (ハードフラッシュ) それとも <tt>rewrite_rules</tt> のみを更新するか (ソフトフラッシュ)|オプション|<tt>true</tt> (ハードフラッシュ)}}
  
== Examples ==
+
== ==
  
This is how you would flush rewrite rules when a plugin is activated or deactivated:
+
これはプラグインを有効化/無効化するときに、リライトルールをフラッシュする方法です:
  
 
<pre>
 
<pre>
34行目: 37行目:
 
</pre>
 
</pre>
  
This is how you would flush rules on theme activation:
+
 
 +
これはテーマを有効化するときに、リライトルールをフラッシュする方法です:
  
 
<pre>/* Flush rewrite rules for custom post types. */
 
<pre>/* Flush rewrite rules for custom post types. */
40行目: 44行目:
 
</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時間毎に、リライトルールをフラッシュします:
  
 
<pre>
 
<pre>
61行目: 66行目:
 
}</pre>
 
}</pre>
  
== Change Log ==
+
== 更新履歴 ==
 +
 
 +
新規導入: [[Version 3.0|3.0]]
 +
 
 +
== ソースファイル ==
  
Since: [[Version 3.0|3.0]]
+
<tt>flush_rewrite_rules()</tt> は {{Trac|wp-includes/rewrite.php}} にあります。
  
== Source File ==
+
==関連==
  
<tt>flush_rewrite_rules()</tt> is located in {{Trac|wp-includes/rewrite.php}}
+
[http://www.torounit.com/blog/2015/09/02/2077/ http://www.torounit.com/blog/2015/09/02/2077/] - Toro_Unitさん いい加減 flush_rewrite_rules を書くのはやめてください!!
  
==Related==
 
 
{{Rewrite API}}
 
{{Rewrite API}}
  
[[Category:Functions]]
+
{{原文|Function Reference/flush_rewrite_rules|151331}} <!-- 10:36, 5 May 2015 Juliobox 版 -->
  
{{Copyedit}}
+
{{DEFAULTSORT:Flush_rewrite_rules}}
 +
[[Category:関数]]

2016年2月11日 (木) 08:14時点における最新版

説明

既存のリライトルールをフラッシュ(削除し再生成)します。

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

使い方

重要:

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

パラメーター

$hard
真偽値) (オプション.htaccess も更新するか (ハードフラッシュ) それとも rewrite_rules のみを更新するか (ソフトフラッシュ)。
初期値: true (ハードフラッシュ)

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

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/ のような新規フィードタイプを追加する。


最新英語版: WordPress Codex » Function Reference/flush_rewrite_rules最新版との差分