Site logo

Archived topic

Block Element Content Template for custom post type

5 replies · Started by Dominik on June 2, 2021

Viewing posts 1–6 of 6

Hi there,

as we have been using custom post types (with custom slugs) quit often in the last months, I was wondering if it is also possible to have a block element content template (like this: https://docs.generatepress.com/article/block-element-content-template/) also for the custom post type overview.

At the moment we are using WP show posts Pro – but it would be nice to use the new functionalities with the block elements.

Thanks and best wishes,
Dominik

Hi David,

thanks for the quick response!
What do you mean with "use GP theme templates"? I create a custom post type like

/* Referenzen Custom Post Type */
if ( ! function_exists('custom_post_type') ) {

// Register Custom Post Type
function custom_post_type() {

	$labels = array(
		'name'                  => _x( 'Referenzen', 'Post Type General Name', 'text_domain' ),
		'singular_name'         => _x( 'Referenz', 'Post Type Singular Name', 'text_domain' ),
		'menu_name'             => __( 'Referenzen', 'text_domain' ),
		'name_admin_bar'        => __( 'Referenzen', 'text_domain' ),
		'archives'              => __( 'Referenzen Archive', 'text_domain' ),
		'attributes'            => __( 'Referenzen Attribute', 'text_domain' ),
		'parent_item_colon'     => __( 'Eltern Referenzen', 'text_domain' ),
		'all_items'             => __( 'Alle Referenzen', 'text_domain' ),
		'add_new_item'          => __( 'Neue Referenz', 'text_domain' ),
		'add_new'               => __( 'Neue Referenz', 'text_domain' ),
		'new_item'              => __( 'Neue Referenz', 'text_domain' ),
		'edit_item'             => __( 'Referenz bearbeiten', 'text_domain' ),
		'update_item'           => __( 'Referenz aktualisieren', 'text_domain' ),
		'view_item'             => __( 'Zeige Referenz', 'text_domain' ),
		'view_items'            => __( 'Zeige Referenzen', 'text_domain' ),
		'search_items'          => __( 'Suche Referenz', 'text_domain' ),
		'not_found'             => __( 'Nicht gefunden', 'text_domain' ),
		'not_found_in_trash'    => __( 'Nicht im Papierkorb gefunden', 'text_domain' ),
		'featured_image'        => __( 'Featured Image', 'text_domain' ),
		'set_featured_image'    => __( 'Set featured image', 'text_domain' ),
		'remove_featured_image' => __( 'Remove featured image', 'text_domain' ),
		'use_featured_image'    => __( 'Use as featured image', 'text_domain' ),
		'insert_into_item'      => __( 'Insert into item', 'text_domain' ),
		'uploaded_to_this_item' => __( 'Uploaded to this item', 'text_domain' ),
		'items_list'            => __( 'Items list', 'text_domain' ),
		'items_list_navigation' => __( 'Items list navigation', 'text_domain' ),
		'filter_items_list'     => __( 'Filter items list', 'text_domain' ),
	);
	$rewrite = array(
		'slug'                  => 'referenzen',
		'with_front'            => false,
		'pages'                 => true,
		'feeds'                 => true,
	);
	$args = array(
		'label'                 => __( 'Referenz', 'text_domain' ),
		'description'           => __( 'Referenzen', 'text_domain' ),
		'labels'                => $labels,
        'show_in_rest' => true,
		'supports'              => array( 'title', 'editor', 'thumbnail', 'revisions', 'custom-fields', 'page-attributes', 'post-formats' ),
		'taxonomies'            => array( 'referenzen_taxonomy' ),
		'hierarchical'          => false,
		'public'                => true,
		'show_ui'               => true,
		'show_in_menu'          => true,
		'menu_position'         => 5,
		'menu_icon'             => 'dashicons-admin-home',
		'show_in_admin_bar'     => true,
		'show_in_nav_menus'     => true,
		'can_export'            => true,
		'has_archive'           => false,
		'exclude_from_search'   => false,
		'publicly_queryable'    => true,
		'query_var'             => 'post_type_referenz',
		'rewrite'               => $rewrite,
		'capability_type'       => 'page',
	);
	register_post_type( 'post_type_referenzen', $args );

}
add_action( 'init', 'custom_post_type', 0 );

}

and a content template...but where do I apply the template to?

So that code is registering the Custom Post Type.
Generally you would a PHP Template for the displaying that post type - see here for example on setting up a single templates:

https://docs.generatepress.com/article/setting-up-a-simple-custom-post-type/

For the archives to work you would need to:

1. Change this CPT arg 'has_archive' => false,to 'has_archive' => true,

2. Set up an archive PHP with your slug:

https://developer.wordpress.org/themes/template-files-section/custom-post-type-template-files/#custom-post-type-templates

You can simply copy the themes archive.php and save it as your archive-your-slug.php

Then you would be able to display an Archive page that could be rebuilt using the Block Element.

Hi David,

thanks for the great support, as always!
I will give it a try :)

You're welcome

This archived topic is closed to new replies.