【カスタムHTML】編集画面ではプレビューできるが、公開画面でうまく表示されない
症状
WordPressのカスタムHTMLブロックに挿入した内容がプレビュー画面では表示されるのに、公開画面ではうまく表示できないという状態。
具体的には、もしもアフィリエイトの簡単リンクをカスタムHTMLで挿入した際に、コードがそのまま公開画面に表示されてしまうというもの。
原因
ユーザ権限が問題でした。
管理者権限がないユーザがカスタムHTMLによってHTMLのコードを入力すると、コードが変わってしまうことがあるようです。
セキュリティの観点から、私の場合は記事を編集するときは「投稿者」として記事を書いていましたが、これが問題の原因でした。「管理者」として試すと正常に動作しました。
改善策
2つあります。
1つ目は管理者として該当部分を編集すること。
2つ目はfunction.phpに以下のコードを追加することです。
// 投稿者にunfiltered_html権限を付与する
function allow_unfiltered_html_for_authors() {
if (current_user_can('許可する権限のタイプ') && !current_user_can('unfiltered_html')) {
$role = get_role('許可する権限のタイプ');
$role->add_cap('unfiltered_html');
}
}
add_action('init', 'allow_unfiltered_html_for_authors');
「許可する権限のタイプ」と書いてあるところに、実際に許可を与えたい権限を英語で追加してください。
権限の種類は、編集者(editor)か投稿者(author)だと思います。