B2主題自帶了一個(gè)簡(jiǎn)單文章SEO功能,允許設(shè)置文章的SEO標(biāo)題、關(guān)鍵詞和描述,如下圖所示:

默認(rèn)情況下,B2主題的這個(gè)功能只對(duì)某些文章類型生效,我們?cè)?b2/Modules/Settings/Seo.php 文件中可以看到如下代碼:
$seo_meta = new_cmb2_box(array(
'id' => 'single_post_seo_side_metabox',
'title' => __( 'SEO設(shè)置', 'b2' ),
'object_types' => array( 'post','shop','page','document','links'), // Post type
'context' => 'side',
'priority' => 'high',
'show_names' => true,
));
在代碼的第4行就是設(shè)置在哪些文章類型顯示SEO設(shè)置,我們看到,B2 3.8.3 版本及以下版本的主題中,并沒有添加過濾鉤子。
所以,我們需要修改上面代碼的第4行,添加一個(gè)鉤子b2_single_seo_post_type,修改后的代碼為:
$seo_meta = new_cmb2_box(array(
'id' => 'single_post_seo_side_metabox',
'title' => __( 'SEO設(shè)置', 'b2' ),
'object_types' => apply_filters('b2_single_seo_post_type', array( 'post','shop','page','document','links')), // Post type
'context' => 'side',
'priority' => 'high',
'show_names' => true,
));
以上添加鉤子的代碼,倡萌已經(jīng)提交給B2作者春哥,2022年9月12日以后發(fā)布的B2版本會(huì)默認(rèn)包含。
有了鉤子以后,我們就可以通過下面的代碼片段修改文章類型,將代碼添加到子主題的 functions.php 即可:
/*
* 將B2的SEO功能添加自定義文章類型
* http://www.ydqwiac.cn/docs/b2/b2-dev/single-seo-post-type
*/
function b2child_single_seo_post_type( $post_types ) {
$post_types = array('post','shop','page','document','links','newsflashes');
return $post_types;
}
add_filter('b2_single_seo_post_type', 'b2child_single_seo_post_type' );
注意看代碼的第7行的數(shù)組array()的值,就是你希望顯示的文章類型數(shù)組,在上面的的樣例中,我們添加了【快訊newsflashes】這個(gè)類型。
如果你要查看文章類型的值,可以在后臺(tái)點(diǎn)擊對(duì)應(yīng)文章類型導(dǎo)航菜單下的第一個(gè)子菜單,比如頁面-全部頁面,就可以在網(wǎng)址中看到 /wp-admin/edit.php?post_type=page,其中 post_type= 后面的值,就是文章類型的值了,比如頁面就是 page。



