acf_cache_key()


WordPressのacf_cache_key()関数は、Advanced Custom Fields(ACF)プラグインで使用され、フィールドデータのキャッシュキーを生成するために利用されます。

構文

acf_cache_key( $post_id, $field_name );

引数の説明:

  • $post_id (int) — 対象となる投稿のID
  • $field_name (string) — キャッシュを生成するACFフィールドの名前

例 1: キャッシュキーの取得

このコードは、指定された投稿とフィールド名に基づいてキャッシュキーを取得します。

<?php $cache_key = acf_cache_key( get_the_ID(), 'field_name' ); ?>

例 2: 特定の投稿のキャッシュキーを使用する

特定の投稿のキャッシュキーを取得し、そのキーを使ってデータをキャッシュする例です。

<?php 
$post_id = get_the_ID();
$field_name = 'custom_field';
$cache_key = acf_cache_key( $post_id, $field_name );
$cached_value = get_transient( $cache_key );
?>

例 3: キャッシュが存在しない場合の処理

キャッシュキーが存在しない場合、新しいデータを取得しキャッシュに保存する方法です。

<?php 
$post_id = get_the_ID();
$field_name = 'custom_field';
$cache_key = acf_cache_key( $post_id, $field_name );
$cached_value = get_transient( $cache_key );

if ( false === $cached_value ) {
    $cached_value = get_field( $field_name, $post_id );
    set_transient( $cache_key, $cached_value, HOUR_IN_SECONDS );
}
?>

例 4: 投稿IDとフィールド名を利用して複数のキャッシュキーを作成

このコードは、投稿IDとフィールド名を組み合わせて複数のキャッシュキーを生成する方法です。

<?php 
$fields = array( 'field_one', 'field_two', 'field_three' );
foreach ( $fields as $field_name ) {
    $cache_key = acf_cache_key( get_the_ID(), $field_name );
    $cached_value = get_transient( $cache_key );
    // キャッシュの処理
}
?>

例 5: キャッシュキーに基づいてデータのキャッシュと取得

特定のキャッシュキーに基づいてデータをキャッシュし、取得する方法です。

<?php 
$post_id = get_the_ID();
$field_name = 'custom_field';
$cache_key = acf_cache_key( $post_id, $field_name );
$cached_value = get_transient( $cache_key );

if ( ! $cached_value ) {
    $cached_value = get_field( $field_name, $post_id );
    set_transient( $cache_key, $cached_value, 12 * HOUR_IN_SECONDS );
}
?>

予防策

  • キャッシュを使用する際には、適切なキャッシュの期限を設定することが重要です。
  • キャッシュキーが重複しないように、フィールド名や投稿IDを正確に指定するようにしましょう。