サポート » テーマ » 変数の宣言について

  • 解決済 mayugen

    (@mayugen)


    よくわかっておらず、こちらに質問しに参りました。

    category.phpやsingle.phpで同じ変数を使用したいのですが、
    その場合、個々のページに各々宣言せずに、
    変数用のphpファイルを作成して読み込ませようと思っております。

    その場合、includeで読み込ませようと思ったのですが、
    get_template_part()で読み込んだ方がいいのでしょうか?

    wordpressも初心者ですが、プログラムも初心者なので
    これであっているのかもわかりませんが、ご教授いただきたく思います。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • こんにちは、

    変数の定義ファイルをインクルードする時に、WordPress関数を使ったほうがいいのか、PHP関数を使ってもいいのかという事ですが、

    テーマのガイドラインでは、以下のように決まっています。

    変数名には、Prefixをつけることになっています。(通常テーマ名などをプレフィックスとします)同名の変数が衝突しないためです。

    get_template_part()やlocate_template()等のWordPress関数では、変数のインクルードはできません。
    (関数やクラスは読み込めます)

    PHPのincludeやrequire関数を使っていい場所は、functions.phpだけに決まっています。

    category.phpやsingle.phpでは、PHPのincludeやrequireは使ってはいけないことになっています。

    functions.phpでインクルードした変数は、category.phpやsingle.php などのテンプレートでは、読み込めますが、

    header.phpやfooter.php等のテンプレートパートファイルでは、読み込みません。
    テンプレートパートファイル内で、読み込むためには、

    global $hoge;

    を行う必要があります。

    トピック投稿者 mayugen

    (@mayugen)

    nobita様

    回答ありがとうございます!!

    functions.phpにincludeしてcategory.phpやsingle.php で
    使用するということなんですね。
    試してみたところ、使えました!ありがとうございます。
    テンプレートパートファイル内でも、globalにて読み込めました。
    本当にありがとうございます!

    それともう一つご質問させていただいてよろしいでしょうか?

    $cat = get_the_category();
    $cat = $cat[0];
    $hoge_cat_id	= $cat -> cat_ID;

    この$hoge_cat_idのようにカテゴリIDを取得したものを
    色んなところで使う事はできるのでしょうか?

    WordPress Codex 日本語版にて
    このテンプレートタグ get_the_category は、現在の記事が属するカテゴリをオブジェクト形式で返します。このタグはパラメータとして投稿IDを渡すことで、ループの外でも使うことが出来ます。

    とあったのを見たのですが、get_the_category は、使う場所で上記のように宣言して
    使うのでしょうか?
    ものすごくとんちんかんなことを言っていたら申し訳ありません。。。

    それに加えて質問も返してしまいすみません。。。

    WordPress関数を使った複数行にわたるコードの結果を一つにまとめて使う場合は、

    functions.phpにオリジナルの関数を記述することができます。

    関数名には、変数名と同様にプレフィックスをつける必要があります。
    関数名の衝突を避けるためです。

    function prefix_article_first_cat_id( $ID ) {
        $cat         = get_the_category($ID);
        $cat         = $cat[0];
        $hoge_cat_id = $cat->cat_ID;
        return absint( $hoge_cat_id );
    }

    テンプレートの好きな場所で、投稿IDを引数にした関数を実行することができます。

    echo prefix_article_first_cat_id( 投稿ID );

    `

    トピック投稿者 mayugen

    (@mayugen)

    nobita様

    丁寧な回答本当にありがとうございます!!
    さっそく試してみたところ、できました。
    ずっと疑問に思っていたことが解決したので、進められそうです。

    本当にありがとうございました!!

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「変数の宣言について」には新たに返信することはできません。