0

I have created a custom post type called 'articles' with all the same capabilities as the general post type & I am using the same template to display both archives.

The blog page that uses the built in posts shows posted on and by,

Seen here

The custom post type page omits this info

Seen here

I am lost at this point and don't know what I need to do that's extra, since its using the same code to display both pages.

This is post type function:

function post_type_articles() {

$labels = array(
    'name'                  => _x( 'Articles', 'Post Type General Name', 'text_domain' ),
    'singular_name'         => _x( 'Article', 'Post Type Singular Name', 'text_domain' ),
    'menu_name'             => __( 'Articles', 'text_domain' ),
    'name_admin_bar'        => __( 'Article', 'text_domain' ),
    'archives'              => __( 'Article Archives', 'text_domain' ),
    'attributes'            => __( 'Article Attributes', 'text_domain' ),
    'parent_item_colon'     => __( 'Parent Article', 'text_domain' ),
    'all_items'             => __( 'All Articles', 'text_domain' ),
    'add_new_item'          => __( 'Add New Article', 'text_domain' ),
    'add_new'               => __( 'Add New Article', 'text_domain' ),
    'new_item'              => __( 'New Article', 'text_domain' ),
    'edit_item'             => __( 'Edit Article', 'text_domain' ),
    'update_item'           => __( 'Update Article', 'text_domain' ),
    'view_item'             => __( 'View Article', 'text_domain' ),
    'view_items'            => __( 'View Article', 'text_domain' ),
    'search_items'          => __( 'Search Articles', 'text_domain' ),
    'not_found'             => __( 'Not found', 'text_domain' ),
    'not_found_in_trash'    => __( 'Not found in Trash', '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 article', 'text_domain' ),
    'uploaded_to_this_item' => __( 'Uploaded to this article', 'text_domain' ),
    'items_list'            => __( 'Articles list', 'text_domain' ),
    'items_list_navigation' => __( 'Articles list navigation', 'text_domain' ),
    'filter_items_list'     => __( 'Filter articles list', 'text_domain' ),
);
$args = array(
    'label'                 => __( 'Article', 'text_domain' ),
    'description'           => __( 'Article Description', 'text_domain' ),
    'labels'                => $labels,
    'supports'              => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'trackbacks', 'revisions', 'custom-fields', 'page-attributes', 'post-formats', ),
    'taxonomies'            => array( 'category', 'post_tag' ),
    'hierarchical'          => false,
    'public'                => true,
    'rewrite'            => array( 'slug' => 'articles' ),
    'show_ui'               => true,
    'show_in_menu'          => true,
    'menu_position'         => 5,
    'menu_icon'             => 'dashicons-format-aside',
    'show_in_admin_bar'     => true,
    'show_in_nav_menus'     => true,
    'can_export'            => true,
    'has_archive'           => 'articles',
    'exclude_from_search'   => false,
    'publicly_queryable'    => true,
    'capability_type'       => 'post',
);
register_post_type( 'articles', $args );

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

and here is the loop

<header class="entry-header">
    <?php
    if ( is_singular() ) :
        the_title( '<h1 class="entry-title">', '</h1>' );
    else :
        the_title( '<h2 class="entry-title archive-header"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>' );
    endif;

    if ( 'post' === get_post_type() ) : ?>
    <div class="entry-meta">
        <?php factorypress_posted_on(); ?>
    </div><!-- .entry-meta -->
    <?php
    endif; ?>
</header><!-- .entry-header -->

<div class="entry-content">
<div class="row">
<div class="col-sm-3">
    <?php the_post_thumbnail('large', array('class' => 'img-responsive')); ?>
</div><!-- /.col-sm-2 -->
<div class="col-sm-9">
    <?php
        the_content( 'more', sprintf(
            wp_kses(
                /* translators: %s: Name of current post. Only visible to screen readers */
                __( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'factorypress' ),
                array(
                    'span' => array(
                        'class' => array(),
                    ),
                )
            ),
            get_the_title()
        ) );

        wp_link_pages( array(
            'before' => '<div class="page-links">' . esc_html__( 'Pages:', 'factorypress' ),
            'after'  => '</div>',
        ) );
    ?>
</div><!-- /.col-sm-10 -->

    </div><!-- /.row -->
</div><!-- .entry-content -->

<footer class="entry-footer">
    <?php factorypress_entry_footer(); ?>
</footer><!-- .entry-footer -->

Thanks in advance if you can answer this for me!

0

If you're using a custom archive template I think you should add the conditional is_post_type_archive()

if ( 'post' === get_post_type() || is_post_type_archive( array( 'articles' ) ) );
0

This specific line in your code prevents the execution of the factorypress_posted_on method that displays the post metadata.

if ( 'post' === get_post_type() ) : ?>

That only validates if the post type is post not your custom post type articles. I think you should replace that particular line of code with this one:

if ( 'post' === get_post_type() || 'articles' === get_post_type()) : ?>
  • Thank you - This has fixed my other issue too - which was the categories not showing custom posts in the archive pages! – Andi Wilko Jun 26 '17 at 15:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.