clean_network_cache()
は、WordPress マルチサイト環境において、指定されたネットワーク(マルチサイトネットワーク)のキャッシュを削除する関数です。
ネットワークに関連する情報(名前、ドメイン、設定など)が更新された場合、キャッシュが原因で古い情報が表示される可能性があります。
この関数を使うことで、該当ネットワークのキャッシュをクリアし、常に最新情報が取得されるようにします。
基本構文
clean_network_cache( $network_id );
$network_id
に指定されたネットワークのキャッシュを削除します。- 通常、ネットワーク情報の更新時に自動で呼び出されますが、必要に応じて手動でも使用できます。
引き数と戻り値
引き数 | 型 | 説明 |
---|---|---|
$network_id | int | キャッシュを削除したいネットワークのID |
戻り値 | 型 | 説明 |
---|---|---|
なし(void ) | ― | 副作用としてキャッシュを削除する。返り値はなし |
使用例
タグを使った使用例
$network_id = 1; // デフォルトのネットワークID
clean_network_cache( $network_id );
このコードは、ネットワーク ID が 1 のネットワークに関連付けられているキャッシュを削除します。設定変更後のキャッシュ更新に活用できます。
注意点
- マルチサイト専用関数
-
シングルサイト環境では意味を持ちません。
- 自動で呼ばれるケースが多い
-
update_network_option()
などの関数使用時に内部で自動呼び出しされることがあります。 - 頻繁な使用は推奨されない
-
キャッシュ削除は処理負荷になるため、必要な場合に限定しましょう。
よく一緒に使われる関数
get_network()
$network = get_network( $network_id ); // キャッシュ利用あり
clean_network_cache( $network_id );
$network = get_network( $network_id ); // 再取得(キャッシュ削除後)
ネットワーク情報を再取得したい場合に組み合わせて使います。
update_network_option()
update_network_option( $network_id, 'example_option', 'new_value' );
clean_network_cache( $network_id );
ネットワーク設定変更後、キャッシュ削除で即時反映を促す場合に使用。
wp_cache_delete()
wp_cache_delete( 'networks', 'site-options' );
clean_network_cache( $network_id );
より細かいキャッシュ制御と併用することで安定性が増します。
想定されるトラブル
ネットワーク名や設定変更が管理画面に反映されない
キャッシュが残っているため、表示が古い情報のままになる。
解決方法
clean_network_cache()
を明示的に呼び出してキャッシュ削除。
ネットワークのドメインやパスを変更してもAPIで正しく取得できない
get_network()
関数が古いキャッシュを返すため、誤った情報が取得される。
解決方法
clean_network_cache( $network_id )
を使ってキャッシュをリセット。
Q&A
まとめ
clean_network_cache()
は、WordPressマルチサイトにおけるネットワーク情報のキャッシュを削除するための関数です。
設定変更後の表示反映や情報の再取得を確実に行いたい場合に役立ちます。頻繁に使う必要はありませんが、カスタム開発時やバッチ処理など、キャッシュ整合性が重要な場面で効果を発揮します。
コメント