[php]ファイル間の関数受け渡し(グローバル関数)

wordpressをちょっと使いこなすためのメモ。

成り行き

特定の流入元により表示内容を操作したいってなって。

まあLINEから来ましたよって人にLINE登録の煽りは要らんだろうって。
LINEはトーク上にURL張ったらめんどいけど、リッチコンテンツだとURLの表示がないからパラメータくっつけても平気じゃんっていう。

urlにパラメータ追加して、そこから操作すればいいじゃんと。

で、各ページ毎にパラメータ取得のチェックを挟み込むのはとんでもなくめんどくさいんで、header.phpとかその辺りに書いてしまって一元管理したい。「<?php get_header(); ?>」はincludeみたいなもんだから、普通の関数はpage.phpとか別ファイルに持っていくことができない。

だからグローバル関数を使う。

グローバル関数の作り方

<?php
$utmSource = $_GET['utm_source'];
// ↓コレ
global $fromLine;
if( $utmSource == 'line' ):
	$fromLine = true;
else:
	$fromLine = false;
endif;
?>

「global $****;」って宣言すればOK。

ちなみに「utm_source」はGoogleアナリティクスのパラメータのやつ。ついでだからどういうものか、何が設定できるのか調べておくといい。

パラメータを用意する際には手打ちでもいいけどGoogle謹製の生成ツールが色々提供されていて、Googleアナリティクス用のもある。

ついでのついでで、複数を一括で宣言することもできる。

<?php
global $aaaa, $bbbb;
?>

グローバル関数の使い方

<?php if($fromLine == false): ?>
<a href="***">LINE登録しようぜ</a>
<?php endif; ?>

ふつーの関数と同じように使えるのでふつーに使うだけ。
グローバル関数を生成したphp上でも同様に使える。

以上。

パラメータについて

広告出稿とかアフィのカウントとかで当たり前に使うようになってきてるんで、もう珍しいもんじゃないとは思う。

ちょっとした小ネタで、WEBサイトのデザインをいじって画像やらcssやら、ファイル名そのままで中身を更新したとき、アップロードしてもキャッシュが効いてて反映に時間のかかることがある。

urlであれば何にでもパラメータは足せるので、そういうときはurlの末尾に何でもいいからくっつけてしまえばいい(※日時がおすすめ)。別物として読み込んでくれるから即時反映される。

カラーミーショップとかすごい時間掛かるもんね。

用途

手間としてはどうかと思うけどmetaの転送を仕込んでアクセス制限とか掛けられるね。

問題点というか注意点というか

header.phpからfooter.phpには飛ばせない。

話が変わってきたんで別記事を書く

コメント

タイトルとURLをコピーしました