Cat Speak

札幌在住のWebデザイナー・コモモのブログ

ホーム > ウェブ制作Tips > WordPress > phpのdefineで共通のサイトタイトルやURL等の定数を呼び出す

phpのdefineで共通のサイトタイトルやURL等の定数を呼び出す

wordpressで、bloginfoの代わりに、phpのdefineを利用して共通のサイトタイトルやURL等の定数を呼び出す方法についてまとめました。

http://example.net
http://example.net/○○
http://example.net/□□

今回、ある案件で上のようなアドレスで、wordpressをマルチサイトとして運用することになったため、全てのマルチサイトで共通のヘッダを呼び出したかったのですが、bloginfo(‘url’) を使うと、それぞれのトップページを呼び出してしまうため、defineを利用しました。 他にも、静的なコンテンツとwordpressが混在しているような場合、静的コンテンツとcssやサイト名などを共有する場合にも使えると思います。 テーマのディレクトリ内に、common.php等のファイル名で定義したい項目を設定する。

<?php
define('SITENAME', 'サイトのタイトル');
define('SITEURL', 'http://cat-speak.net/');

define(inc_dir , "/フルパス/inc/");
define(css_dir , "/css/");
define(js_dir , "/js/");
define(img_dir , "/images/");
define(root_dir , "/");
?>;

共通ヘッダ header.phpの1行目でcommon.phpを呼び出す。

<?php include (TEMPLATEPATH . '/common.php'); ?>

定数を呼び出したい箇所でechoします。

<a href="<?php echo root_dir; ?>"><?php echo SITENAME; ?></a>

これで、複数のブログで同じ情報を呼び出すことができるようになります。 wordpress3以降で、子テーマを利用できるようになったので、親テーマでcommon.phpを作成しておけば、子テーマでは必要なくなるし、効率的に情報を管理できるようになると思います。

7 Responses to “phpのdefineで共通のサイトタイトルやURL等の定数を呼び出す”

  1. keiko より:

    WordPress での定数の使い方について調べていて、ここにきました。
    まさに、これ!と思ってやってみたのですが、うまくいきません。
    やりたいのは、カテゴリーIDを定義しておいて、他のphpファイルから使いたい、ということです。
    定義用のファイルm_define.phpを作成して、以下のように記述。

    使いたいphpファイルの先頭で、

    と記述し、
    ”,’depth’ =>1, /* 最上位のみ表示 */ ‘exclude’ => CAT-ID-MIBUNRUI, /* 未分類は表示しない */
    );
    としても、excludeには0がはいります。
    ‘exclude’ => echo CAT-ID-MIBUNRUI; ,とすると、エラーになります。
    なにが間違っているのでしょうか?

  2. keiko より:

    すみません、投稿したものを見たら、なぜか表示されていない部分があるので、追加します。
    m_define.phpの中身はdefine(‘CAT-ID-MIBUNRUI’,1);
    使いたいphpファイルの先頭では

    使うところでは
    ”, /* タイトル表示しない */ ‘depth’ => 1, /* 最上位のみ表示 */ ‘exclude’ => CAT-ID-MIBUNRUI, /* 未分類は表示しない */ );
    です。

  3. コモモ komomo より:

    Keikoさん、ごめんなさい。ちょっと質問の意味が分かりません。。
    とりあえず、
    < ?php echo CAT-ID-MIBUNRUI; ?>
    だけして、値が入っているか確認してみてください。

  4. keiko より:

    としたところ、そのまま表示されてしまいました。phpは全くの初心者なので、何か変なことしてるのかもしれません。
    すみません、質問した内容の、なぜかphpファイルからコピペした部分が所々表示されないので、確かに意味わかりませんですね。
    もう1度質問させてください。

    CAT-ID-MIBUNRUIを使いたいphpの先頭で、と記述し、wp_list_categories($args); のためのargsのarrayに$args=array(‘exclude’ => CAT-ID-MIBUNRUI,)としたのですが、excludeには0がはいってしまいます。(1がはいるはずなのですが)
    よろしくお願いします。

  5. keiko より:

    すみません、投稿した文章みると、やはりphpの内容を記述した部分が一部表示されません。
    わかっていただけたら、お教えください。
    よろしくお願いします。

  6. コモモ komomo より:

    そのまま表示されるというのは、
    < ?php echo CAT-ID-MIBUNRUI; ?>
    とすると「1」となるということで良いですか?

    これでちゃんと「1」が入っているようでしたら、

    < ?php $cat_ID = CAT-ID-MIBUNRUI; ?>
    < ?php $args=array(‘exclude’ => $cat_ID) ?>

    としてみてください。
    引数の中で使うには、一度、変数に格納する必要があります。

  7. keiko より:

    komomo様
    CAT-ID-MIBUNRUIをCAT_ID_MIBUNRUIに変更し、$cat_IDに代入して実行したら、できました。
    ありがとうございました。

コメントを残す

人気の記事