WordPressのテーマを作っていこう【header.php、footer.php編その1】

WordPress

右から左にどんどん忘れていくできの悪いブログ主なので、忘れないうちにどんどん書いていきます。

今回はheader.phpとfooter.phpを作成。

まだまだこの辺は簡単です。

これまでの設定

WordPress設定 | naonotes.com(ナオノーツ)

コーダーでWordPressを読み込む

テーマディレクトリ編で作ったテーマフォルダを編集する。

WordPressのテーマを作っていこう【テーマディレクトリ編】 | naonotes.com(ナオノーツ)

WordPressのコード編集はコーダーを使った方が楽。

ブログ主はCoda2というコーダーを使っているが、無料のNetBeansでも十分使いやすいので、そちらをおすすめしておきます。

Coda 2 App
カテゴリ: 開発ツール
価格: ¥6,500

【NetBeans】WordPressのコードを打つ前にコーダーを決める。その2 | naonotes.com(ナオノーツ)

コーダーをインストールし、SFTP接続でWordPressディレクトリへ接続。

Coda2の場合はSFTP接続すればいいだけなので割愛。

NetBeansの場合はファイル→新規プロジェクト→カテゴリはPHPを選択し、プロジェクトはリモートサーバーからのPHPアプリケーションを選択。

後はウィザードに従ってVPSサーバーに接続しよう。

この辺のを詳しくやると先に進まないのでググってください。

設定サイトはいくらでもあるので。

WordPressのテーマが入っているパスは

/home/limesheep5/www/wordpress/wp-content/themes/

の中にあるので、一気にここを読み込んでしまった方が楽。

index.phpにコードを記入

index.phpを開いたら、コードを記入する。

コピペせず、必ず自分で記入しよう。

コードは書かないと覚えない。

index.php

<?php get_header(); ?>

<?php get_footer(); ?>

とりあえずこれだけ。

記入したら保存しよう。

このコードを記入することで、http://マイドメイン/wordpressへアクセスしたとき、ヘッダーとフッターが読み込まれる。

URLを開いてみよう。

ただ真っ白なファイルが読み込まれるはず。

当然header.phpやfooter.phpには何も記述されていないので、何も読み込まれない。

ソースを表示しても何も記述されていない。

なので、まずheader.phpにコードを記述していこう。

header.phpとfooter.php

header.phpはブログの顔。

header

ブログタイトルを表示するだけでなく、どのページを開いても常に存在するので、ナビゲーションバーやRSS登録ボタンを設置したりと、サイト自体を使いやすくする役目も果たす。

なによりHTML宣言を行い、これはHTML文です!っていうことをブラウザに教える役目も果たす。

footer.phpは一見地味だが、コピーライトを表示したり、HTMLコードを閉じるという重要な処理を行うほか、他ナビゲーションの表示にも使える。

header

header.phpとfooter.phpはindex.phpに次ぐ重要なファイル。

コードを記述する

それではheader.phpとfooter.phpにhtmlコードとPHPコードを記入していこう。

え?PHPだけじゃないのって?

PHPはHTMLコードを自動生成するプログラム。

なのでHTMLコードの中にPHPプログラムを埋め込み処理させている、というイメージをしてほしい。

HTMLコードの中にあるPHPプログラムをサーバーが処理してHTMLコードに変換し、ブラウザに表示する。

なので、ブラウザ上でコードの表示を行ってもPHPのコードは一切表示されないというわけ。

なんだかさっぱりわからない?

書いてるうちにわかるよ。

header.php

<!DOCTYPE html>
<html>
<head>

<meta charset=”<?php bloginfo (‘charset’) ; ?>” />
<title><?php bloginfo(‘name’); ?></title>

</head>

<body>

footer.php

</body>
</html>

青の部分がHTMLコード、赤の部分がPHPコードになる。

書いたら保存してブラウザで開いてみよう。

開いてみると、タブにブログタイトルが読み込まれている。

今回のブログタイトルはTestServer。

header

ブラウザでソースコードを読み込んでみよう。

PHPコードは影も形も消え、代わりにHTMLコードに適切なコードが書き込まれている。

header

PHPコードは<?php ○○ ; ?>と、<?php ; ?>に囲まれた部分、○○の部分がPHPコードになる。

それ以外はHTMLコード。

<?php bloginfo (‘charset’) ; ?>でPHPサーバーに文字コードを要求し、UTF-8という解答を受け取ってそれを表示し、<?php bloginfo(‘name’); ?>でブログタイトルをPHPサーバーに要求し、TestServerという返答を受け取ってそれを表示している。

bloginfo()というコードはWordPressの様々な設定情報を出力してくれる非常に便利なコード。

()の中にパラメータを記入することで情報を返してくれる。

charsetで文字コード、nameでブログタイトル。

他にもtemplate_urlでブログテーマまでのパス、rss2_urlでRSS2.0フィードのURLなど様々。

使用頻度は高い。

おさらい

ブラウザで

http://マイドメイン/wordpress/

にアクセスすると、まずindex.phpが読み込まれる。

index.phpに記述された

<?php get_header(); ?>

がheader.phpを、

<?php get_footer(); ?>

が、footer.phpを読み込む。

header.phpとfooter.phpに記述されたHTMLコードとPHPコード、

(header.php)
<!DOCTYPE html>
<html>

<head>
<meta charset=”<?php bloginfo (‘charset’) ; ?>” />
<title><?php bloginfo(‘name’); ?></title>
</head>

<body>


(footer.php)
</body>
</html>

がindex.phpに読み込まれ、さらに

<?php bloginfo (‘charset’) ; ?>

と、

<?php bloginfo(‘name’); ?>

が、サーバー上の文字コードとブログタイトルをそれぞれ取得し、HTMLコードへはき出す。

結果、

<!DOCTYPE html>
<html>

<head>
<meta charset=”UTF-8″ />
<title>TestServer</title>
</head>

<body>
</body>
</html>

というコードが生成され、ブラウザで読み込めるようになった。

直接の書き換えを極力省くPHP

HTML文すべてを記述するのと違い、文字コードやブログタイトルを変更しても、PHPがそのときの設定を返すので自動で更新される。

HTML文のみの場合は文字コードやブログタイトルを更新したら、HTML文も自分で書き換えなければならない。

そういう手間を省き、ミスを減らす便利なシロモノってわけ。

ちょっとわかりにくいかな。

次回へ続く。

WordPressのテーマを作っていこう【header.php、footer.php編その1】」への16件のフィードバック

  1. とーやま

    くずのはさん こんにちわ。

    いつもありがとうございます。

    ゲームは(すごろく系、テトリス系のみ)ほとんどしないのですが、
    レビューおもしろいですね。

    さて、
    コーダの設定勉強になりました。

    わたしの設定下では、
    このようになりました。

    coda2、netbeansとも
    originaltheme(以下Aとします)より下のファイルが、
    chmod ーR 766 A では、見えませんでした。

    ①chmod ーR 766 A
    のあと、フォルダだけ

    chmod 755 A

    一時ファイルを作らないに
    と指定すると、
    下のファイルリストが見えて、
    アップロードできました。

    netbeansは、デフォルトで
    一時ファイル new***、old***を
    つくるので、それを外さないと
    permisswion error
    になります。

    coda2は、デフォルトでパッシブモードなので、new***、old***を作りませんでした。

    ②または、chmod -R 757 A
    でも
    ファイルリストを見て、アップロードできました。

    ③chmod -R 757 A
    にすると 、

    一時ファイルを作るモードだと、
    新しく作成されて、(766 apache,apacheが変更されてしまいます。)
    ls -l
    確認すると、
    rw-r–r–  ユーザ名 wheel になります。
    追加ファイルも同様です。

    質問ですが、
    1) chmod -R 766 A
    でファイルの読みこみができなくて
    chmod R 755でファイルが読み込めたのはなぜなのでしょうか。

    2)chmod -R 766 A
    で使えるようにするには、何かほかの設定が足りなかったのでしょうか。

    3)コーダで新しいファイルをつくると、
    rw-r–r–  ユーザ名 wheel
    になってしまいますが、
    apacheにはできますか?

    お時間あるときに教えていただいていいでしょうか。

    返信
    1. 葛葉 キョウジ(管理人) 投稿作成者

      所有権やアクセス権についてはCoda、NetBeansともに一切関係ありませんよ。
      ディレクトリは作成したユーザーが所有権を持ちます。
      所有権移転はchownです。
      使い方はググってください。
      パーミッションはroot、所有者、一般の順番です。
      Linux パーミッションでググればわかると思います。

      返信
  2. とーやま

    くずのはさん
    こんにちわ。

    いつもありがとうございます。

    次期iphone、docomoから出たらいいですね。
    それでも、imotenの良さを知ってしまったから、spモードメールではなく、
    imotenは使っていくんでしょうね。
    逆にもし、これまでにdocomoからiphoneが出ていたら、ソフバンユーザーの人が、ロック解除したとして
    ここまで使いこなすかなーと思います。

    さて教えていただきありがとうございました。
    勉強になりました。

    ①chown -Rした後に新たに作ったファイルはログインした作成者になるということがわかりました。
    ②wheelのユーザーでログイン、
    netbeansなどのsftp接続では、suコマンドでrootになっていない。一般状態ですよね。wordpressのフォルダはroot/varにある。一般ユーザーで6=r+W、フォルダは見えてもファイルが見えないということなんですね。ディレクトリのみ755でないと読めないとういうことか、USERを作る時か証明書関係で何かミスっているのかなと思います。
    ③ chmod -R 766で
    読み込むには、以下の場所にWORDPRESSをおくとできました。home/user名/home/limesheep5/www/wordpress

    ④ターミナルでrootログインして作っていたので
    WORDRESSは、
    /var/www/htlm・・・・
    それはroot/varにあったことが分かりました。

    返信
    1. 葛葉 キョウジ(管理人) 投稿作成者

      さすがにMMS対応していくんじゃないですか?
      そのかわりi.docomo.ne.jpとか、アドレスが変わるような気もしますけど。
      SBも大分回線補強してるので、流出対策してるんじゃないですかね。

      ~/var/www/html/
      にWordPressを置いてもブラウザから見えないんじゃないですか?
      /var/www/html/
      以下に置かないとダメだと思うんですが。
      あと、
      /home/limesheep5/www/wordpress/wp-content/
      にあるthemesディレクトリのパーミッションを777に変えるとテーマを読み書き変更可に出来ますけどね。

      返信
  3. うさぎぱん

    お世話になります。
    ブログ大変勉強させていただきました。ありがとうございます。

    WordPressのテーマbunnyを使っているのですが

    サイトのタイトルがホームへリンクされておらず戻ることができません。

    サイトのタイトルをホームにリンク付けするためにはどこをいじればいいのでしょうか。

    教えていただけますと助かります。

    返信
    1. 葛葉 キョウジ(管理人) 投稿作成者

      多分ですが、
      header.phpの35行目

      “>

      に書き換えればリンクが貼られると思います。

      返信
  4. うさぎぱん

    早速ご返信いただきありがとうございます!

    35行目ですね

    “>

    試してみたところ”>という表記がタイトルに加わるだけでした。

    色々と試してみたのですが、

    id=”headline”

    これを外して

    <a href="” rel=”home”>

    とすると、リンクはついたのですが。

    id=”headline”

    がタイトルを曲線に表記してくれる機能があり、できれば外したくありません。

    id=”headline”を付けた状態でリンク化することはできませんでしょうか。

    返信
  5. うさぎぱん

    すいません、表記が消えてしまったので再度投稿させていただきました。

    35行目
    h1 class=”site-title” id=”headline” ? php bloginfo(‘name’); ? /h1

    h1 class=”site-title” id=”headline”>”>という表記がタイトルに加わるだけでした。

    色々と試してみたのですが、

    id=”headline”

    これを外して

    h1 class=”site-title”>a href=”” rel=”home”><?php bloginfo( 'name' ); ? /a /h1

    とすると、リンクはついたのですが。

    id="headline"

    がタイトルを曲線に表記してくれる機能があり、できれば外したくありません。

    id="headline"を付けた状態でリンク化することはできませんでしょうか。

    返信
    1. 葛葉 キョウジ(管理人) 投稿作成者

      コメントが化けてました。
      htmlタグをコメントするとそれが適用されておかしくなるんですよね。
      <h1 class=”site-title” id=”headline”><?php bloginfo( ‘name’ ); ?></h1>

      <h1 class=”site-title” id=”headline”><a href=”<?php echo home_url(); ?>”><?php bloginfo( ‘name’ ); ?></h1>

      に変えるとリンクが貼られると思います。

      返信
      1. うさぎぱん

        キョウジさま

        ご親切に教えていただき本当にありがとうございます。

        早速試してみました。

        ですが、サイトのタイトルにはリンクがなく、その下段あたりのサイト紹介文付近全域にリンクがつくようになりました。

        曲線で表示されるサイトタイトルの文字にリンクを張ることはできませんでしょうか。

        お忙しい中、申し訳ありません。

        返信
        1. 葛葉 キョウジ(管理人) 投稿作成者

          あ、aタグを閉じるの忘れてました。
          35行目
          <h1 class=”site-title” id=”headline”><a href=”<?php echo home_url(); ?>”><?php bloginfo( ‘name’ ); ?></a></h1>

          こうかもしれません。

          返信
          1. うさぎぱん

            ありがとうございます。
            aタグを閉じると、今度はリンクがなくなってしまいました。
            やはりちょっとイケてない外観テーマのようです。

            TOPへ戻るボタンを別途設置するというのも考えてみます。

            お忙しいところ、本当にありがとうございます。

          2. 葛葉 キョウジ(管理人) 投稿作成者

            うーむ。そうですか。
            テスト環境がないので、テーマのソースを見て推測でやってみたんですけど駄目でしたか。
            すいません。
            差し支えなければブログのURLを教えて頂ければ、ソースを見て判断することは出来るかもしれませんが。

  6. うさぎぱん

    キョウジさま
    ありがとうございます。
    ご連絡が遅くなり、申し訳ございません。
    まだ、よろしいでしょうか。
    このサイトなのですが、いかがでしょう。

    返信
    1. 葛葉 キョウジ(管理人) 投稿作成者

      新たにhtmlファイルを作成し、ソースをコピーしてみたらリンクがつきました。
      なので、CSSでhrefが無効になってるんだと思います。
      なので諦めた方がいいかもしれません。

      返信
      1. うさぎぱん

        返信が遅くなり誠に申し訳ございません。
        やはりそうですよね。ちょっと他のテンプレートに変えることを検討します。

        お忙しいところご丁寧に教えてくださり誠にありがとうございます。

        返信

うさぎぱん へ返信する コメントをキャンセル

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)