投稿・ページ情報を取得
| 目的 | 関数 | 概要 |
|---|
| 投稿タイトルを取得 | | 投稿のタイトル文字列を取得します。 |
| 投稿本文を取得 | | 投稿本文を取得(フィルタ適用なし)。 |
| 抜粋を取得 | | 投稿の抜粋(概要)を取得。 |
| 投稿URLを取得 | | 投稿のパーマリンクURLを取得。 |
| 投稿IDを取得 | | ループ内で現在の投稿IDを取得。 |
| 投稿タイプを取得 | | 投稿の投稿タイプ(post, page など)を取得。 |
| 投稿日付を取得 | | 投稿の公開日を取得。 |
| 投稿者名を取得 | | 投稿者の表示名を取得。 |
投稿データの出力(テンプレートタグ)
| 目的 | 関数 | 概要 |
|---|
| タイトルを出力 | | 投稿タイトルを直接出力。 |
| 本文を出力 | | 投稿本文を直接出力(フィルタ適用)。 |
| 抜粋を出力 | | 抜粋を直接出力。 |
| パーマリンクを出力 | | 投稿URLを直接出力。 |
| 投稿日付を出力 | | 投稿の公開日を出力。 |
| 投稿者名を出力 | | 投稿者の表示名を出力。 |
カスタムフィールド(メタデータ)
| 目的 | 関数 | 概要 |
|---|
| メタデータ取得 | get_post_meta( $post_id, $key, $single )
| 指定キーのカスタムフィールドを取得。 |
| メタデータ更新 | update_post_meta( $post_id, $key, $value )
| カスタムフィールドを更新。 |
| メタデータ追加 | add_post_meta( $post_id, $key, $value )
| カスタムフィールドを追加。 |
| メタデータ削除 | delete_post_meta( $post_id, $key )
| カスタムフィールドを削除。 |
// 使用例
$custom_value = get_post_meta(get_the_ID(), 'custom_field_name', true);
update_post_meta(123, 'price', '1000');
カテゴリー・タグ関連
| 目的 | 関数 | 概要 |
|---|
| カテゴリー取得 | | 投稿のカテゴリー情報を取得(配列)。 |
| タグ取得 | | 投稿のタグ情報を取得(配列)。 |
| カテゴリーリンク取得 | get_category_link( $cat_id )
| カテゴリーのURLを取得。 |
| タグリンク取得 | get_tag_link( $tag_id )
| タグのURLを取得。 |
| カテゴリー名取得 | get_cat_name( $cat_id )
| カテゴリーIDから名前を取得。 |
| タクソノミー項目取得 | get_the_terms( $post_id, $taxonomy )
| カスタムタクソノミーの項目を取得。 |
メディア関連
| 目的 | 関数 | 概要 |
|---|
| アイキャッチURL取得 | get_the_post_thumbnail_url( $post_id, $size )
| アイキャッチ画像のURLを取得。 |
| アイキャッチ出力 | the_post_thumbnail( $size )
| アイキャッチ画像を出力。 |
| 添付ファイルURL取得 | wp_get_attachment_url( $attachment_id )
| 添付ファイルのURLを取得。 |
| 添付画像取得 | wp_get_attachment_image( $attachment_id, $size )
| 添付画像のHTMLを取得。 |
| 画像サイズ追加 | add_image_size( $name, $width, $height, $crop )
| カスタム画像サイズを追加。 |
// 使用例
if (has_post_thumbnail()) {
echo get_the_post_thumbnail_url(get_the_ID(), 'large');
}
ユーザー関連
| 目的 | 関数 | 概要 |
|---|
| 現在のユーザー取得 | wp_get_current_user()
| 現在ログイン中のユーザー情報を取得。 |
| ユーザーデータ取得 | get_userdata( $user_id )
| ユーザーIDから情報を取得。 |
| ユーザーメタ取得 | get_user_meta( $user_id, $key, $single )
| ユーザーメタを取得。 |
| ユーザーID取得 | get_current_user_id()
| 現在のユーザーIDを取得。 |
| ログイン状態確認 | | ユーザーがログイン中か判定。 |
| 権限確認 | current_user_can( $capability )
| 現在のユーザーが指定した権限を持つか確認。 |
URL・サイト情報
| 目的 | 関数 | 概要 |
|---|
| サイトURL取得 | | サイトURL(WordPressインストール先)を取得。 |
| ホームURL取得 | | ホームページURLを取得。 |
| テンプレートURL取得 | get_template_directory_uri()
| 親テーマのディレクトリURLを取得。 |
| 子テーマURL取得 | get_stylesheet_directory_uri()
| 子テーマのディレクトリURLを取得。 |
| サイト名取得 | get_bloginfo( 'name' )
| サイトのタイトルを取得。 |
| サイト説明取得 | get_bloginfo( 'description' )
| サイトのキャッチフレーズを取得。 |
条件分岐タグ
| 目的 | 関数 | 概要 |
|---|
| フロントページ判定 | | フロントページかどうか判定。 |
| ホームページ判定 | | ブログのホームページかどうか判定。 |
| 固定ページ判定 | | 固定ページかどうか判定。 |
| 投稿ページ判定 | | 個別投稿ページかどうか判定。 |
| アーカイブページ判定 | | アーカイブページかどうか判定。 |
| カテゴリーページ判定 | | カテゴリーアーカイブページかどうか判定。 |
| 検索結果ページ判定 | | 検索結果ページかどうか判定。 |
| 404ページ判定 | | 404エラーページかどうか判定。 |
// 使用例
if (is_front_page()) {
// フロントページの処理
} elseif (is_single()) {
// 個別投稿の処理
}
ナビゲーション
| 目的 | 関数 | 概要 |
|---|
| メニュー出力 | | 管理画面で設定したメニューを出力。 |
| メニュー位置登録 | register_nav_menus( $locations )
| メニュー位置を登録。 |
| パンくずリスト用 | get_ancestors( $object_id, $object_type )
| 親階層を取得(パンくずリスト作成用)。 |
// 使用例
wp_nav_menu(array(
'theme_location' => 'primary',
'menu_class' => 'main-menu',
'container' => 'nav'
));
データベース関連
| 目的 | 関数 | 概要 |
|---|
| 投稿一覧取得 | | 条件に合った投稿一覧を取得。 |
| カスタムクエリ | new WP_Query( $args )
| 複雑な条件で投稿を取得。 |
| オプション取得 | get_option( $option )
| WordPressのオプション値を取得。 |
| オプション更新 | update_option( $option, $value )
| オプション値を更新。 |
セキュリティ関連
| 目的 | 関数 | 概要 |
|---|
| HTMLエスケープ | | HTMLの特殊文字をエスケープ。 |
| 属性エスケープ | | HTML属性値をエスケープ。 |
| URLエスケープ | | URLをエスケープ。 |
| テキストサニタイズ | sanitize_text_field( $str )
| テキストフィールドをサニタイズ。 |
| nonce生成 | wp_nonce_field( $action )
| フォーム用のnonceフィールドを生成。 |
| nonce検証 | wp_verify_nonce( $nonce, $action )
| nonceの妥当性を検証。 |
// 使用例
$safe_text = esc_html($user_input);
$safe_url = esc_url($url);
フック関連
| 目的 | 関数 | 概要 |
|---|
| アクション追加 | add_action( $hook, $callback )
| 指定したタイミングで関数を実行。 |
| フィルター追加 | add_filter( $hook, $callback )
| データを変更するフィルターを追加。 |
| アクション削除 | remove_action( $hook, $callback )
| 登録されたアクションを削除。 |
| フィルター削除 | remove_filter( $hook, $callback )
| 登録されたフィルターを削除。 |
その他便利な関数
| 目的 | 関数 | 概要 |
|---|
| WordPressバージョン取得 | get_bloginfo( 'version' )
| 現在のWordPressバージョンを取得。 |
| 翻訳文字列取得 | | 翻訳可能な文字列を取得。 |
| 翻訳文字列出力 | | 翻訳可能な文字列を出力。 |
| リダイレクト | wp_redirect( $location )
| 指定したURLにリダイレクト。 |
| 現在時刻取得 | current_time( $type )
| WordPressの設定に基づく現在時刻を取得。 |
| テンプレート読み込み | get_template_part( $slug, $name )
| テンプレートファイルを読み込み。 |
実際の使用例
基本的な投稿ループ
if (have_posts()) {
while (have_posts()) {
the_post();
echo '<h2>' . get_the_title() . '</h2>';
echo '<p>' . get_the_excerpt() . '</p>';
echo '<a href="' . get_permalink() . '">続きを読む</a>';
}
}
カスタムフィールドの取得
$price = get_post_meta(get_the_ID(), 'price', true);
if ($price) {
echo '価格: ' . esc_html($price) . '円';
}
条件分岐の活用
if (is_single()) {
// 個別投稿ページの処理
the_content();
} elseif (is_archive()) {
// アーカイブページの処理
the_excerpt();
}