前回、RSSを自動で巡回する仕組みを作ることに成功し、次に手掛けるべきはDBに格納した記事の情報を整形しリンクのカタチとして表示させる各種PHPの作成である。

現在使用しているWrodpressのテンプレート”tewntyten”で用意されている内、今回編集する主なPHPは以下のような仕組みになっている。(ドキュメントルート/wp-content/themes/twentyten ディレクトリの下にある。)

  • header.php … 各ページのヘッダとして呼び出される
  • footer.php … 各ページのフッターとして呼び出される
  • sidebar.php … サイドバーとして呼び出される
  • index.php … ?トップページとして見えるページ
  • search.php  … ?検索ウィジェットの検索結果として呼び出される
  • archive.php ? … 過去記事のアーカイブリンクから呼び出される
  • page.php ?? … 固定ページのテンプレートとして呼び出される

header.php、footer.phpは各ページ共通の上の部分と下の部分が記述されており、

get_header();
get_footer();

と言うwordpress関数をPHPの中で呼び出すと、header.phpの内容と、footer.phpの内容がそれぞれ呼び出される。ちなみにサイドバーはPHPタグの中で以下の様にすればsidebar.phpが呼び出される。

get_sidebar();

これらの話をまとめて、次のようなexample.phpを書くと、ヘッダーとフッター、サイドバーのある本文が空っぽのページが出来上がる。


<?php require('./wp-load.php'); ?>

<?php get_header(); ?>

<?php get_sidebar(); ?>
<?php get_footer(); ?>

本文を書きたくなったら、get_header() と get_sidebar()の間に書けばよい。一行目は、wordPressから呼び出されるphpでは必要ない。example.phpと言うファイル名でテーマフォルダの下にphpファイルを置いても、誰も呼び出してはくれない。ならば、どこに書けば呼び出してもらえるのかと云うと、上で紹介したphpを改造するか、スラッグ名を付けて増やすかして、そこに書き込んでいけばいい。どういう事かとこれから説明しよう。

wordpressの管理画面にログインし、[投稿]→[カテゴリー]と進んで、そこからカテゴリー名、スラッグ、カテゴリーNO.を指定してカテゴリーを追加する。

カテゴリー名 … カテゴリーの名前。英語でも日本語でもタガログ語でもOK
スラッグ … カテゴリの別名。URLで使用される文字列。小文字半角英数字で指定。

次に、それぞれのカテゴリー専用ページを固定ページとして作成する。固定ページとは、WordPressのBlog投稿とは別に作成する言の出来る静的ページの事である。固定ページ作成時に、どのテンプレートを使ってその固定ページを表示させるのか選ぶことが出来る。デフォルトのテンプレートはpage.phpだが、page-テンプレート名.phpと言うファイルを作成し、コメントアウトにテンプレート名を記述することですることで固定ページ用のテンプレートを追加する事が出来る。例えばこんな具合だ。

page-example.php


<?php 
?*
Template Name: 例でーす。
*?
get_header(); ?>

<?php get_sidebar(); ?>
<?php get_footer(); ?>

テンプレート名は日本語で構わないが、UTF-8で記述しないと化けちゃうので注意が必要だ。これらのファイルはwordpressの中で呼び出されるので、前の例で一行目に書いたインクルードは書かなくてもいい。作ったファイルをFTPでテンプレートフォルダ直下に置くと、次からはWordPressの管理画面で[外観]→[テーマの編集]からファイルが編集できるようになっている。functions.phpなんかもここから編集できる。

Knowledgeアンテナ研究室では、「総合」「2chまとめ」「ニュース」「ごはんレシピ」「技術」「ガジェット」「お問い合わせ」の7つのカテゴリーを作り、それに対応させた固定ページを作っている。其のそれぞれに以下のような固定ページテンプレート用phpを用意した。

  • page-sougou.php
  • page-matome.php
  • page-houdou.php
  • page-gohan.php
  • page-gijutsu.php
  • page-omocha.php
  • page-toiawase.php

その上で、[固定ページ]から、先ほど作ったカテゴリー名を投稿名として固定ページを追加すると、メニューバーに固定ページへのリンクが出来る。固定ページ名をカテゴリ名と合わせてあるので、これをカテゴリー別のページとして使用する。固定ページの投稿画面で、どのテンプレートを使うか選択できるので、それぞれ、先ほど配置したpageテンプレート用のphpに紐づけられたテンプレート名を指定する。

後は、page-*.phpのそれぞれのファイルを書きかえれば、自分の好きなページをコーディングする事が出来るのだ。やった。phpで動的なページを書く事も出来る。今回は、カテゴリーごとの投稿内容を引っ張ってきて、整形してリンクのカタチで表示する。と云うphpを書く事に成るのだが、長くなってしまったのでそれは次回に譲る。震えて待て!

*追記: 反響にお答えし、アンテナサイト用Wordpressテーマ「Antena Institute」をリリースいたしました。
詳しくは、「Antena Instituteについて」をご参照ください。
ご購入を希望される方は、下記リンクにてAntena Instituteをご購入ください。

Antena Institute(PHP7版) | 銀仁堂

Antena Institute(PHP5版) | 銀仁堂

さらに、TwitterBotスクリプトも併せてどうぞ。
Twibot Institute | 銀仁堂

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*


*

投げ銭はこちらへ
bitcoin : 1AFU37YroGt8ohmFz8nG1N2ockL56Z4hfQ

ADA Coin: DdzFFzCqrhskq33AqGL8XkJZ3bb1hpxJYTd2UrJFKVpXphWG8d1RuhQrKymmKU1zzjvGi7oU69PaJ7nXECRG4Kpvg27Pghf3hpRNhRMy
2020年9月
 123456
78910111213
14151617181920
21222324252627
282930  
カテゴリー