人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

WordPressについての質問です。WordPressのテーマにあるheader.php内でグローバル変数を使うことができます。例えば$postのIDを取り出すなら

$post->ID

で投稿や固定ページのPost IDを取り出せます。

新しく自分でstyle.php(スタイルシート)というファイルを作りheader.phpでこのstyle.phpを呼び出しています。このstyle.phpの中では

$post->ID

をしても何も取り出せません。

sytle.phpでグローバル変数を使えるようにするにはどうしたらよいでしょうか?


●質問者: lightbody
●カテゴリ:インターネット ウェブ制作
✍キーワード:PHP wordpress グローバル変数 スタイルシート テーマ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● hanako393
●27ポイント

いったんグローバル変数に入れることでとりあえず実現できます。

header.phpで

$postid = $post->ID;

で格納後、

style.phpで取り出します。

WordPressの場合、順序とかによってうまくWPで用意されてる変数の値が取り出せないことがあります。

http://q.hatena.ne.jp/answer

◎質問者からの返答

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

header.php内で

$post_ID = $post->ID;

としてstyle.phpで

$post_IDの中身を見ると空でした。

ちなみにstyle.phpはheader.php内で<link rel="stylesheet" href="http://hoge.hoge.com/wp-content/themes/hoge_theme/style.php" type="text/css" media="screen" />として呼び出しています。呼び出し方が問題?。


2 ● zaxaxaz
●27ポイント

呼び出し方が悪いです。あとthe_post()してないと$postには何も入らないと思います。

本来であればWPのAPIをつかってCSSを登録したほうがいいですが、手軽にやるなら、

<?php $postid = '0'; if (have_posts()) { the_post(); $postid = $post->id; rewind_posts(); } ?>
<link rel="stylesheet" href="http://hoge.hoge.com/wp-content/themes/hoge_theme/style_<?php echo($postid); ?>.css" type="text/css" media="screen" />

のような感じで、読み込むCSSファイル自体を切り替えてみてはどうですか?

http://wpdocs.sourceforge.jp/The_Loop

◎質問者からの返答

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

header.phpにて切り替える方法でも可能ですが、cssの種類をたくさん作る可能性があるのでheder.phpでcssを切り替えるのではなく、style.phpを動的に変えたいと思って質問をしました。


3 ● zaxaxaz
●26ポイント

>header.phpにて切り替える方法でも可能ですが、cssの種類をたくさん作る可能性があるのでheder.phpでcssを切り替えるのではなく、style.phpを動的に変えたいと思って質問をしました。

それでしたら、前回の回答を応用してGETパラメーターで渡すようにしてはどうでしょうか?


<?php $postid = '0'; if (have_posts()) { the_post(); $postid = $post->id; rewind_posts(); } ?>
<link rel="stylesheet" href="http://hoge.hoge.com/wp-content/themes/hoge_theme/style.php?postid=<?php echo($postid); ?>" type="text/css" media="screen" />

sytle.php側では、こんな感じで。


$postid = $_GET['postid'];

style.phpの中でWPの関数を使いたいとなると、WPに手を入れるかプラグイン作成。あるいは、includeするファイルを調査する必要があると思いますが、単に$post->idを使いたいだけなら上記でいけると思います。

http://q.hatena.ne.jp/answer

◎質問者からの返答

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

やはりheder.phpでグローバル変数を取得してstyle.phpに引数で渡すのが簡単そうですね。

>WPの関数を使いたいとなると、WPに手を入れるかプラグイン作成。あるいは、includeするファイルを調査する必要があると思いますが

ここがよくわからなかったのです。wpの関数はwp-load.phpのincludeでいけますがグローバル変数がさっぱりわかりません。

いろいろ調べたのですがわからなくて、片っぱしからincludeも試してみたのですがうまくいかないのです。wpはソースを自分でインストールしているので

ありますが、中身を見てもよくわかりませんでした。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ