[wp]CPTUI+DownloadManagerについて

カスタム投稿にDownloadManagerのショートコードを使ったらエラーを吐いた
ちょっとテンパった

症状

以上をインストールした環境で、DownloadManagerでファイルを登録してショートコードを発行。
CPTUIで作ったカスタム投稿本文にショートコードを突っ込むと「更新に失敗しました。 返答が正しい JSON レスポンスではありません。」と出て保存できない。
通常の投稿記事、固定ページではショートコードは普通に機能してるのにカスタム投稿だけが何故か通らない。

DownloadManagerはパスワードが掛けられるのが魅力的。
WP上でBasic認証混ぜると後がめんどくさそうだし。
なんとしても使えるようにしたい。

原因

CPTUI(カスタム投稿?) + ブロックエディター + ショートコードは食い合わせが悪い。
もっと言えば、

<!-- wp:paragraph -->
<!-- /wp:paragraph -->

<!-- wp:shortcode -->
<!-- /wp:shortcode -->

こういうのが入ってる記事にショートコードをぶっこむとエラーを吐く。
カスタム投稿だけこの条件下にあると弾かれる。

理由はわからない。

【解決策1】ブロックエディタを使わない

記事内にコメントタグが一切無い状態を作れば保存できる。

だから、コードエディターでやるとか、クラシックの1ブロックだけにするとかで記事を書くことになる。
エディタの変更は他の編集画面にも反映されちゃって超絶めんどくさい、サイト管理者が複数いたら共有がめんどくさい、色々ほんとにめんどくさいので、だったら諦めようぜの気持ちが高まる。

【解決策2】カスタムフィールドに記載する

ショートコードとコメントタグが入ってる状態の本文が問題みたいで、カスタムフィールドにショートコードを入れてそっちで表示させるってのは大丈夫だった。

ショートコードをそのまま表示しても実行されない。
Advanced Custom Fieldsを入れてるのでそれ用の所作としてこんな感じで記載する。

echo apply_filters('the_content', get_post_meta($post->ID, 'カスタムフィールド名', true));

参考:Advanced custom fieldでショートコードを入力したい – WEB制作者の備忘録

これで表示すれば、本文をブロックエディターで作成しても問題ない。

まとめ

プラグインとWP本体の食い合わせが悪いのか、プラグイン同士の干渉なのか、いじってても原因はよくわかんないままで終わった。
今回に関してはダウンロードリンクの位置が決まってるのでカスタムフィールドで済んだんだけど、そうでないケースも出てくるかもしれない。
そうしたら都度縛りを用意して、できないんですよごめんねをやってかないといけない。

まあダメなもんをどうにかしようって時間を掛けるより、そっちでやってったり、別のを探したほうがいいのかもしんないですね。

コメント

タイトルとURLをコピーしました