LoginSignup
1
0

More than 3 years have passed since last update.

wordpress 構築のちょっとした話

Last updated at Posted at 2019-11-26

案件で、初めてwordpressの構築を任せていただきました。勉強になることばかりで楽しんでいます。
自分の整理がてら、学んだことをまとめてみます。

関数化

例えば、カスタム投稿でACFのデータを取得する際は、なるべく細かく関数化して分けておく。そして、作った関数たちを組み合わせる。
関数化しておくと、再利用ができるし、同じフィールドの値に関して統一性ができてスッキリするので、便利とのこと。
(アーカイブページと記事詳細ページなど複数回そのデータを使うような場合。一度きりしか使わないのであれば、コードが増えるのでいらない)

例えば、カスタム投稿ページにて投稿記事一つを出力する場合。
記事のタイトルの他にテキスト1テキスト2の値があったとする。

custom-post.php
<?php
// テキスト1を取得する
function get_post_text1 ()
{
 if ($text1 = get_field('text_field1')) {
  return '<p>' . $text1 . '</p>'; 
 }
}

// テキスト2を取得する
function get_post_text2 ()
{
 if ($text2 = get_field('text_field2')) {
  return '<p>' . $text2 . '</p>';
 }
}

function get_new_post ()
{
 echo '<p>このページでは記事を紹介します。</p>'

 the_title(); // タイトルの出力 
 echo get_post_text1(); // text_field1の値を出力
 echo get_post_text2(); // text_field2の値を出力
}

引数

また、the_title();は引数に、値の前後に出力したい値を指定することでマークアップごとに出力できる。

<?php
echo the_title('タイトルの前に表示したいテキスト', 'タイトルの後に表示したいテキスト', 'boolean:出力するかどうか');

これを利用することで、同じ値でもマークアップを変更して出力することができる。
例えば、アーカイブページと記事詳細ページで、同じ値だけどクラス名が異なっているときに使用する。

function get_post_text1 ($before_html, $after_html) {
 if ($text1 = get_field('text_field1')) {
  return $before_html . $text1 . $after_html;
 }
}

// archive.php
echo get_post_text1('<p class="archive__description>"', '</p>');
// single.php
echo get_post_text1('<p class="single__description -strong>"', '</p>');

あとは、引数にget_the_ID();を指定することで、関数内とか、ループ内でも自由にデータとってくることができるのかな〜。
この辺りが、まだわかっていないのでまた理解したらまとめよ。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0