Bird
Raised Fist0
Wordpressframework~5 mins

Custom post type arguments in Wordpress - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the 'labels' argument in registering a custom post type?
The 'labels' argument defines the text strings used in the WordPress admin area for the custom post type, like menu names and button labels, making the interface clear and user-friendly.
Click to reveal answer
beginner
What does setting 'public' => true do in a custom post type?
Setting 'public' to true makes the custom post type visible on the front end and accessible in the admin UI, allowing users to view and manage the content.
Click to reveal answer
intermediate
Explain the 'supports' argument in custom post type registration.
The 'supports' argument lists features the custom post type supports, like 'title', 'editor', 'thumbnail', enabling those editing options in the admin screen.
Click to reveal answer
intermediate
What is the effect of setting 'has_archive' => true in custom post type arguments?
Setting 'has_archive' to true enables an archive page for the custom post type, where all posts of that type are listed automatically.
Click to reveal answer
advanced
How does the 'rewrite' argument affect a custom post type?
The 'rewrite' argument controls the URL structure (permalinks) for the custom post type, allowing customization of slugs and URL patterns.
Click to reveal answer
Which argument controls if a custom post type appears in the WordPress admin menu?
A'has_archive'
B'public'
C'supports'
D'show_in_menu'
What does setting 'exclude_from_search' => true do?
AHides the post type from admin
BIncludes the post type in search results
CExcludes the post type from search results
DDisables permalinks for the post type
Which argument lets you add support for featured images in a custom post type?
A'thumbnail'
B'supports' with 'thumbnail'
C'has_archive'
D'public'
If you want a custom post type to have its own archive page, which argument should be true?
A'has_archive'
B'public'
C'show_ui'
D'rewrite'
What does the 'capability_type' argument define?
AThe user permissions needed to manage the post type
BThe labels shown in admin
CThe URL slug for the post type
DWhether the post type is public
Describe the key arguments you would set when registering a custom post type to make it public, support titles and editors, and have an archive page.
Think about visibility, editing features, and archive availability.
You got /4 concepts.
    Explain how the 'rewrite' argument affects the URLs of a custom post type and why you might want to customize it.
    Consider how URLs appear to users and search engines.
    You got /5 concepts.

      Practice

      (1/5)
      1. Which argument in register_post_type controls whether the custom post type appears in the WordPress admin menu?
      easy
      A. public
      B. menu_position
      C. supports
      D. rewrite

      Solution

      1. Step 1: Understand the role of menu_position

        The menu_position argument sets the location of the custom post type in the WordPress admin menu.
      2. Step 2: Compare with other arguments

        public controls visibility on front-end, supports defines features, rewrite controls URL structure.
      3. Final Answer:

        menu_position -> Option B
      4. Quick Check:

        Admin menu location = menu_position [OK]
      Hint: Menu location is set by menu_position argument [OK]
      Common Mistakes:
      • Confusing public with menu visibility
      • Thinking supports controls menu
      • Assuming rewrite affects admin menu
      2. Which of the following is the correct way to set a custom post type to be publicly queryable in register_post_type arguments?
      easy
      A. "public_queryable" => true
      B. "publiclyqueryable" => true
      C. "public_queryable" => "true"
      D. "publicly_queryable" => true

      Solution

      1. Step 1: Recall the exact argument name

        The correct argument is publicly_queryable with an 'ly' and underscore.
      2. Step 2: Check value type and spelling

        The value must be boolean true, not string, and spelling must be exact.
      3. Final Answer:

        "publicly_queryable" => true -> Option D
      4. Quick Check:

        Correct spelling and boolean value = publicly_queryable true [OK]
      Hint: Remember 'publicly_queryable' with 'ly' and boolean true [OK]
      Common Mistakes:
      • Misspelling argument name
      • Using string "true" instead of boolean true
      • Omitting underscore
      3. Given this code snippet, what will be the value of $args['has_archive'] after registration?
      $args = [
        'public' => true,
        'has_archive' => false,
        'rewrite' => ['slug' => 'books']
      ];
      register_post_type('book', $args);
      medium
      A. true
      B. null
      C. false
      D. array with slug 'books'

      Solution

      1. Step 1: Check the has_archive argument value

        It is explicitly set to false in the array.
      2. Step 2: Understand effect of rewrite on has_archive

        The rewrite argument does not override has_archive setting.
      3. Final Answer:

        false -> Option C
      4. Quick Check:

        Explicit has_archive false remains false [OK]
      Hint: Explicit has_archive false stays false despite rewrite [OK]
      Common Mistakes:
      • Assuming rewrite slug enables archive
      • Confusing has_archive with rewrite
      • Thinking default true overrides false
      4. Identify the error in this register_post_type argument array:
      $args = [
        'public' => 'yes',
        'supports' => 'title,editor',
        'menu_icon' => 'dashicons-book'
      ];
      register_post_type('book', $args);
      medium
      A. 'supports' should be an array, not a comma-separated string
      B. 'public' should be boolean true, not string 'yes'
      C. 'menu_icon' value is invalid, should be a URL
      D. No errors, code is correct

      Solution

      1. Step 1: Check the supports argument type

        supports must be an array of features, not a string.
      2. Step 2: Verify other arguments

        public accepts boolean or string 'true'/'false', 'yes' is invalid but PHP may coerce; menu_icon accepts dashicons slug.
      3. Final Answer:

        'supports' should be an array, not a comma-separated string -> Option A
      4. Quick Check:

        Supports must be array, not string [OK]
      Hint: Supports argument must be an array, not a string [OK]
      Common Mistakes:
      • Passing supports as string instead of array
      • Using invalid string for public
      • Thinking menu_icon needs URL
      5. You want to create a custom post type 'movie' that is public, supports title and editor, has an archive page at '/films', and appears below Posts in the admin menu. Which $args array is correct?
      hard
      A. { 'public' => true, 'supports' => ['title', 'editor'], 'has_archive' => true, 'rewrite' => ['slug' => 'films'], 'menu_position' => 5 }
      B. { 'public' => true, 'supports' => ['title', 'editor'], 'has_archive' => 'films', 'rewrite' => true, 'menu_position' => 20 }
      C. { 'public' => true, 'supports' => 'title,editor', 'has_archive' => true, 'rewrite' => ['slug' => 'movies'], 'menu_position' => 5 }
      D. { 'public' => false, 'supports' => ['title', 'editor'], 'has_archive' => true, 'rewrite' => ['slug' => 'films'], 'menu_position' => 5 }

      Solution

      1. Step 1: Check public visibility and supports

        { 'public' => true, 'supports' => ['title', 'editor'], 'has_archive' => true, 'rewrite' => ['slug' => 'films'], 'menu_position' => 5 } sets public to true and supports as an array with 'title' and 'editor', which is correct.
      2. Step 2: Verify archive and rewrite slug

        has_archive is true and rewrite slug is 'films' to get archive at '/films'.
      3. Step 3: Confirm menu position

        menu_position 5 places it below Posts in admin menu.
      4. Final Answer:

        Option A matches all requirements correctly -> Option A
      5. Quick Check:

        Public, supports array, archive slug, menu position 5 = { 'public' => true, 'supports' => ['title', 'editor'], 'has_archive' => true, 'rewrite' => ['slug' => 'films'], 'menu_position' => 5 } [OK]
      Hint: Use array for supports, boolean for public, correct slug in rewrite [OK]
      Common Mistakes:
      • Passing supports as string instead of array
      • Setting public false when it should be true
      • Incorrect has_archive or rewrite values
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard