What's wp ?

What's wp ?

eycatch

投稿

アイキャッチ画像

ボー
ボー
投稿編集画面でアイキャッチ画像を設定するところが表示されないですにゃ。
ワープ
ワープ
アイキャッチ画像はオプションなのでテーマのfunctions.phpかプラグインで指定が必要にゃ。

アイキャッチ画像を使えるようにする

add_theme_support( 'post-thumbnails' );
ボー
ボー
アイキャッチ画像が設定できるようになったですにゃ。
メリー
メリー
くわしくは以下を参照するでありますにゃ。

投稿一覧

ボー
ボー
投稿一覧の列に他の情報は表示できないのですにゃ?
ワープ
ワープ
フックを使ってできるにゃ。テーマのfunctions.phpかプラグインに次のコードを書けばスラッグとアイキャッチ画像を表示できるにゃ。表示オプションで不要な列は非表示にできるにゃ。

投稿一覧にスラッグとアイキャッチ画像を表示

add_filter( 'manage_posts_columns', 'my_manage_posts_columns' );
add_action( 'manage_posts_custom_column', 'my_manage_posts_custom_column', 10, 2 );
function my_manage_posts_columns( $columns )
{
	// 列の追加とタイトル
	$columns['slug'] = "スラッグ";
	$columns['thumbnail'] = "アイキャッチ画像";
	return $columns;
}
function my_manage_posts_custom_column( $column_name, $id )
{
	// 列の値表示
	switch ( $column_name ) {
	case 'slug':
		$post = get_post( $post_id );
		echo $post->post_name;
		break;
	case 'thumbnail':
		if ( has_post_thumbnail() ) {
			the_post_thumbnail( 'thumbnail' );
		}
		break;
	}
}

テンプレートタグ

ボー
ボー
テンプレートで投稿の情報はどうやって表示するですにゃ?
ワープ
ワープ
ループの中で取得関数で取得した値を表示するかテンプレートタグを使えば出力できるにゃ。

タイトル

タイトル

<?php
if ( have_posts() ): while ( have_posts() ): the_post();
echo get_the_title();
// あるいは
the_title();
endwhile; endif;
?>
ワープ
ワープ
get_the_title()はタイトルを取得する関数なので表示するにはecho等が必要にゃ。the_title()はタイトルを表示するテンプレートタグなのでecho等は不要にゃ。どちらもthe_titleフィルターフックが適用されるにゃ。
メリー
メリー

本文

本文

<?php
if ( have_posts() ): while ( have_posts() ): the_post();
echo get_the_content();
// あるいは
the_content();
endwhile; endif;
?>
ワープ
ワープ
get_the_content()は本文を取得する関数なので表示するにはecho等が必要にゃ。the_content()は表示用テンプレートタグなのでecho等は不要にゃ。get_the_content()はthe_contentフィルターフックが適用されないけど、the_content()はthe_contentフィルターフックが適用されるにゃ。

抜粋

抜粋

<?php
if ( have_posts() ): while ( have_posts() ): the_post();
echo get_the_excerpt();
// あるいは
the_excerpt();
endwhile; endif;
?>
ワープ
ワープ
抜粋の入力があればそれを、なければ本文の先頭の方を表示するにゃ。抜粋があるかどうかはhas_excerpt()関数で調べることができるにゃ。get_the_excerpt()は抜粋を取得するテンプレートタグなので表示するにはecho等で出力が必要にゃ。the_excerpt()は表示用テンプレートタグなのでecho等は不要にゃ。どちらもget_the_excerptフィルターフックが適用されるけど、the_excerptフィルターフックはthe_excerpt()にしか適用されないにゃ。

パーマリンク

パーマリンク

<?php if ( have_posts() ): while ( have_posts() ): the_post(); ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<a href="<?php echo get_the_permalink(); ?>"><?php the_title(); ?></a>
<?php endwhile; endif; ?>
ワープ
ワープ
the_permalink()もget_the_permalink()もthe_permalinkフィルターフックが適用されるにゃ。
メリー
メリー
くわしくは以下を参照するでありますにゃ。

投稿ID

ID

<?php
if ( have_posts() ): while ( have_posts() ): the_post();
$id = get_the_ID(); // 取得
the_ID(); // 表示
endwhile; endif;
?>
ワープ
ワープ
get_the_ID()はIDを取得する関数にゃ。IDを引数にする関数等に使えるにゃ。the_ID()は表示用テンプレートタグにゃ。
メリー
メリー

投稿class

class

<?php if ( have_posts() ): while ( have_posts() ): the_post(); ?>
<div id="post-<?php the_ID(); ?>" <?php echo 'class="' . join( ' ', get_post_class( $class, $post_id ) ) . '"' ?>>...</div>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>...</div>
<?php endwhile; endif; ?>
ワープ
ワープ
get_post_class()は投稿classを取得する関数にゃ。post_class()は投稿class表示用テンプレートタグにゃ。
メリー
メリー
くわしくは以下を参照するでありますにゃ。

日時

日時

<?php if ( have_posts() ): while ( have_posts() ): the_post(); ?>
<h2>公開日時</h2>
<?php the_date(); the_time() ?>
<?php echo get_the_date() . get_the_time(); ?>
<?php echo get_the_date("Y年n月j日G:i"); ?>
<h3>更新日時</h2>
<?php the_modified_date(); the_modified_time(); ?>
<?php echo get_the_modified_date() . get_the_modified_time(); ?>
<?php endwhile; endif; ?>
ワープ
ワープ
公開、更新前に一般設定のタイムゾーンを東京等に指定してにゃ。引数なしなら一般設定の日付のフォーマット、時刻フォーマットで出力されるにゃ。引数にフォーマットを指定すれば指定したフォーマットで日時が表示されるにゃ。the_date()だけは注意が必要で同じ日付が続いた場合は2度目以降は表示されないにゃ。同じ日付の2度目以降も表示する場合はecho get_the_date()を使うといいにゃ。

カテゴリー・タグ

ワープ
ワープ
カテゴリーやタグは無いときと複数の考慮が必要だにゃ。

style.css

.taxsonomy {
	background:#eccdc1;
	border:none;
	color: #666;
	padding: 1px 10px;
	margin:1px;
	border-radius: 10px;
	font-size:12px;
	text-decoration: none;
}
.taxsonomy:hover
{
	background: #eaa381;
	color: #fff;
}
.category {
	background: #f3e0be;
}
.category:hover {
	background: #eaa381;
}
.tag {
	background: #ceecc1;
}
.tag:hover {
	background: #85de5e;
}
<?php 
if ( have_posts() ): while ( have_posts() ): the_post();
$categories = get_the_category();
if ( $categories )
{
	foreach ( $categories as $cat )
	{
		echo '<a class="taxsonomy category" href="' . get_category_link($cat->cat_ID) . '">' . $cat->name . "</a>";
	}
}
$tags = get_the_tags();
if ( $tags ) {
	foreach ( $tags as $tag )
	{
		echo '<a class="taxsonomy tag" href="' . get_tag_link($tag->tag_ID) . '">' . $tag->name . "</a>";
	}
}
endwhile; endif; ?>

関連ファイル

メリー
メリー
くわしくは以下を参照するでありますにゃ。 テンプレートタグファイルは wp-includes ディレクトリに格納されているでありますにゃ。他の WordPress ファイルと区別するため、"-template.php" 接尾辞がつけられているでありますにゃ。

コメントはこちらから