Archive Control

Customize WordPress Archive Pages Like a Pro

Archive Control is a WordPress plugin I developed for my client projects over the years, and decided to share it on the public WordPress repository awhile ago.

It offers a quick easy way to customize archive pages (or pages with lists of posts like custom post types, categories, tags, or custom taxonomy terms). You can add editable content before or after the list, you can add a featured image. It also allows you to set up the order and pagination on these pages separately from the rest of your site. Taxonomies can share settings across all terms, or have specific settings per term. Administrators can change the settings, site editors can easily change the content.

  • Archive Titles: If your theme is using the_archive_title() function, then you can modify the your archive titles.
    • Remove Labels (Archive, Category, Tag, etc.) – Sometimes you just want to get rid of the annoying default words.
    • Custom Override – Allow an editor to write something custom for an archive headline.
  • Featured Image: You can allow for a custom featured image that applies to an archive page and have it added above the list automatically, or add it yourself via a theme function.
  • Content Before List: Give your site editors the ability to edit content directly before the archive list. You can have it automatically added, or use a theme function to give you more control over their placement (see the “Other Notes” tab).
  • Content After List: Give your site editors the ability to edit content directly after the archive list. You can have it automatically added, or use a theme function to give you more control over their placement (see the “Other Notes” tab).
  • Archive Order By: Instead of messing with code to change the order of an archive page, now you can do it in a few clicks.
    • Date Published
    • Title
    • Date Modified
    • Menu Order
    • Random
    • ID
    • Author
    • Post Slug
    • Post Type
    • Comment Count
    • Parent
    • Meta Value
    • Meta Value (Numeric)
    • No Order
  • Archive Order: In addition to the order by setting, you’ll also want to change the sort order direction.
    • Ascending
    • Descending
  • Archive Pagination: The pagination settings are easy to change without changing code.
    • Show Everything
    • Custom Posts Per Page
  • Term Edit Options: For categories, tags, and custom taxonomies, you can choose a few additional things.
    • Per Term Order & Pagination – Customize the order, and pagination on a per term basis.
    • Hide Description Field – You can choose to hide the term description field within the WordPress backend.
    • Hide Parent Field – On hierarchal taxonomies, you can choose to hide the parent field within the WordPress backend.

The plugin doesn’t add any CSS or javascript to the front end. The styling of the archive page is left completely up to you. This plugin should be friendly for power users and developers alike. You can use it entirely without changing theme code, or you can control the placement and functionality more exactly using the provided functions. See the “Other Notes” tab.

FUNCTIONS PROVIDED BY THE PLUGIN

the_archive_top_content( boolean $html = true )

Displays the top archive content on an archive page. Additional html markup can be removed by setting false.

archive_top_content( boolean $html = true, string $post_type_slug = null, string $term_id = null )

Displays the top archive content for any post type anywhere on the site. Additional html markup can be removed by setting false. Post type is automatic if on an archive page.

get_archive_top_content( string $post_type_slug = null, string $term_id = null )

Returns the top archive content for any post type anywhere on the site. Post type or term id is automatic if on an archive page.

the_archive_bottom_content( boolean $html = true )

Displays the bottom archive content on an archive page. Additional html markup can be removed by setting false.

archive_bottom_content( boolean $html = true, string $post_type_slug = null, string $term_id = null )

Displays the bottom archive content for any post type anywhere on the site. Additional html markup can be removed by setting false. Post type is automatic if on an archive page.

get_archive_bottom_content( string $post_type_slug = null, string $term_id = null )

Returns the top archive content for any post type anywhere on the site. Post type or term id is automatic if on an archive page.

the_archive_thumbnail( string $size = ‘large’, string $post_type_slug = null, string $term_id = null )

Display the archive thumbnail. Default size is large but first parameter can set any valid image size, or an array of width and height values in pixels (in that order). Post type is automatic if on an archive page.

get_archive_thumbnail_src( string $size = ‘large’, string $post_type_slug = null, string $term_id = null )

Returns the archive image url source. Default size is large but first parameter can set any valid image size, or an array of width and height values in pixels (in that order). Post type is automatic if on an archive page.

get_archive_thumbnail_id( string $post_type_slug = null, string $term_id = null )

Returns the archive thumbnail id. if you want to use other common WordPress attachment functions to retrieve data about the image. Post type or term id is automatic if on an archive page.