Thêm danh mục và thẻ vào trang

Trong bài viết này, tôi hướng dẫn cách thêm danh mục và thẻ vào các trang.

Đầu tiên đăng ký danh mục và gắn thẻ phân loại đối với loại “trang” theo initregister_taxonomy_for_object_type chức năng. Sau khi thêm mã này, hộp meta “Danh mục” và “Thẻ” sẽ xuất hiện trên Màn hình Thêm / Chỉnh sửa Trang tại Bảng điều khiển.

/** 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'); 
}

Thêm đánh dấu mở và đóng chân trang. genesis_page_entry_footer_markup_open đang tạo đánh dấu chân trang mở <footer class=“entry-footer”>genesis_page_entry_footer_markup_close đang tạo đánh dấu chân trang đóng </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>';
}

Bây giờ hãy hiển thị meta trang. Hàm genesis_post_meta đang thực thi cho loại “bài đăng”. Tôi đã tạo một hàm mới “genesis_page_meta” đang thực thi cho loại “trang”.

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;
}

Đây là đoạn mã đầy đủ. Bạn sẽ thêm đoạn mã sau vào tệp functions.php của mình.

//* 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;
}