LoginSignup
0
0

More than 5 years have passed since last update.

remove_post_type_supportの挙動が変わったメモ

Posted at

挙動が変わったタイミング

Wordpress4.9.3から4.9.8にアップデートしたタイミングで発生しました。

挙動が変わった関数

remove_post_type_support
wordpress管理画面でのいらない機能を無効にする関数です。

今回は以下のような指定をしていました。

remove_post_type_support.php

remove_post_type_support('post','editor');

エラーコード

ブラウザのコンソールで出ていたエラー

error.js

Uncaught ReferenceError: tb_show is not defined
    at HTMLInputElement.<anonymous> (example.js?ver=4.9.8:12)
    at HTMLInputElement.dispatch (load-scripts.php?c=1&load[]=jquery-core,jquery-migrate,utils,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,underscore,backbone,wp-util,&load[]=wp-backbone,media-models,moxiejs,plupload,wp-plupload&ver=4.9.8:3)
    at HTMLInputElement.r.handle (load-scripts.php?c=1&load[]=jquery-core,jquery-migrate,utils,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,underscore,backbone,wp-util,&load[]=wp-backbone,media-models,moxiejs,plupload,wp-plupload&ver=4.9.8:3)

ソースコード

jsでwordpressコア内のthickboxを使って
media-upload.phpを呼び出しています。

example.js

tb_show('', 'media-upload.php?type=image&TB_iframe=true');

具体的にどう挙動が変わったか

ユーザーによって動作するようphp側で指定していました。
以前は投稿者でも問題なく動作することができたのですが
4.9.8にアップロードしたタイミングで前述のエラーがでて
機能もしなくなりました。
編集者以上の権限だと今回のエラーは発動しません。

対応策

remove_post_type_support()は無効にしました。
いい対応ではないですが
取り急ぎ機能させることの優先順位が高かったのと
worpdress管理画面の調整でほかにも
cssで調整しなければならない部分があったので
cssのdisplay: noneで対応しました。

こちらで機能が復活したのは
remove_post_type_supportを実行すると
おそらくuserroleのupload_filesが
何らかの影響を受けて実行できないのでは?
と予想しています。

原因の予想

これらの状況からuser権限周りの
関数を眺めてみたのですがはっきりと突き止められていません。
remove_post_type_support()内を確認すると
$_wp_post_type_featuresのunsetのみなので
こちらの配列が変わっているのかもしれません。
どなたかこのあたり心当たりのある方
コメントいただけましたらうれしいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0