[wordpress]カスタム投稿の導入と表示とcsvインポートと。

何年WP触ってんだよって、今更初めてやった。

使用プラグイン

Custom Post Type UIカスタム投稿追加したりタクソノミーつけたりする
Really Simple CSV Importer記事を一括登録する
Advanced Custom Fieldsカスタム投稿もカスタムフィールド使える
とりあえずインストールしとく。

Custom Post Type UI

カスタム投稿の枠と、それに使うコンテンツ(タイトルとか本文とかアイキャッチとか)、それ用のタグ的なもの(タクソノミー)を追加する。
めっちゃ項目あるけど大半は管理画面の表示テキストについてなので気負うこともない。
使うだろうからカテゴリは「True」に、あと
「設定」のところで「UI を表示」だか「メニューに表示」だかを「True」にしないとメニューに出ないのでそこだけ注意。

タクソノミーはここで枠を作って、その詳細は投稿のところのカテゴリとかタグよろしく個別に入力していく感じ。
親子も対応してる。

登録とかのハウツーは検索すれば詳しいのが出てくるので割愛。

作ったら何個かテスト記事を上げておく。

Advanced Custom Fields

カスタム投稿に限らずだけど、入力フォーマットを整えたい時ってあると思うの。
地図とか住所とか個人プロフィールのあれこれとか。
アイキャッチでなく画像登録したいとか。
だので、作る。

Really Simple CSV Importer

先に上げる内容が決まってる場合、一個ずつ入力するのは手間なので。
まあものにより、データベース化せずにHTMLでそのまま作ればいいんじゃねってなたりするけど。
FAQとか悩ましいところですね。
Excelで作って[CSV UTF-8(コンマ区切り)]で保存する。
項目含め、必要項目のみ記入する。

例えば:投稿タイプスラッグ「chinko」タクソノミー「manko」のやつにインポートする場合

post_statuspost_titlepost_contentpost_namepost_typepost_authortax_manko
publishタイトルタイトルタイトルタイトル本文本文本文本文本文本文本文本文本文本文本文本文本文スラッグ名chinkoAuthoraaaaa,bbbbb,ccc,dddd

こんな感じ。
本文はセルにぶっ込んでしまえば改行とかタグとかに対応してる。
タクソノミーを複数指定する場合はコンマで区切る。
ここで新規作成できちゃうので、打ち間違ったらそのまま登録されちゃう。
ちゃんと統一できるか不安ならアップ後に一括でやると安心。

他にも項目あって、自分で作ったカスタムフォームも入れられる。
それらについて詳細は以下を参照。
Really Simple CSV Importer ? WordPress Plugins
カスタム投稿タイプに記事を一括登録する備忘録 – 503DESIGN

で、作ったら、
ツール>インポートの中に「csv」があるのでそっから入れる。
失敗した場合エラーを吐くだけなので、変なアップはされない。

表示方法

ふつーに投稿を表示させるのに似てる。
こんなかんじ。

<ul>
<?php 
$args = array(
    'numberposts' => 4, //表示(取得)する記事の数
    'post_type' => 'chinko' //投稿タイプの指定
);
$posts = get_posts( $args );
if( $posts ) : foreach( $posts as $post ) : setup_postdata( $post );
?>
    <li>
        <div class="thumb"><img src="<?php the_field('写真'); ?>" /></div>
        <p class="ttl"><?php the_title(); ?></p>
        <p class="comment"><?php the_field('フィールド名'); ?></p>
        <a href="<?php the_permalink(); ?>"></a>
    </li>
<?php endforeach; ?>
<?php else : //記事が無い場合 ?>
    <li>記事はまだありません。</li>
<?php endif; ?>
</ul>
<?php wp_reset_postdata(); //クエリのリセット ?>

タクソノミーで絞りたければこんな感じ

<?php
    $args=array(
        'tax_query' -> array(
            array(
                'taxonomy' => 'faq_tax', //タクソノミーを指定
                'field' => 'slug', //ターム名をスラッグで指定する
                'terms' => array( 'faq_tax1,faq_tax2,faq3_tax' ) //表示したいタームをスラッグで指定
            ),
        ),
        'post_type' => 'faq', //カスタム投稿名
        'posts_per_page'=> -1 //表示件数(-1で全ての記事を表示)
   	);
?>
<?php query_posts( $args ); ?>
<dl>
<?php if(have_posts()): ?>
   	<?php while(have_posts()):the_post(); ?>
   	   	<dt><?php the_title();?></dt>
   	   	<dd><?php the_content(); ?></dd>
   	<?php endwhile; ?>
<?php else: ?>
<?php endif; ?>
<dl>

まとめとか振り返りとか

カスタム投稿はfunction.phpいじればそれでも追加できるんだけど、
ここいらは結局プラグインが絡んでくるので、
だったら全部プラグインで済ませたほうがいいなってなった。
手間もないし。
プラグインなくなったら終わるけど。

コメント

タイトルとURLをコピーしました