2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WordPressの管理画面を簡単にカスタマイズしてみる

Posted at
  • 世界で最も利用されているCMS
  • 管理画面をカスタマイズできる

というような特徴をもつWordPress。
我が社で行われた勉強会での内容をメモした内容になります。

ただしWordPressのインストール等は完了済みであることを前提とします。

ファイル構成

/wp-admin
/wp-content
	/themes
	/plugins
	/uploads
/wp-include

基本的にwp-content以外は触らないようにすること。

プラグインをインストールする

  • Advanced Custom Fields
  • Custom Post Type UI

プラグイン > 新規追加 で上記2つのプラグインをインストール。

「カスタム投稿タイプ」と「カスタムフィールド」

デフォルトで用意されているページは次の2つ。

  • 投稿
  • 固定ページ

コレ以外に「お知らせページを追加したいなー」とか「項目を増やしたいなー」というときに次の2つを追加する。

カスタム投稿タイプ

「お知らせ」や「イベント」など、好きなページを追加できる。

カスタムフィールド

投稿にタイトル、本文以外に好きな項目を追加できる。

カスタム投稿タイプ/カスタムフィールドを管理画面に追加する

管理画面左側のメニューからそれぞれ行う。

カスタム投稿タイプ

「CPT UI」の「Add/Edit Post Types」を選ぶ。
「Basic setting」の3つのフォームに新しく追加したいページを 英語名 で入力。
「Add Post Type」するとメニューバーに「info」が出現。

管理画面での表示を「お知らせ」のように日本語表示する場合は、「Add/Edit Post Types」の「Edit Post Types」タブから「Additional labels」に日本語訳を追加する。

カスタムフィールド

「カスタムフィールド」を選ぶ。
「フィールド名」は必ず英語にすること。

注意点

この時点では 管理画面にのみ カスタム投稿タイプ/カスタムフィールド が追加された だけです。

カスタム投稿タイプ/カスタムフィールドをweb上でも表示する

外観 > テーマの編集 と進むと、画面右側に各ページを構成するファイルが一覧表示されている。
これらのファイルのコードを追加・修正することでテーマのカスタマイズができるようになる。
ローカルファイルをテキストエディタなどで更新して変更してもOK。

// 「お知らせ(info)」ページの内容をサイドバーに表示する場合
<?php if ( is_active_sidebar( 'sidebar-1' )  ) : ?>
	<aside id="secondary" class="sidebar widget-area" role="complementary">
	
		// post_type:表示させたいページのフィールド名
		// posts_per_page:ページに表示させたい数
		<?php $args = array( 'post_type' => 'info', 'posts_per_page' => '2'); ?>
		<?php $the_query = new WP_Query( $args ); ?>
		<?php if($the_query->have_posts()) : ?>
			<ul>
			<?php while($the_query->have_posts()): $the_query->the_post(); ?>
				<li>
					<span><?php the_field('date_on'); ?></span>
					<span><?php the_field('info_detail'); ?></span>
					<?php the_title(); // ここで投稿データ取得 ?>
				</li>
			<?php endwhile; ?>
			</ul>
			<?php wp_reset_postdata(); ?>
		<?php else: ?>
		<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
		<?php endif; ?>

		<?php dynamic_sidebar( 'sidebar-1' ); ?>
	</aside><!-- .sidebar .widget-area -->
<?php endif; ?>

phpの制御構文

phpではif文で ; じゃなく : を使ったりするらしい。
詳しくはこちら

WordPress公式リファレンス

WordPressで使える関数はこちらを御覧ください。

the_field()とget_field()の違い

「the_field()」は 表示まで全て を行ってくれる。
「get_field()」は 値の取得だけ をしてくれる。

プログラミングが少しデキる人であれば「get_field()」は変数なんかに使うと便利。
ややこしいことは必要ない、というのであれば「the_field()」でOK。

テンプレート自体新しいものを用意して表示したいとき

テンプレートのファイルを管理画面から追加することはできないので、ローカルのフォルダ内に追加する。
そのときの名前は single-{post_type}.php とする。
例えば「single-info.php」のようにすると、自動的に infoの画面はテンプレートをsingle-info.php にするようになるらしい。

引っ越しするとき

内容をコピペで引っ越すことはできるが、カスタマイズは引き継げないので注意。

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?