【WordPress】今プレビュー中であることをJavascript側で取得したい
問題
・GoogleAnalyticsを使っていますが、下書き中の操作など解析したくないです。
・下書き中は、ソーシャル系ボタンは表示しなくていいです。
プレビュー中かどうか取得できれば、Javascript側で何とかするんだけど。
答え
プレビューだと、以下のように、URLに preview=true
が付いてくる。
https://www.softel.co.jp/blogs/tech/?p=3401&preview=true
https://www.softel.co.jp/blogs/tech/archives/3401?preview=true&preview_id=3401&preview_nonce=1366dd1d4a
クエリ文字列は window.location.search
で取得できる。
preview=true
の位置が、予約投稿時のプレビュー、下書き時のプレビューなどで一定しないので、以下で判断してみた。
if (!/(\?|&)preview=true($|&)/.test(window.location.search)) { //プレビュー中ではないときの処理 }
if (/(\?|&)preview=true($|&)/.test(window.location.search)) { //プレビュー中の処理 }
簡易版
引数が ?pppreview=trueee のような場合でもプレビュー中だと判断してしまうが、それで問題なければ。
if (window.location.search.indexOf('preview=true') != -1) { //プレビュー中ではないときの処理 }
コメント