In this article I am showing how to add the category and tags to pages.
First registering the category and tags taxonomy to “page” type by init
and register_taxonomy_for_object_type
functions. After adding this code “Categories” and “Tags” meta box will appear on Page Add/Edit Screen at Dashboard.
/** Enabling Categories and Tags Taxonomy for pages at Add/Edit Screen * * @since 1.0 * */ add_action('init', 'gd_register_category_tags_taxonomy_for_page'); function gd_register_category_tags_taxonomy_for_page() { register_taxonomy_for_object_type('post_tag', 'page'); register_taxonomy_for_object_type('category', 'page'); }
Adding opening and closing footer markup. genesis_page_entry_footer_markup_open is creating the opening footer markup <footer class="entry-footer">
and genesis_page_entry_footer_markup_close is making the closing footer markup </footer>
add_action( 'genesis_entry_footer', 'genesis_page_entry_footer_markup_open', 5 ); add_action( 'genesis_entry_footer', 'genesis_page_entry_footer_markup_close', 15 ); /** * Echo the opening structural markup for the entry footer. * * @since 2.0.0 * * @uses genesis_attr() Contextual attributes. */ function genesis_page_entry_footer_markup_open() { if ( 'page' === get_post_type() ) printf( '<footer %s>', genesis_attr( 'entry-footer' ) ); } /** * Echo the closing structural markup for the entry footer. * * @since 2.0.0 */ function genesis_page_entry_footer_markup_close() { if ( 'page' === get_post_type() ) echo '</footer>'; }
Now display the page meta. genesis_post_meta function is executing for “post” type. I created a new function “genesis_page_meta” which is executing for “page” type.
add_filter( 'genesis_page_meta', 'do_shortcode', 20 ); add_action( 'genesis_entry_footer', 'genesis_page_meta' ); /** * Echo the page meta after the page content. * * The page info makes use of a couple of shortcodes by default, and the whole output is filtered via * `genesis_post_meta` before echoing. * * @since 0.2.3 * * @uses genesis_markup() Contextual markup. * * @return null Return early if on a page */ function genesis_page_meta() { if ( 'post' === get_post_type() ) return; $output = genesis_markup( array( 'html5' => '<p %s>', 'xhtml' => '<div class="post-meta">', 'context' => 'entry-meta-after-content', 'echo' => false, ) ); $output .= apply_filters( 'genesis_page_meta', '[post_categories] [post_tags]' ); $output .= genesis_html5() ? '</p>' : '</div>'; echo $output; }
Here is the full snippet. You will add the following code in your functions.php file.
//* All codes will go to functions.php file /** * Displaying categories and tags at bottom of the pages * * @author Genesis Developer * @link http://genesisdeveloper.me * @since 1.0 * @version 1.0 **/ /** Enabling Categories and Tags options for pages * * @since 1.0 * */ add_action('init', 'gd_register_category_tags_taxonomy_for_page'); function gd_register_category_tags_taxonomy_for_page() { register_taxonomy_for_object_type('post_tag', 'page'); register_taxonomy_for_object_type('category', 'page'); } add_filter( 'genesis_page_meta', 'do_shortcode', 20 ); add_action( 'genesis_entry_footer', 'genesis_page_entry_footer_markup_open', 5 ); add_action( 'genesis_entry_footer', 'genesis_page_entry_footer_markup_close', 15 ); add_action( 'genesis_entry_footer', 'genesis_page_meta' ); /** * Echo the opening structural markup for the entry footer. * * @since 2.0.0 * * @uses genesis_attr() Contextual attributes. */ function genesis_page_entry_footer_markup_open() { if ( 'page' === get_post_type() ) printf( '<footer %s>', genesis_attr( 'entry-footer' ) ); } /** * Echo the closing structural markup for the entry footer. * * @since 2.0.0 */ function genesis_page_entry_footer_markup_close() { if ( 'page' === get_post_type() ) echo '</footer>'; } /** * Echo the page meta after the page content. * * The page info makes use of a couple of shortcodes by default, and * the whole output is filtered via 'genesis_page_meta' before echoing. * * @since 1.0.0 * * @uses genesis_markup() Contextual markup. * * @return null Return early if on a post */ function genesis_page_meta() { if ( 'post' === get_post_type() ) return; $output = genesis_markup( array( 'html5' => '<p %s>', 'xhtml' => '<div class="post-meta">', 'context' => 'entry-meta-after-content', 'echo' => false, ) ); $output .= apply_filters( 'genesis_page_meta', '[post_categories] [post_tags]' ); $output .= genesis_html5() ? '</p>' : '</div>'; echo $output; }