2011年06月14日 WordPress
ちょっとタイトルじゃ分かりづらい(少なくとも僕は。。)ですが、WordPressをカスタマイズしているとサイドメニューにカテゴリ一覧を出したり、ページ一覧を出したり、サブカテゴリや、サブページを出したり、、、、など色々することが多いと思います。
その際に、一覧を表示するコードなんかを適当に検索して、貼付けると、確かに動く! 動くんですが、その箇所はちゃんと動くけど、グローバル変数が書き換えられてしまって、他が動かなくなる。といったコードが結構あります。というか、ありました。プラグインなんかでもそういうのがあるかもしれません。 そうすると、WordPressに精通していない僕なんかは困るわけです (;゚∀゚) サイドメニューは動いてるのに、さっきまで動いていた箇所が動かなくなってるとか後で気付いたりするわけです (p_q、)シクシク そうなると、どこが原因か、どんどん分からなくなってしまいます。(少なくとも僕は。。)

解決方法

そういうのを防ぐ、もしくは、その状態を解決する方法として、function.php内に以下のコードを記述して、wp_head()の出力時に、$postを他の変数(今回は$_cur_page)として保持しておきます。 あとは、$postが書き換えられたーーって困った時なんかは、$_cur_pageを代わりに使うなり、もともと、$postを触らずに、$_cur_pageからデータを取得するなどして、$postが変更されない状態にしておくなど、対応が出来るようになるかと思います。

コード

//wp_head()実行時にget_pageid()を実行
add_action('wp_head', 'get_pageid');

//現在のページIDを記録しておく(他のウィジェットや関数に書き換えられても良いように)
function get_pageid()
{
	global $post,$_cur_page;
	$_cur_page = $post;
}

//現在のページの属する親ページのIDリストを取得
function get_page_parent_list()
{
	if( !is_page() ) return array();
	global $_cur_page;
	$curr_page = $_cur_page;
	$hierarchy[] = $curr_page->ID;
	while($curr_page->post_parent) {
		$curr_page = &get_post($curr_page->post_parent);
		$hierarchy[] = $curr_page->ID;
	}
	return $hierarchy;
}
参考サイト:http://soft.fpso.jp/develop/wordpress/customize/entry_2017.html

この投稿へのコメント

コメントはまだありません。

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます。
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

CAPTCHA


ピックアップ記事

WordPressで特定の親カテゴリとその子カテゴリに所属する場合の条件分岐の方法

2022年11月12日 WordPress
functions.phpに以下を記述 [php]if ( ! function_exists( 'post_is_in_descendant_category' ) ) { function post_is_in_descendant_category( $cats, $_post = null ) { foreach ( (array) $cats as $c…
「WordPressで特定の親カテゴリとその子カテゴリに所属する場合の条件分岐の方法」をはてなブックマークに追加

Hellod dolly をサイトに表示させてみる

2011年05月26日 WordPress
WordPressには、デフォルトで Hello Dolly という意味不明なプラグインが入っていますが、あまりにも意味不明なので、サイトに表示してみましょう (/_・)/ 以下は、Hello Dolly の説明です。 Hello Dolly(ハロー・ドリー) これはただのプラグインではありません。ルイ・アームストロングによって歌われた最も有名な二つの単語に要約される、同一世代のすべての人々の希…
「Hellod dolly をサイトに表示させてみる」をはてなブックマークに追加

WordPress 独自テンプレートでよく使う関数など

2022年11月16日 web関連WordPressjQuery・javascriptphp
投稿関連 ページID 取得・表示 [php]<?php $post_id = get_the_ID ( ) ; echo $post_id; ?>[/php] リンク取得・表示 [php] <a href="<?php echo get_permalink( 99 ); ?>">リンクテキスト</a> [/php] …
「WordPress 独自テンプレートでよく使う関数など」をはてなブックマークに追加

WordPressにtwitterのログを自動投稿するプラグイン

2011年05月29日 WordPress
タイトル通り、Twitterの一日分のツイートをWordPressへ自動投稿してくれるプラグインについてですが、tweet digestというプラグインを使っていたのですが、これを有効にすると、他のプラグイン(SyntaxHighlighterやフロントエンド・エディタなんか)が動かなくなる事が分かったので、Twitter Toolsに変更しました。 なので、Twitter Tools の使い方…
「WordPressにtwitterのログを自動投稿するプラグイン」をはてなブックマークに追加

WordPressで記事本文にjavascriptを使う

2011年06月15日 WordPressjQuery・javascript
WordPressには、投稿する記事を自動整形する機能があるんで、勝手に改行とかを入れてくれて便利なのですが、こいつが時々邪魔をします。 これを簡単に解決する方法がありましたので、投稿しておきます。…
「WordPressで記事本文にjavascriptを使う」をはてなブックマークに追加
© graffiti on the web . All rights reserved. WordPress Theme by comfy