カスタムフィールド (ACF)

代表的な CSV 用フィールド名(WordPress 標準)

基本

  • post_id
  • post_type
  • post_status
  • post_name
  • post_title

その他

  • post_content
  • post_excerpt
  • post_date
  • post_thumbnail
  • post_tags
  • post_category
  • post_parent
  • menu_order

フィールド出力

基本の出力

<?php if(post_custom('field_name')): ?>
<?php echo (post_custom('field_name')); ?>
<?php endif; ?>

wysiwyg エディタの出力

<?php the_field('wysiwyg'); ?>

特定ページのカスタムフィールドを取得

<?php echo get_field('フィールド名', 投稿ID) ?>
<?php echo get_field('acf_text', 2139) ?>

関連フィールド

関連フィールドの出力

<?php // 関連フィールド出力
$posts = get_field('field_name');
if( $posts ): ?>
<ul>
<?php foreach( $posts as $relate ): ?>
    <li>
        <a href="<?php echo get_permalink( $relate->ID ); ?>">
            <?php echo get_the_post_thumbnail( $relate->ID ); ?>
            <?php echo get_the_title( $relate->ID ); ?>
        </a>
    </li>
<?php endforeach; ?>
</ul>
<?php endif; ?>

下書き記事を除外

// 【ACF】関連カスタムフィールドで下書き記事を除外 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
function relationship_args_filter($args, $field, $post_id) {
  $args['post_status'] = array('publish');
  return $args;
}
add_filter('acf/fields/relationship/query', 'relationship_args_filter', 10, 3);

現在の記事を除外

// 【ACF】関連カスタムフィールドで現在の記事を除外 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
function custom_acf_relationship_query( $args, $field, $post_id ) {
  $args['post__not_in'] = array( $post_id );
  return $args;
}
add_filter( 'acf/fields/relationship/query', 'custom_acf_relationship_query', 10, 3 );

特定のカスタムフィールドの値を持つ投稿の数を取得

// functions.php
// 特定のカスタムフィールドの値を持つ投稿の数を取得 - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
function loopPostCount( $post_meta_key = null ,$post_meta_value = null )
{
    $args = array(
        'post_type' => 'post',
        'meta_key' => $post_meta_key,
        'meta_value' => $post_meta_value,
        'posts_per_page' => -1
    );
    $meta_posts = get_posts($args);
    $count_post = 0;
    foreach ($meta_posts as $post) {
        $count_post++;
    }
    return $count_post;
}

// 出力するテンプレートファイル
<?php echo loopPostCount ('field_name', 'field_value'); ?>