WordPressCategories:プログラミングテンプレートファイルWordPressはヘッダーやフッター、サイドバー等々、部品別にphpファイルを読み込みを行うことが出来ます。固定されたレイアウトの場合、各ページで流用することが出来ます。各テンプレートでどのようなファイルが必要かを見ていきます。index.php必ず必要なファイルです。WordPressは、最終的にこのファイルを呼び出します。最悪このファイルにコードを書けばHPを作成できます。single.php個別記事を表示させるファイルです。記事の続きを見るとかで、個別記事を見る場合にこのテンプレートファイルが呼び出されます。page.php固定ページを記載します。header.phpヘッダーを記載します。footer.phpフッターを記載します。sidebar.phpサイドバーを記載します。searchform.php検索フォームを記載します。comments.phpコメントを記載します。テンプレートインクルードタグWordPressにはテンプレートファイルを呼び出すメソッドが用意されています。そのメソッドをインクルードタグと呼びます。数はそこまで多くないので、覚えちゃいましょう。get_header()header.phpを読み込みます。get_footer()footer.phpを読み込みます。get_sidebar()sidebar.phpを読み込みます。get_template_part()任意のテンプレートファイルを読み込みます。sample.phpというテンプレートファイルを作成した場合、get_template_part('sample')と記載します。sampleがスラッグ名となり、それに付随した個別パーツを使用する場合は、第二引数に名前を指定します。いうテンプレートファイルを作成した場合、sampleというスラッグにtableという個別パーツが指定できます。'table')ちなみに、ヘッダー・フッター・サイドバーは読み込みません。ONZEget_search_form()searchform.phpを読み込みます。functions.phpオリジナルテーマを作成するにあたり、避けては通れないファイルです。パンくずを作成したり、カスタム投稿タイプを作成したり、オリジナル関数を作成したり...まだまだたくさんの事が出来ますが、WordPressをいじるのであれば必ず触ります。グローバル変数WP固有のグローバル変数です。個人的にはグローバル変数は極力使用しないほうがいいと思ってます。誤って書き換えてしまう可能性があるので、WPで用意されている関数で取得した方が誤りが起こりにくいと思います。$filter]])get_queried_object()現在の表示ページのオブジェクトを取得します。単一投稿ページを表示中なら、投稿オブジェクト。定ページを表示中なら、固定ページのオブジェクト。カテゴリーアーカイブを表示中なら、カテゴリーオブジェクト。投稿者アーカイブを表示中なら、投稿者オブジェクト。get_ancestors()comments_template()comments.phpを読み込みます。いずれかがTrueであれば、Trueを返す。添付が表示されていればTrueを返す。ダッシュボードまたは管理パネルが表示されていればTrueを返す。固定ページの投稿ページが指定されているページに適用します。固定ページのフロントページが指定されているページに適用します。ファイルを読み込みます。読み込むファイルはcomment-reply.jsです。これは、コメントを返信する際、「返信」リンクをクリックしますが、クリックするとコメントフォームがすぐ下に移動してきます。このファイルが読み込まれない場合、コメントフォームが移動されません。wp_head()状況に応じて必要なコードを自動で出力するために必要な記述です。プラグインなどを使ったとき、そのスタイルシートのリンクを出力したりするのに必要な記述です。have_posts()投稿があるか真偽値を返すthe_post()the_ID()現在の記事のIDを返します。ループ中に使用します。post_class()投稿ページによってclassを自動で生成します。詳細は公式ドキュメント参照して下さい。post_classthe_title()現在の記事のタイトルを返します。ループ中に使用します。$view]]])$beforeタイトルの前に付けるテキストを指定します。$afterタイトルの後に付けるテキストを指定します。(初期値:なし)$viewタイトルを表示するかを真偽値で指定します。the_permalink()記事のパーマネントリンク(URL)を返します。ループ中に使用します。the_date()記事の投稿日時を返します。ループ中に使用します。$echo]]]])$format日時の出力形式(フォーマット)を指定します。$before投稿/更新日の直前に出力するコードやテキストを指定します。(初期値:なし)$after投稿/更新日の直後に出力するコードやテキストを指定します。(初期値:なし)$echoTrueを指定で日付をページ表示します。Falseを指定でPHPで使用できる値として日付を返します。(初期値:True)同じ日に複数の投稿があった場合は、最初の投稿だけが一度だけ出力されます。the_category()記事のカテゴリを表示します。ループ中に使用します。$post_id]]])$separator複数のカテゴリが登録されている際の区切り文字を指定します。初期値では、カテゴリ全体をulで囲い、各々をliで並べます。$parents子カテゴリ(サブカテゴリ)が登録されていた場合、親カテゴリの表示方法を指定します。初期値では、子カテゴリのみを表示させます。multiple親子カテゴリのリンクを別々に表示させます。single子カテゴリのリンクを表示させます。(見た目は親/子になります)$post_idカテゴリを取得する投稿のIDを整数値で指定します。現在の投稿についているカテゴリリストとなります。the_tags()記事のタグを表示します。ループ中に使用します。$after]]])$beforeタグ一覧の前に表示するテキストを指定します。Tags:)$separator複数のカテゴリが登録されている際の区切り文字を指定します。,)$afterタグ一覧の後に表示するテキストを指定します。なし)the_author()記事の投稿者の名前を表示します。ループ中に使用します。get_author_posts_url()投稿者のアーカイブ(投稿記事一覧)のURLを返します。$author_nicename])$author_id投稿者のidを指定します。$author_nicename投稿者のスラッグを指定します。なし)省略された場合、$author_idの著者情報を取得し、そのスラッグが適用されます。指定された場合、それがそのままURLのスラッグに適用されます。get_the_author_meta()投稿者のメタデータを取得します。)$field取得するデータのフィールド名を記載します。$userID投稿者のIDを指定します。ループ中であれば省略可能です。(現在の投稿者IDが入ります)フィールド名の有効な値については、公式を参照してください。$none]]]]])$zeroコメント数が0の時に表示するテキストを指定します。Comments)$oneコメント数が1の時に表示するテキストを指定します。Comments)$moreコメント数が2以上の時に表示するテキストを指定します。%で現在のコメント数に書き換えられます。Comments)$css_classコメントのa要素にclassを指定します。なし)$noneコメントを受け付けていない場合に表示するテキストです。Off)the_content()コンテンツ(画像含む)、続きを読むのリンクを表示ループ中に使用します。)$more_link_text以降を読むためのリンクとして表示するテキストを指定します。more...)$stripteaser以前の内容を隠すかどうかを真偽値で指定します。False(全文表示))ページャーを作るいくつかのパターンがありますので、順に説明していきます。個別記事に対してのページャーブログとかで、次回の記事とか前回の記事へのリンクを付ける方法です。index.phpを使用するのかなと思います。htmlタグは必要であれば自由に書き換えて下さい。$taxonomy]]])現在の投稿に隣接している前の投稿を取得します。取得出来た場合、WP_Postオブジェクトが返ります。投稿が存在しない場合、空文字列が返ります。それ以外はNULLが返ります。構文$in_same_term現在の投稿と同様のタクソノミー・タームの投稿に限定するかを指定します。false)trueにすると現在のタクソノミー・タームがついた投稿を表示します。平たくいうと、現在の投稿記事と同じカテゴリIDの記事を表示させます。$excluded_terms表示させないタームID(カテゴリID)を指定します。複数ある場合は、配列指定するかカンマ区切りで指定します。なし)$taxonomyタクソノミーを指定します。これは第三引数がtrueの場合にのみ有効です。$taxonomy]]])現在の投稿に隣接している次の投稿を取得します。構文は、前項のget_previous_postとなので、省略します。$taxonomy]]]]]])現在の投稿の日付から一つ後の投稿へのリンクを表示します構文$formatリンクの前後に表示する文字列を設定します。%linkと表記すると、第二引数に置き換えられます。htmlタグも使用可能です。$link表示するテキストを設定します。%titleで一つ前の投稿タイトルを取得します。%title)$in_same_term現在の投稿と同様のタクソノミー・タームの投稿に限定するかを指定します。false)trueにすると現在のタクソノミー・タームがついた投稿を表示します。平たくいうと、現在の投稿記事と同じカテゴリIDの記事を表示させます。$excluded_terms表示させないタームID(カテゴリID)を指定します。複数ある場合は、配列指定するかカンマ区切りで指定します。5')$taxonomyタクソノミーを指定します。これは第三引数がtrueの場合にのみ有効です。$taxonomy]]]]]])現在の投稿の日付から一つ前の投稿へのリンクを表示します構文$format基本はnext_post_linkと同様です。%link)$link表示するテキストを設定します。%titleで次の投稿タイトルを取得します。%title)$in_same_termnext_post_linkと同様です。$excluded_termsnext_post_linkと同様です。$taxonomynext_post_linkと同様です。使用してしまうと、タグ表示位置が崩れるためこうしています。呼び出されるタイミングだと思っているのですが、未検証のため何故崩れるのかは不明です。「次へ」と「前へ」の二つを設置するテンプレートファイルにそのまま書き込むsingle.phpやarchive.php、index.phpなどに直接書いていく方法です。固定ページにおいては、意図した結果にならない場合がある。個別投稿ページについては、この関数でいいと思います。Query$max_num_pagesプロパティを使用します。$max_num_pagesページの合計数を返します。next_posts_link()現在のクエリ内で、投稿の次のセットへのリンクを表示します。$max_pages]])$labelリンクのテキストを指定します。※上限なし)previous_posts_link()現在のクエリ内で、投稿の一つ前のセットへのリンクを表示します。構文previous_posts_link([$label])$labelリンクのテキストを指定します。'</div>';}投稿クエリは日付の逆順にソートされるのが普通です。新しい投稿(セットの始まり方向)を指します。have_comments()ループで処理するコメントがあるかを真偽値で返します。wp_list_comments()投稿や固定ページのコメントを表示します。$comments]])$argsコメントリストのタグや、アバターの画像サイズ等、各オプションを配列で設定します。指定するオプションが一つの場合、文字列として指定が可能です。$commentswp_list_commentscomment_form()コメントフォームを出力します。$post_id]])$argsコメントフォーム内のオプションを配列で設定します。一覧$post_id投稿を指定します。Nullが指定されている場合は、現在の投稿を使用するフォームを生成する投稿IDを生成します。Null)機能を追加するまず、functions.phpというファイルを、テーマフォルダに保存します。このファイルはテーマ内で利用する機能を設定するファイルです。WidgetWidget機能を追加するには、下記のコードを入力します。関数名は任意のもので大丈夫です。'サイドバーのウィジットエリアです。メニューより、管理画面上でカスタムしたメニューを表示出来るように設定します。登録したサイドバーウィジェットを表示させます。dynamic_sidebar()Widgetで登録したサイドバーを表示します。ID番号を記載します。is_active_sidebar()サイドバーが有効化されているかを調べます。ID番号を記載します。headerページタイトルを設定します。今後は、functions.php内で設定するのが推奨になると思われます。add_theme_support(‘title-tag’)`functions.php`内に、この関数を入力すれば、`wp_head()`時にtitleが設定されます。デフォルトでは、下記の記載となります。サイト名また、wp_title同様カスタマイズも可能です。第二引数の関数名は好きに変更可能です。トップページではtitleに該当されるため、一番右側に表示される。'custom_ttl_parts');add_theme_support('title-tag');“`実際、パーツごとの変更で使用するのは`title`か`site`くらいなもんじゃないかなーとは思います。**補足**h1タグでページタイトルを入れたい場合です。`wp_get_document_title()`関数でタイトルを取得することが可能です。デフォルトですと、サブタイトルも含まれてしまいますので、`add_theme_support(‘title-tag’)`の`document_title_parts`で出力する内容を調整します。?></h1>“`これで、h1の中にはサブタイトルがない状態で表示されます。titleもサブタイトルが抜けてます。titleにはサブタイトルを入れたいが、h1では抜きたい場合の方法も紹介します。'custom_ttl_parts');add_theme_support('title-tag');“`トップページは同じなので割愛。functions.phpに`!doing_action(‘wp_head’)`を記載することで実現できます。`doing_action()`は、指定した関数が実行されているかどうかを真偽値で返します。実行されていない場合は、空欄で表示するようになります。使えそうな関数ですので、覚えておいて損はないかも。wp_footer()状況に応じて必要なコードを自動で出力するために必要な記述です。プラグインなどを使ったとき、そのスタイルシートのリンクを出力したりするのに必要な記述です。個別記事ページの作成single.phpの中身です。基本的には、index.phpをベースに作成していいと思います。コンテンツ幅メインコンテンツ幅を設定します。記事を複数ページに分ける投稿画面で、を指定すると、ページを区切ることが出来ます。これを実装させるために、`wp_link_pages`を設定します。固有のグローバル変数の一つです。現在の投稿オブジェクトが入ってます。return;トップページ及び管理画面に影響がないように記載します。投稿情報の取得メインループfunctions.phpにて、pre_get_postsのアクションフックで指定した条件がループします。1ページに1回のみ処理されるループです。明示的に指定をすることなく、データを取得することが出来ます。サブループ1ページに何回でも処理することが出来ます。1回毎に明示的に条件を指定しなければなりません。メインループとは別の条件でループさせたい場合や、1ページ内に2箇所ループさせる箇所がある場合はサブループを使用します。サブループにはWP_Queryを使用します。return;}$wp_query概要WPのグローバル変数の一つ。WP_Queryオブジェクトを参照してます。現在表示されているページの情報が入っています。基本的には、投稿ページ(archive)に属するテンプレート階層で使用するのがいいと思われます。構文get_query_var($var)下記の変数名のいずれかを必ず指定します。指定した変数の中身が帰ります。オブジェクトを取得します。表示するページによってはNullなので、使用するページは気をつけること。先祖のIDを配列で取得します。親階層から順に、配列が生成されていきます。パンくずを生成する場合は、array_reverseで逆から取り出すのがベターです。自身のIDは生成されません。post_idを指定します。post名を指定します。