ワードプレスで記事投稿時にショートコードを使用して、フッターエリアを変化させる。

テスト投稿

小難しい記事タイトルですが、内容は

記事投稿時に、フッターエリアに表示しているアマゾン広告の検索ワードを指定する方法

です^^
試しにこの記事では、現在、机の上に置いてある「のんある気分」を検索ワードにしてあります。
[test]

/**
* アマゾン広告キーワード 受け渡し
*/
function amkeyfunc($amkey1) {
global $amkey;
$amkey=$amkey1[0];
return;
}
add_shortcode(‘amkey’, ‘amkeyfunc’);

functions.phpの最下部に上のコードを書いて
投稿記事で(左カッコ)amkey のんある気分]でショートコードを記入する。

フッターのphpファイルに、
<?php
/*
* アマゾン広告検索キーワード読み込み
*/
global $amkey;
?>
その後にアマゾン広告のスクリプトをコピペします。検索キーワードを指定するところを、
search_key = “<?php
echo $amkey;
?>”;
として、無事に成功。
(<は実際は半角です。半角で書くと消えてしまうので大文字にしてます。)

ということで、2日前にカスタマイズしようと思っていたことが出来ました。
先日購入した本(WordPressユーザーのためのPHP入門)を日曜日に数時間かけて読んで(後半は流し読み)、今日の会社の休憩時間と、残業時間?(残業する前の息抜き^^;)で作成しました。
実際のところ、今回の数行のプログラム?は購入した本はあまり参考なってなくて、ネットの情報を集めて、トライ&エラーで作りました。
文字通りエラーが発生して、functions.phpでの記述を間違えていて、サイトが表示されない、編集画面が表示されなくなったときは焦りました^^;;
とりま~自分で自分を褒めておきます。俺って凄い!!

今回の要点

・このサイトのフッタエリアーにあるアマゾン広告等に、投稿記事から検索用のキーワードを受け渡すことは、プラグインを使わなくても可能。
・投稿記事でショートコードを使用して、引数(検索用のキーワード)を変数に代入する。
・変数は、前もってグローバル宣言しないと、関数間、phpファイル間(個別投稿ページとフッターページ等)でやり取りできない。
・投稿記事で変数をいじれるので、フッターページやサイドバー等で、その変数を使って色んな処理(個別の投稿記事による制御)ができるようになる。

詳しいことは、ショートコードや、グローバル 変数で検索すると出てくるかと思います。

試行錯誤中は、
投稿記事をphpコードを書くと、無視される^^;
ショートコードの引数が、うまく変数に代入されない(array?と代入される)。受け渡しの際に引数が入る変数は配列あつかいになっているので[0]で指定しないといけないんだ!
ショートコードで変数に代入しても、phpのファイルが変わると、変数の値が空白になって・・・?
これって、データーベースに値を入れないと、渡すことができないのかな~??
あ~グローバル変数というのを宣言すると、投稿エリアとフッターエリアで変数をやりとりできるんだ!

と、ネットで「投稿記事でphpコードを使用するには」、「変数の値を受け渡すには」で検索したら方法が分かりました。
先日購入した本(WordPressユーザーのためのPHP入門)には、このことに関して書いてない(と思う)ので、google先生は偉大ですね。

色々触りだすと、あれもこれも気になってくる(「投稿者:コン太郎」とかカテゴリータグ隣の「パーマリンク」の表示とか)、あとコメント投稿関係ですね。
今後本サイトと合体したときに、いわゆる日記部分はコメントを残す予定ですが、ほかの記事はコメント非表示というか、「コメントはありません」という表示自体も消したいんですよね~。

それに個別投稿記事の場合、記事上下に、次の記事と前の記事のナビゲーションリンクが付くのですが、これが基本的に投稿順であって、カテゴリ内での選択とかが設定できないんですよね。
今後、たとえば「しらべ12のなんとかの曲の練習ページ」を作ったら、もしその前後の投稿がただの日記だった場合、それがナビゲーションされてしまうんですよね・・・。
これ自体は、各種プラグインがあるのですが、どうしたらいいもんかな~。

と、だらだら日記を書いていたら、もう寝る時間だ。