WordPressで「通常のブログ投稿」とは別に、日々のトレーニングや勉強記録など、記事にするほどではないけれど記録したいことを“ミニブログ形式”で投稿したいときのために、カスタム投稿タイプで「log」を作った。そのときの手順メモ。
やりたかったこと
- 通常の投稿とは分けたい(通常のブログ投稿のページには表示させない)
- URLは
/log/カテゴリ名/投稿名
にしたい - サイドバーとかで「やったこと」だけリスト形式で出したい
カスタム投稿タイプ log
を追加(functions.php に実際に入れたコード)
これは、通常の投稿(post)とは別に「log」という独立した投稿タイプを作るためのコード。"ミニブログ"的な記録用に使いたかったので追加。投稿画面にエディタ・抜粋・カスタムフィールドなども使えるようにしてる。URLの構造もカスタマイズして /log/カテゴリ名/投稿名
にできるようにしてる。
// カスタム投稿タイプ:log
function create_custom_post_type_log() {
register_post_type('log', [
'labels' => [
'name' => 'Log',
'singular_name' => 'Log',
],
'public' => true,
'has_archive' => true,
'rewrite' => [
'slug' => 'log/%log_category%',
'with_front' => false,
],
'show_in_rest' => true,
'supports' => ['title', 'editor', 'author', 'thumbnail', 'excerpt', 'custom-fields'],
'taxonomies' => ['log_category'],
]);
}
add_action('init', 'create_custom_post_type_log');
functions.phpにコードを追加すると、管理画面の左メニューに「Log」という投稿タイプが追加される。

カテゴリー用のタクソノミー追加(log_category)
log投稿専用のカテゴリ機能を作るためのコード。通常の投稿に使われる「カテゴリー」とは別物で、log
投稿だけに使える独自の分類(例:training, study など)を作りたかったので追加。
// カスタムタクソノミー:log_category
function create_custom_taxonomy_log_category() {
register_taxonomy('log_category', 'log', [
'label' => 'Logカテゴリー',
'hierarchical' => true,
'rewrite' => ['slug' => 'log-category'],
'show_in_rest' => true,
]);
}
add_action('init', 'create_custom_taxonomy_log_category');
カテゴリ名をURLに反映させるためのフィルター
/log/%log_category%/投稿名
というURL構造を実現するために必要なフィルター。カスタム投稿のURL中の %log_category%
を、実際に設定したカテゴリースラッグに置き換える処理。カテゴリが未設定のときは uncategorized
に置き換えるようにしている。
// log投稿のURLにカテゴリスラッグを反映させる
function add_log_category_to_permalink($post_link, $post) {
if ($post->post_type === 'log') {
$terms = get_the_terms($post->ID, 'log_category');
if (!empty($terms) && !is_wp_error($terms)) {
return str_replace('%log_category%', $terms[0]->slug, $post_link);
} else {
return str_replace('%log_category%', 'uncategorized', $post_link);
}
}
return $post_link;
}
add_filter('post_type_link', 'add_log_category_to_permalink', 10, 2);
パーマリンク再保存
設定 → パーマリンク → 変更を保存(これ忘れると反映されない)
投稿URLイメージ
log投稿の場合(ミニブログ形式)
/log/training/20250707-rpm45min
/log/study/20250708-civil-law
通常の投稿(post)の場合(ブログ記事など)
/blog/カテゴリ名/投稿名
例:/blog/wordpress/customize-category-list-sidebar
抜粋欄に「やったことだけ」書くと便利
抜粋欄に箇条書きでメモ書いとくと、サイドバーとかで見やすくなる
【例】
・RPM 45分
・クラムシェル
・ヒップブリッジ
投稿タイプlog
でタグを使えるようにする方法
WordPressのカスタム投稿タイプ「log」では、初期設定だとタグが使えない(投稿画面に入力欄が出ない)。
でもあとで検索しやすくしたいので、タグを入れられるようにした。
調べた方法は2つ:
方法①:プラグインを使う
「Post Tags and Categories for Pages」みたいなやつを入れると、
カスタム投稿にもタグやカテゴリが使えるようになる。
ただ、全部の投稿タイプに反映されるっぽいので、ちょっとオーバースペックかも。
方法②:functions.phpに1行足す(こっちにした)
子テーマを使ってるので、functions.phpにこれを書いた。
// 投稿タイプ「log」でタグを使えるようにする
function add_tag_support_to_log() {
// 「post_tag」=タグ機能を、「log」投稿タイプに追加
register_taxonomy_for_object_type('post_tag', 'log');
}
// 初期化時(init)に上の関数を実行
add_action('init', 'add_tag_support_to_log');
これで無事、log
投稿でもタグ入力ができるようになった。

管理画面のリストにも「タグ」が表示された
