カスタム投稿タイプのクイック編集が無効にならない時に確認してみること【ワードプレス】

2020年12月3日
この記事は最終更新から3年以上経過しています。内容が古くなっている可能性があります。

ワードプレスの投稿一覧や固定ページ一覧にあるクイック編集機能。いちいち編集画面を開かずに済み便利なものです。ですがクライアント向けに作りこんでいった結果、不要になったり無い方が都合が良いケースが出る事もあります。

今回「特定のユーザーのタイプ(権限)」かつ「特定のカスタム投稿タイプ」でクイック編集機能を無効にしたいケースがありました。

しかし。。。いくらやってもカスタム投稿タイプだけクイック編集が無効にならない!
軽くハマってしまったので記事にしておこうと思います。

post_row_actions / page_row_actionsフックを使用する

クイック編集ボタンだけでなく、まわりの「編集」や「ゴミ箱」ボタンなども含めてカスタマイズできるフィルターフックが用意されています。

基本的に「投稿」の場合はpost_row_actionsフック。「固定ページ」の場合はpage_row_actionsフックを使用します。

投稿の場合は以下のコードでクイック編集が無効になります。

固定ページの場合はpage_row_actionsを使用しますので、最終行のフックの部分だけ差し替えて以下のコードでOKです。

と、以上が基本的な部分ですが、今回は「カスタム投稿タイプに対して効かない!」という状況でした。

カスタム投稿タイプの場合

私が少々ハマった原因は、カスタム投稿タイプの場合post_row_actionsを通らないケースがある事です。「カスタム投稿タイプなんだからpostだろ!」って決め込んでいました。。

カスタム投稿タイプの場合は、登録する時に階層を持たせている場合のみ、page_row_actionsを通るようです。

つまりregister_post_typeでカスタム投稿タイプを登録する時に、パラメータのhierarchicalをtrueにしている場合だけ、page_row_actionsを使用しないと効いてくれません。それ以外の場合は、post_row_actionsフックでOKです。

今回、私がやりたかった「管理者以外のユーザーの特定投稿タイプのクイック編集を無効にする」という場合のサンプルコードを載せておきます。

3行目の終わりの方の「news」という部分を、クイック編集を無効にしたいカスタム投稿タイプ名に変えれば、そのまま使用できます。

「管理者以外」という条件を変えたい場合は同じく3行目のcurrent_user_canのカッコ内を書き換えます。ユーザー権限の種類などは割愛しますので、CODEXなどでご確認ください。

先程も書きましたが、投稿タイプのhierarchicalがtrueの場合は、最終行のpost_row_actionsをpage_row_actionsに書き換えましょう。

最後に

カスタム投稿タイプに対して…と考えると、post_row_actionsフックを使用したくなります。

ですが、カスタム投稿タイプに階層を持たせている場合は、page_row_actionsフックになるんですね。私の頭の中はpost_row_actionsフック1本に絞られてしまったので、この辺で少々ハマってしまいました。

という事で、カスタム投稿タイプのクイック編集が上手く無効にできない!という時は、投稿タイプのhierarchicalを確認してみましょう。ACFなどのプラグインでも、たいがいhierarchicalの設定はありますので、プラグインで登録している場合は設定画面で確認できます。

register_post_typeで、hierarchicalをtrueにしてある場合はpage_row_actionsフックを使用すればOKです。

関連のある記事

オリジナルのユーザー権限グループのユーザーが「作成者」に表示されない場合の対処方法【ワードプレス】

オリジナルのユーザー権限グループのユーザーが「作成者」に表示されない場合の対処方法【ワードプレス】

記事を読む

親メニューなどをリンク無しに出来ない時の解決方法【ワードプレス】

親メニューなどをリンク無しに出来ない時の解決方法【ワードプレス】

記事を読む

ワードプレスで外部CSSやjsの読み込みコードからtype属性を消す方法

ワードプレスで外部CSSやjsの読み込みコードからtype属性を消す方法

記事を読む

ショートコードでWarning: Illegal string offsetエラーが出る時の解決策

ショートコードでWarning: Illegal string offsetエラーが出る時の解決策【ワードプレス】

記事を読む

抜粋の末尾に付く&ltとか&nbsとか&gtやらを削除する方法【ワードプレス】

抜粋の末尾に付く&ltとか&nbsとか&gtやらを削除する方法【ワードプレス】

記事を読む

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

目次へ