質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WYSIWYG

WYSIWYGとは、ディスプレイに表示されたものが見た通りの状態でプリンターなどに出力できる技術、およびその概念です。HTMLがなくても容易にWebページのレイアウトなどができます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

Q&A

解決済

1回答

886閲覧

Advanced Custom Field の Wysiwyg エディターの oEmbed 自動整形を無効にしたい

atpat

総合スコア11

WYSIWYG

WYSIWYGとは、ディスプレイに表示されたものが見た通りの状態でプリンターなどに出力できる技術、およびその概念です。HTMLがなくても容易にWebページのレイアウトなどができます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

0グッド

0クリップ

投稿2019/06/10 04:56

環境

  • Wordpress 5.2.1
  • カスタム投稿タイプ「myreport」にて、Advanced Custom Field (Pro) > Wysiwyg エディター使用中
  • Gutenbergは通常のPostのみに適用、他カスタム投稿タイプでは有効化せず

実現したいこと

Advanced Custom Field の Wysiwyg エディター で入力されたリンク (Aタグなしのプレーンテキスト) が出力される際、oEmbed 機能が働いて自動整形されるようですが、これを無効 (https://www... といったプレーンテキストのまま表示) にしたいです。

プラグイン開発元様にも問い合わせてみましたが、こちらでも何かご存じの方がいらっしゃればと思い、質問させていただきます。

状況が若干特殊かもしれませんが、実現のため、お知恵をお貸しいただけませんでしょうか。
どうぞよろしくお願いいたします。

試したこと

フィルターフック周辺はまだ勉強不足でして、とりあえず見つけたものをヒントに試したのですが、うまくいきませんでした。(Wordpressデフォルトのエディタではないので、「the_content」フィルターは使えない?気はしています)

PHP

1function partly_remove_oembed( $field ) { 2remove_filter('acf_the_content', array($wp_embed, 'autoembed'), 8); 3} 4add_action( 'acf/render_field', 'partly_remove_oembed', 10, 1 );

PHP

1remove_filter( 'acf_the_content', array( $GLOBALS['wp_embed'], 'autoembed' ), 8 );

また、プラグイン開発元にも相談し、助言頂いた通り以下を入れてみました。
確かにフッター部から wp-embed.js の自動出力は無くなったのですが、依然として oEmbed 自動整形が残っています。

PHP

1function my_deregister_scripts(){ 2 wp_dequeue_script( 'wp-embed' ); 3} 4add_action( 'wp_footer', 'my_deregister_scripts' );

さらに、データベースに oEmbed のキャッシュが残っていると聞き、「Optimize Database after Deleting Revisions」を使い「Clear oEmbed cache」を試しましたが、効果がありませんでした。

oEmbedが効いてしまっている
※引用相手先様のリンクが、「フロントページ」と、謎の灰色ボックスというレイアウトに変換されてしまっています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

wp_loaded アクションにフックさせてみてはいかがでしょうか?

php

1<?php 2 3function partly_remove_oembed() { 4 remove_filter( 'acf_the_content', array( $GLOBALS['wp_embed'], 'autoembed' ), 8 ); 5} 6 7add_action( 'wp_loaded', 'partly_remove_oembed' );

投稿2019/06/10 08:51

YukiYamashina

総合スコア1011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

atpat

2019/06/10 09:14

@YukiYamashina さん ご回答いただきありがとうございます。 なんと、即解決いたしました。お礼申し上げます。 アクションフックはまだまだ知識不足です…少しは自在に扱えるよう精進します。 (teratail のリプライってどうするんでしょう…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問