Site logo

[Support request] Changing the number of columns in CPT Archive

Home Forums Support [Support request] Changing the number of columns in CPT Archive

Home Forums Support Changing the number of columns in CPT Archive

Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • #1948150
    Dominik

    Hi there,

    I have tried to change the number of columns for one of my CPT archive pages, but it doesn’t work.
    Here is my code (as explained in the documentation: https://docs.generatepress.com/article/using-columns-in-the-blog/#adding-columns-to-your-custom-post-type)

    add_filter( 'generate_blog_columns','tu_referenz_columns' );
    function tu_referenz_columns( $columns ) {
        if ( is_post_type_archive( 'Referenz' ) ) {
            return true;
        }
    
        return $columns;
    }
    
    add_filter( 'generate_blog_get_column_count','tu_referenz_column_count' );
    function tu_referenz_column_count( $count ) {
        if ( is_post_type_archive( 'Referenz' ) ) {
            return 50;
        }
    
        return $count;
    }

    What could be wrong?

    Thanks in advance!

    #1948377
    David
    Staff
    Customer Support

    Hi there,

    try this method:

    add_filter( 'generate_blog_columns', function( $columns ) {
        if ( 'referenz' === get_post_type() && ! is_singular() ) {
            return true;
        }
    
        return $columns;
    } );
    
    add_filter( 'generate_blog_get_column_count','tu_referenz_column_count' );
    function tu_referenz_column_count( $count ) {
        if ( 'referenz' === get_post_type() ) {
            return 50;
        }
    
        return $count;
    }

    Make sure the CPT slug name is correct.

    #1949202
    Dominik

    Hi David,

    it seems not to work.
    I tried to use the Slug (referenzen) as well as the name of the post type (Referenz) – but still one row.

    		// Register Custom Post Type Referenzen
    			$labels = array(
    				'name'                  => _x( 'Referenz', '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 Referenz', '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 Referenz', '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'        => __( 'Beitragsbild', 'text_domain' ),
    				'set_featured_image'    => __( 'Beitragsbild festlegen', 'text_domain' ),
    				'remove_featured_image' => __( 'Beitragsbild löschen', 'text_domain' ),
    				'use_featured_image'    => __( 'Als Beitragsbild festlegen', 'text_domain' ),
    				'insert_into_item'      => __( 'Einfügen', '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'                 => __( 'Referenzen', 'text_domain' ),
    				'description'           => __( 'Referenzen', 'text_domain' ),
    				'labels'                => $labels,
    				'supports'              => array( 'title', 'editor', 'thumbnail', 'revisions', 'custom-fields', 'page-attributes', 'post-formats', 'excerpt' ),
    				'hierarchical'          => false,
    				'public'                => true,
    				'show_ui'               => true,
    				'show_in_menu'          => true,
    				'menu_position'         => 4,
    				'menu_icon'             => 'dashicons-clipboard',
    				'show_in_admin_bar'     => true,
    				'show_in_nav_menus'     => true,
    				'show_in_rest'          => true,
    				'can_export'            => true,
    				'has_archive'           => true,
    				'exclude_from_search'   => false,
    				'publicly_queryable'    => true,
    				'query_var'             => 'Referenz',
    				'rewrite'               => $rewrite,
    				'capability_type'       => 'page',
    			);
    			register_post_type( 'Referenz', $args );
    	}
    #1949827
    Ying
    Staff
    Customer Support

    Hi Manuel,

    David’s code should work, just tested on my side.

    How did you add the code?

    Let me know 🙂

    #1951720
    Dominik

    Hi Ying,

    strange.
    We added the CPT to a mu-plugins php and the columns code to functions.php

    #1951749
    Elvin
    Staff
    Customer Support

    Hi Manuel,

    Can you check and make sure it’s using the correct slug?

    I see that on your code you have register_post_type( 'Referenz', $args ); where Referenz is capitalized. I believe you should have this on lowercase.

    Reference – https://developer.wordpress.org/reference/functions/register_post_type/#parameters

    #1952948
    Dominik

    Hi Elvin,

    I changed the CPT to lower case, but still just one row on archive page:

    CPT Code:

    		// Register Custom Post Type Referenzen
    			$labels = array(
    				'name'                  => _x( 'Referenz', '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 Referenz', '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 Referenz', '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'        => __( 'Beitragsbild', 'text_domain' ),
    				'set_featured_image'    => __( 'Beitragsbild festlegen', 'text_domain' ),
    				'remove_featured_image' => __( 'Beitragsbild löschen', 'text_domain' ),
    				'use_featured_image'    => __( 'Als Beitragsbild festlegen', 'text_domain' ),
    				'insert_into_item'      => __( 'Einfügen', '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'                 => __( 'Referenzen', 'text_domain' ),
    				'description'           => __( 'Referenzen', 'text_domain' ),
    				'labels'                => $labels,
    				'supports'              => array( 'title', 'editor', 'thumbnail', 'revisions', 'custom-fields', 'page-attributes', 'post-formats', 'excerpt' ),
    				'hierarchical'          => false,
    				'public'                => true,
    				'show_ui'               => true,
    				'show_in_menu'          => true,
    				'menu_position'         => 4,
    				'menu_icon'             => 'dashicons-clipboard',
    				'show_in_admin_bar'     => true,
    				'show_in_nav_menus'     => true,
    				'show_in_rest'          => true,
    				'can_export'            => true,
    				'has_archive'           => true,
    				'exclude_from_search'   => false,
    				'publicly_queryable'    => true,
    				'query_var'             => 'referenzen',
    				'rewrite'               => $rewrite,
    				'capability_type'       => 'page',
    			);
    			register_post_type( 'referenzen', $args );

    And the code for 2 rows:

    add_filter( 'generate_blog_columns', function( $columns ) {
        if ( 'referenzen' === get_post_type() && ! is_singular() ) {
            return true;
        }
    
        return $columns;
    } );
    
    add_filter( 'generate_blog_get_column_count','tu_referenz_column_count' );
    function tu_referenz_column_count( $count ) {
        if ( 'referenzen' === get_post_type() ) {
            return 50;
        }
    
        return $count;
    }

    Do I need to change something in the customizer or somewhere else?

    #1953166
    David
    Staff
    Customer Support

    As a quick test, enable the Customizer > Layout > Blog >>> Columns. Do you see any change to the archive ?

    #1959489
    Dominik

    Yes – now it works!
    Do I always need to enable the Blog module to change the columns of a CPT archive manually?

    #1959626
    David
    Staff
    Customer Support

    Seems that way 🙂

    So if you want to disable the columns on the Blog you could write you filter like this:

    add_filter( 'generate_blog_columns', function( $columns ) {
        if ( 'referenzen' !== get_post_type() && ! is_singular() ) {
            return false;
        }
    
        return $columns;
    } );

    This should disable the columns everywhere apart from the referenzen post archive.

Viewing 10 posts - 1 through 10 (of 10 total)
  • You must be logged in to reply to this topic.