戸惑い、傷つき、誰にも打ち明けずに、悩んでた、それももう~~~~~やめ~よ~お~~♪
POSTループ(クエリを指定)
<?php
$args = array(
'post_type' => 'post',
'posts_per_page' => 3,
'tax_query' => array(
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => array( 'exam' ),
),
),
);
$query = new WP_Query( $args );
?>
<?php if( $query->have_posts() ) : ?>
<?php while ( $query->have_posts() ) : $query->the_post(); ?>
<!-- データを取得 -->
<?php endwhile; ?>
<?php else : ?>
<li><p>まだ記事がありません。</p></li>
<?php endif; ?>
<?php wp_reset_postdata(); //必須 ?>
備考
色々方法はあるらしいがWP_Query()が推奨されているらしいので。
POSTデータ
タイトル
<?php the_title(); ?>
備考
echo 書かなくて良い。
テンプレートタグ/the title
投稿日
<?php echo get_the_date('y.m.d'); ?>
備考
the_date()はecho 書かなくて良いが、同ー投稿日の記事が複数あると出力してくれない。
テンプレートタグ/the date
テンプレートタグ/get the date
PHP:date Manual
パーマリンク
<?php the_permalink(); ?>
備考
echo 書かなくて良い
テンプレートタグ/the permalink
アイキャッチ画像
URLとalt
<?php
if ( has_post_thumbnail() ) :
$thumbid = get_post_thumbnail_id( $post->ID );
$alt = get_post_meta($thumbid, '_wp_attachment_image_alt', true);
?>
<img src="<?php the_post_thumbnail_url( 'full' ); ?>" alt="<?php echo $alt ? $alt : get_the_title(); ?>">
<?php endif; ?>
URLのみ
<?php if ( has_post_thumbnail() ) : ?>
<img src="<?php the_post_thumbnail_url( 'full' ); ?>">
<?php endif; ?>
備考
画像は面倒。余計な属性がつくデフォルトではなく自力で。altが無い時の保険処理付き。
カスタムフィールド(テキスト)
slug が hogehoge なフィールドの値を表示。
<?php the_field('hogehoge'); ?>
フィールド名が hogehoge なフィールドの値を取得。
<?php $text = get_field('hogehoge'); ?>
備考
サニタイズとかした方がベターかも。不特定多数が投稿するようなサイトは作ったこと無いけど。
カスタムフィールド(ファイル)
※ フィールド名が hogehoge で、返り値が「ファイル URL」の場合
<?php $file = get_field('hogehoge'); if( $file ) : ?>
<a href="<?php echo $file['url'] ?>" target="_blank"">ファイルを開く</a>
<?php endif; ?>
備考
PDFファイル添付したいケースでよく使う
個別記事ページ
前の記事へ/次の記事へリンク
※ 投稿
<ul>
<li><?php previous_post_link('%link', '前の記事へ'); ?></li>
<li><a href="/news/">一覧に戻る</a></li>
<li><?php next_post_link('%link', '次の記事へ'); ?></li>
</ul>
※ カスタム投稿
<ul>
<li><?php previous_post_link('%link', '前の記事へ'); ?></li>
<li><a href="<?php echo get_post_type_archive_link( get_post_type() ); ?>">一覧に戻る</a></li>
<li><?php next_post_link('%link', '次の記事へ'); ?></li>
</ul>
備考
/news/の部分、投稿のアーカイブページをTOPページ以外にしていると、関数でアーカイブページURLが取得出来ない問題有。
そのため、直指定。
うまいやり方ないかな。。
#共通
TOPページのURL
<?php echo esc_url( home_url('/') ); ?>
備考
長い。
子テーマのURL
<img src="<?php echo get_stylesheet_directory_uri() ?>/images/aternus.png" alt="" title="" width="" height="" />
備考
画像のパス取得等に使用。
カスタム投稿タイプデータ:記事に紐付くカスタムタクソノミーのターム一覧
コード
<?php
$terms = get_the_terms( $post->ID, 'taxonomy_name' );
if ( $terms ) :
foreach ( $terms as $term ) :
?>
<p class="cat-<?php echo $term->slug; ?>"><?php echo $term->name; ?></p>
<?php
endforeach;
endif;
?>
備考
タームが無い時の保険付。
あああ
備考
#終わりに
WordPressがブログソフトウェアだってこと、忘れ去られている気がする。