あくまで自分用の覚え書きなので文章とか適当です...

オプションページの作成

functions.php

if ( function_exists( 'acf_add_options_page' ) ) {
	acf_add_options_page(
		array(
			'page_title'  => '例会案内注意事項',
			'menu_title'  => '例会案内注意事項',
			'menu_slug'   => 'meeting-archive-notes',
			'capability'  => 'edit_posts',
			'parent_slug' => 'edit.php?post_type=meeting-archive',
		)
	);
}

テンプレートの出力箇所

<?php
$meeting_notes = get_option( 'options_meeting_notes' );
if ( $meeting_notes ) {
	echo nl2br( esc_html( $meeting_notes ) );
}
?>

USRE ROLE EDITOR と使う場合の注意点

例えば ユーザーID2 のユーザーが編集できるようにしたいが ユーザーID2 には通常の投稿(edit_posts)を編集する権限が無い場合は下記のように設定する。

//カスタム投稿登録
function my_meeting_archive_post() {
	register_post_type(
		'meeting-archive',
			'capability_type' => array( 'meeting-archive', 'meeting-archives' ),
			'map_meta_cap'    => true,
		)
	);
}
add_action( 'init', 'my_meeting_archive_post' );

//ACFのオプション
if ( function_exists( 'acf_add_options_page' ) ) {
	acf_add_options_page(
		array(
			'page_title'  => '例会案内注意事項',
			'menu_title'  => '例会案内注意事項',
			'menu_slug'   => 'meeting-archive-notes',
			'capability'  => 'edit_meeting-archives', //←これ
			'parent_slug' => 'edit.php?post_type=meeting-archive',
		)
	);
}

テキスト

テンプレート記述例

$school = get_field( 'school' );
if ( $school ) {
	echo '<p>' . esc_html( $school ) . '</p>';
}

テキストエリア

$text = get_the_author_meta( 'profile_text' );
echo wp_kses_post( nl2br( $text ) );

画像

返り値は画像IDを選択する。 IDにしておけばカスタムメディアサイズを利用したり、画像サイズ指定ができる。

ALTをタイトルなどで自動設定する場合

$img    = get_field( 'foobar' );
$size   = 'medium_large';
$imgsrc = wp_get_attachment_image_src( $img, $size );
if ( $img ) :
	?>
<figure>
	<img src="<?php echo esc_url( $imgsrc[0] ); ?>" width="<?php echo esc_attr( $imgsrc[1] ); ?>" height="<?php echo esc_attr( $imgsrc[2] ); ?>" alt="<?php the_title_attribute(); ?>のイメージ">
</figure>
<?php else : ?>
<figure><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/no-img.png" alt=""></figure>

手動でALTを設定する場合

srcset にも対応されます。

$img  = get_field( 'foobar' );
$size = 'medium_large';
if ( $img ) :
	?>
<figure><?php echo wp_get_attachment_image( $img, $size ); ?></figure>
<?php else : ?>
<figure><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/no-img.png" alt=""></figure>

テンプレート記述例

フィールド名 = product_thumb

<ul>
<?php while ($products-> have_posts()) : $products->the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php if( get_field('product_thumb')): ?>
<?php 
$imgid = get_field('product_thumb');
$img = wp_get_attachment_image_src( $imgid , 'my_product_thumb' ); ?>
?>
        <img src="<?php echo $img[0]; ?>" width="<?php echo $img[1]; ?>" height="<?php echo $img[2]; ?>" alt="<?php the_title_attribute(); ?>">
        <?php else: ?>
        <img src="/images/common/noimage100_100.gif" alt="<?php the_title(); ?>">
        <?php endif; ?></a></li>
<?php endwhile; ?>
</ul>

その他テンプレ―トへの記述例色々

<?php if( have_rows('faq') ): ?>
<dl class="faq-list">
<?php while( have_rows('faq') ): the_row(); ?>
	<dt><?php the_sub_field('question'); ?></dt>
	<dd><?php the_sub_field('answer'); ?></dd>
<?php endwhile; ?>
</dl>
<?php else : ?>
	<p>現在、表示する質問がありません。</p>
<?php endif; ?>

繰り返しフィールド入れ子

<?php
$args = array(
    'child_of' => $post->ID,
);
$mypages = get_pages( $args ); ?>

<?php foreach( $mypages as $page ): ?>
<?php if( have_rows('document_set', $page->ID)): ?>
<h4 class="title-a-01" id="<?php echo $page->post_name; ?>"><?php echo $page->post_title; ?></h4>
<?php
    $content_child = get_page($page->ID);
    echo $content_child -> post_content;
?>
<table class="download-table">
    <thead>
    <tr>
        <th>書類名</th>
        <th>ダウンロード</th>
        <th>備考欄</th>
    </tr>
    </thead>
<?php while( have_rows('document_set', $page->ID)): the_row(); ?>
    <tr>
        <td><?php $document_name = get_sub_field('document_name', $page->ID);
if( $document_name ): echo $document_name; else: echo '&nbsp;';
endif; ?></td>
        <td><?php if(have_rows('document', $page->ID)): ?>
        <ul>
            <?php while( have_rows('document', $page->ID)): the_row(); ?>
            <li><a href="/assets/images/download/<?php the_sub_field('file_url', $page->ID); ?>" class="icon-before"><?php the_sub_field('text', $page->ID); ?></a></li>
            <?php endwhile; ?>
        </ul>
        <?php else: echo '&nbsp;'; endif; ?></td>
        <td><?php $remarks = get_sub_field('remarks', $page->ID);
if( $remarks ): echo $remarks; else: echo '&nbsp;';
endif; ?></td>
    </tr>
<?php endwhile; ?>
</table>
<?php endif; ?>
<?php endforeach; ?>
スポンサーリンク