らいちのヒミツ基地

公然のひみつ基地です

MENU

WordPressのカスタム投稿タイプのカスタマイズメモ

WordPressの「カスタム投稿タイプ」のカスタマイズで調べたこととハマりかけたとこの自分用メモです。

f:id:AzuLitchi:20200527183622j:plain

カスタム投稿タイプとは

通常の投稿とは形式が違うテンプレートのページを作りたい場合に、投稿タイプをカスタマイズできる機能です。
カスタム投稿タイプを作るには

  • テーマ(function.php)を編集する方法
  • プラグイン(CPT UI)を利用する方法

の二通りあります。

function.phpを編集する方法

ダッシュボード>外観>テーマエディター
から
テーマのための関数 (functions.php)
を選択します。

ここに以下のように記載します。

// カスタム投稿タイプの追加
add_action( ‘init’, ‘create_post_type’ );
function create_post_type() {
register_post_type( ‘Portfolio’, // 投稿タイプ名の定義
array(
‘labels’ => array(
‘name’ => __( ‘ポートフォリオ’ ), // 表示する投稿タイプ名
‘singular_name’ => __( ‘ポートフォリオ’ )
)
,‘public’ => true,‘menu_position’ =>5,
)
);
}

(CPT UIを使えばここに自動記入されるというわけでもありません。)

この、WordPressでfunctions.phpを編集する機能が首尾良く動作した経験があまりなく…FTP使った方が良いです。
私はDreamweaverでFTPと編集両方やってます。

テーマは編集する前に、サイトのバックアップを作成しておくことをオススメします。

プラグイン(CPT UI)を利用する方法

こっちを使う方が断然ラクです。

ここからCustom Post Type UIをダウンロードして、プラグインインストールします。
Custom Post Type UI – WordPress plugin | WordPress.org

ダッシュボード>CPT UI>投稿タイプの追加と編集
ダッシュボード>CPT UI>タクソノミーの追加と編集

から投稿タイプやタクソノミーの追加や編集が行えます。

追加や編集はそれぞれの画面の表記に従って入力すれば良いです。
必須項目以外は、良くわからなければデフォルトのままで構いません。

カスタムタクソノミーとは

タクソノミーとは、カスタム投稿タイプにとってのタグに近い存在です。

  • カスタム投稿タイプ「ポートフォリオ」
    • タクソノミー「水彩」
    • タクソノミー「鉛筆画」
    • タクソノミー「デジタルイラスト」

などのようにして使います。

固定ページにテンプレートを適用する方法

固定ページを表示する際、WordPressは「page-スラッグ名.php」→「page-ID.php」→「page.php」の順番で読みにいきます。
つまりWordPressでは、「page-スラッグ名.php」を設置しておけば各固定ページごとにデザインを変更できます。

スラッグは固定ページ編集画面の「表示オプション」から「スラッグ」にチェックを入れると設定できます。

固定ページテンプレートのテンプレート例はこんな感じ。

<?php
/*
Template Name: 固定ページのテンプレート
*/
?>
<h1>固定ページのテンプレート</h1>
<?php
if(have_posts()): while(have_posts()): the_post();?>
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
<?php endwhile;?>
<?php else : ?>
  <div class="error">
    <p>お探しの記事は見つかりませんでした。</p>
  </div>
<?php endif; ?>
解説

if(have_posts())→クエリした結果記事を取得できたかどうかを判定
while ( have_posts() )→投稿が存在する限り繰り返し
the_post()→記事をグローバル変数$postにセットし、次の記事へと進める処理を行う関数
→記事のタイトルを出力
→記事の本文を出力
→クエリした結果、記事が存在しなかった時の処理

the_postやthe_title・the_contentなど、theが頭についている関数はループ内でしか正しく機能しません。

このwhileループは「WordPressループ」と呼ばれます。

個別ページでこの処理を実行すると、該当記事を表示します。

実際にはテーマ毎に色々処理が入る(SNSオプション等々)ので、「page.php」の冒頭に下記五行を追記したものを固定ページテンプレートのテンプレートにすると良いでしょう。

<?php
/*
Template Name: 固定ページのテンプレート
*/
?>
<h1>固定ページのテンプレート</h1>
<?php

固定ページの親子関係は「固定ページを編集」の画面で、ページ属性のところで編集できます。

カスタムメニュー

固定ページや、カテゴリ一覧など、オリジナルのメニューを編集・表示できる仕組みにカスタムメニューというのがあります。
メニューの順序や階層も自由にカスタマイズできます。

カスタム投稿タイプまとめ

カスタム投稿タイプを上手に利用すると、ダッシュボードでの投稿フォームが使いやすくなります。
また。カスタムメニューの機能でプルダウンメニューやサイドバーやフッターなど、好きな位置に一覧を表示させることも可能です。



ブログだけ書くならはてなブログみたいなとこ使う方がよほど楽だぞ!


それではまた・・・さよならいち!・∀・)ノ