web-dev-qa-db-ja.com

階層型ページの深さ(カスタム投稿タイプの場合)を子供のみに制限する方法

ページの作成を制限する方法はありますか (カスタム投稿タイプ) 特定の深さに制限 - レベル1(0 =親、1 =子、2 =孫、など)

たとえば、スラッグ '/ summer'を使用して 'Summer'レシピページ(カスタム投稿タイプ:Recipe)を作成しましょう。スラッグ '/ summer/pie'を使って 'Pie'ページ( 'Summer'の子)を作成しましょう。ユーザーが 'Pie'または他のサブページの子であるページを作成しないようにします。

  • example.com/summer - > GOOD
  • example.com/summer/pie - > GOOD
  • example.com/summer/pie/Apple - > BAD
  • example.com/summer/pie/blackberry - > BAD

ありがとう。

6
41st
function my_test($a) {
  $a['depth'] = 1;
  return $a;
}
add_action('page_attributes_dropdown_pages_args','my_test');

それをテーマのfunction.phpかプラグインに入れてください。

9
s_ha_dum

次のフィルタは、ページ属性ドロップダウン(メイン編集画面およびクイック編集)の最上位カスタム投稿タイプのアイテムのみを表示します。 'my_custom_post_type' をカスタムの投稿タイプ名に置き換えます。

function my_test($args) {
    global $post_type_object;

    if ( $post_type_object->name == 'my_custom_post_type') {
        $args['depth'] = 1;
    }
    return $args;
}
add_filter('page_attributes_dropdown_pages_args','my_test');
add_filter('quick_edit_dropdown_pages_args', 'my_test');
6
groucho75