WordPress で投稿者権限のユーザから Adsense広告タグやSNSタグ(Twitter/Instagram)が埋め込みできない問題

GoogleAdsense ブログの更新を外注様に依頼していたらある問題にぶち当たったので、その原因と解決策を備忘録として書いておきます。

GoogleAdsense ブログの記事作成や投稿を外注化している方は多くいらっしゃると思いますが、外注さんに記事投稿を依頼する時って、WordPress の投稿者権限を与えたユーザで作業してもらっていると思います。

私も先日まで、ある外注さんに投稿者権限を与えたユーザから記事投稿してもらっていました。


しかしある日、その外注さんに投稿依頼しているブログをブラウザから確認したところ・・・
GoogleAdsense の広告が正常に表示されていない!?
という問題が発生したんですね。

くそー!外注さんめ、記事内に適当な広告タグ貼りつけやがって!と思って、外注さんに確認をとってみたものの、そんなことはしていないとのこと。

よくよく調べてみると、どうやら 『一部の html タグは管理者権限でないと投稿できず、たとえば投稿者権限のみを持つユーザから投稿しようとした場合、勝手にタグが削除される。』という WordPress の仕様だったことが判明。

外注さん、疑ってごめんなさい。
僕の知識不足でした。。。


この WordPress の仕様によると、たとえば GoogleAdsense の広告タグだけでなく、Instagram や Twitter などの SNS 埋め込みタグまでもが改変されてしまうようですね。なんでこんな不便な仕様なんだ。。。



ひとまず調べてみたところ、結構簡単に解決できことが分かったので書いておきます。
結論から言うと、『投稿者権限に unfiltered_html 権限を追加する』だけです。

この unfiltered_html 権限は、投稿時に特定のコードをブロックしない権限のよう。

以下のサイトによると、『HTML マークアップ、またはページ、投稿、コメント内への JavaScriptコードの投稿を許可。
注:信頼できないユーザーに対してこのオプションを有効にした場合、悪意のあるコードや不正な形式のコードを投稿されるかもしれません。』 とのこと。

参照先 : ユーザーの種類と権限 unfiltered_html



この権限を投稿者権限に追加する方法は、function.php の末尾に、以下のコードを貼りつけて保存してやるだけです。

function.phsp に挿入することで、投稿者権限に タグ削除なしで投稿を可能にするコード


function.php は、WordPress 左メニューの「外観」→「テーマの編集」から編集することができます。編集前には、必ずバックアップを取得しておくことを忘れずに。


Warning: Use of undefined constant お名前 - assumed 'お名前' (this will throw an Error in a future version of PHP) in /home/ryoz001/ryoz01.com/public_html/wp-content/themes/refinepro/comments.php on line 31

Warning: Use of undefined constant メールアドレス(公開されません) - assumed 'メールアドレス(公開されません)' (this will throw an Error in a future version of PHP) in /home/ryoz001/ryoz01.com/public_html/wp-content/themes/refinepro/comments.php on line 33

Warning: Use of undefined constant ウェブサイト - assumed 'ウェブサイト' (this will throw an Error in a future version of PHP) in /home/ryoz001/ryoz01.com/public_html/wp-content/themes/refinepro/comments.php on line 35

コメントを残す