意外と需要がある、現在表示しているページURLの取得。
例えば、ソーシャルボタンのURL指定やブックマーク用のURL紹介など。
覚えていて損はありません!
そして私は忘れるので備忘録して損しません!
備忘録しても忘れる私は・・・損しています・・・か?
目次
ワードプレスでは既にテンプレートが用意されているので便利です。
下記のタグを埋め込むだけでページのURLを表示してくれますよ!
echo the_permalink();
問題はトップページ・・・。
ぷろめしで実験したところ、
ループ以外の部分(各記事出力部分以外)では最後に出力されるの記事URLが表示されます。
トップページはトップページのURL、そして下層ページは下層ページのURLを取得するテンプレートタグを色々探したのですが、私には見つけることが出来ませんでした・・・
知っている方!ご教授ください(`・ω・´)ゞ
もちろん、ここで諦めるわけにいけないので代替え案!
WordPressには条件分岐タグというものがあります。
今表示しているページが何に分類(ページの種類・例:アーカイブページ)されるのかを識別してくれるタグです。
今回の問題は、トップページ(正確には個別投稿ページと検索ページ以外)に起きていますのでトップページの場合は、トップページのURLを表示して個別投稿ページではそのページのURLを表示する!それ以外は何もしない!という感じで処理します。
ぷろめしでは、表示方法を「最新の投稿」としていますので
indexの識別には「is_front_page() 」を利用します。
<?php if(is_front_page() ){/*トップページの場合の処理*/?> <?php echo home_url(); ?> <?php }else is_single() { /*個別投稿ページの場合の処理*/?> <?php echo the_permalink();?> <?php }esle{ /*上以外のページの処理*/?> <?php }?>
これで、何とかなるはずです。一発でそのページのURLが表示できればいいのに…
専用のタグがあると思うんだけどなぁ~・・・(゜-゜)
続いて、PHPでページURLを取得する方法です!
これをやっちゃえば、WordPressでも面倒な上記コードも必要なくなります。
ただソースをいじると嫌な場合もあるので適宜判断して下さい!
<?php $page_url_get = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; ?>
これで、現在開いているページのURLは取得できます。
ですがぁ~
取得たくないページのURLとかありますよね?
だったら、いらない部分を削除しちゃえばいいんですよ|д゚)チラッ
対策は簡単です!いらない文字列を削除してしまえばいいのです!
<? $page_url_get = 'http://'.$_SERVER["HTTP_HOST"].$_SERVER['PHP_SELF']; $search_url = array('index.php','thanks.php'); $page_ok_url = str_replace($search_url,'',$page_url_get); ?>
上記の例では、取得したURLに「index.phpやthnaks.php」が存在したら削除!
というソースコードです。正確には置き換え関数なので「何もない」に置き換えです。
2行目は消したい文字列を配列化しています。
他に必要であればカンマで区切って追加して下さい!
これで、必要な素敵なページURLを取得できたと思います(`・ω・´)ゞ
取得したURLは煮るなり焼くなり好きにしてやって下さいm9( ゚д゚)