大家都知道,WordPress自帶的分類目錄是設置是很簡單的,只能設置標題和上下級關系,不能實現標題自定義,添加關鍵字和描述信息。
有時候想對分類目錄做一些seo關鍵字優化也是無從下手,雖然有很多插件可以實現,但是你懂的,插件安裝太多,網站的速度會被拖慢,所以能不用插件的時候我都不用插件,好在wordpress擴展性很強,我們可以通過擴展來實現。
小伙伴們可以查看我的博客分類目錄的標題、關鍵字和描述信息都是自定義的。
后台效果圖就這樣,下面來說說具體的實現。
第一步 新建seocategory.php文件
新建一個新建seocategory.php文件,將其放入你的主題文件夾內。
<?php add_action('edit_category_form_fields', 'category_function'); function category_function(){ if(isset($_GET['action']) && $_GET['action'] == 'edit') $value = get_option('cat_set_' . $_GET['tag_ID']); $title = 'cat_title'; $keywords = 'cat_keywords'; $description = 'cat_description'; ?> <table class="form-table"></table> <h2>自定義SEO信息</h2> <table class="form-table"> <tbody> <tr class="form-field"> <th scope="row" valign="top"><label for="<?php echo $title ?>">標題</label></th> <td><input name="<?php echo $title ?>" id="<?php echo $title ?>" type="text" value="<?php echo esc_attr(stripslashes($value['title'])); ?>"><p class="description">默認調用分類名稱作為Head中Title信息。</p> </td> </tr> <tr class="form-field"> <th scope="row" valign="top"><label for="<?php echo $keywords; ?>">關鍵詞</label></th> <td><input name="<?php echo $keywords; ?>" id="<?php echo $keywords; ?>" type="text" value="<?php echo $value['keywords']; ?>"><p class="description">多個關鍵詞用小寫逗號“,”分隔開;默認調用分類名稱作為Head中KeyWords信息。</p> </td> </tr> <tr class="form-field"> <th scope="row" valign="top"><label for="<?php echo $description; ?>">描述</label></th> <td><textarea name="<?php echo $description; ?>" id="<?php echo $description; ?>" rows="3" cols="30"><?php echo stripslashes($value['description']); ?></textarea><p class="description">若未設置,將顯示為“關於‘某某’分類下的所有文章。”作為Head中Description信息。</p> </td> </tr> </tbody> </table> <?php } add_action('edit_category', 'save_category_function'); function save_category_function(){ if(isset($_POST['action']) && isset($_POST['taxonomy']) && $_POST['action'] == 'editedtag' && $_POST['taxonomy'] == 'category'){ update_option('cat_set_' . $_POST['tag_ID'], array('title' => $_POST['cat_title'], 'description' => $_POST['cat_description'], 'keywords' => $_POST['cat_keywords'], 'template' => $_POST['cat_template'], 'orderby' => $_POST['cat_orderby'], 'per_page' => $_POST['cat_per_page'],)); } }; ?>
第二步 引入到functions.php
將seocategory.php引用到你主題的functions.php 文件中
include("seocategory.php");
第三步 前台調用
后台把相關信息添加好后,就需要到模板進行調用,使用方法如下。
標題獲取
if( is_category() ) { $cat_id = get_query_var('cat'); $val = get_option("cat_set_$cat_id"); if(!Empty($val) && $val['title']!=''){ $title = $val['title'].' - '.get_bloginfo('name'); }else{ $title = single_cat_title('', false).' - '.get_bloginfo('name'); } }
關鍵字獲取
if( is_category() ) { $cat_id = get_query_var('cat'); $val = get_option("cat_set_$cat_id"); if(!Empty($val) && $val['keywords']!=''){ $keywords = $val['keywords']; }else{ $keywords = single_cat_title('', false); } }
描述獲取
if( is_category() ) { $cat_id = get_query_var('cat'); $val = get_option("cat_set_$cat_id"); if(!Empty($val) && $val['description']!=''){ $description= $val['description']; }else{ $description = $blog_name . "'" . single_cat_title('', false) . "'"; } }
當然,每個主題有不同的優化方式,上面只是介紹了獲取方式,你還需要把它插入到你的主題中去,每個主題對標題,關鍵字,描述有不同的寫法,你需要做的就是把它整合到你的主題中去,下面是我所使用主題示例,供您參考。
//functions.php 文件添加到wp_head(); //標題 function page_title(){ global $page, $paged; $title = ''; if(get_option('themes_fo2_seo_ht') && get_option('themes_fo2_seo_on') && ( is_home() || is_front_page())){ $title = get_option('themes_fo2_seo_ht'); } elseif ( is_category() ) { $cat_id = get_query_var('cat'); $val = get_option("cat_set_$cat_id"); if(!Empty($val) && $val['title']!=''){ $title = $val['title'].' - '.get_bloginfo('name'); }else{ $title = single_cat_title('', false).' - '.get_bloginfo('name'); } }else{ $title = trim( wp_title('', false) ).' - '.get_bloginfo('name'); } // Add a page number if necessary: if ( $paged >= 2 || $page >= 2 ) $title .= ' - ' . sprintf( __( 'Page %s', 'frontopen' ), max( $paged, $page ) ); echo ""; } add_action('wp_head','page_title'); //關鍵字 function page_keywords() { global $s, $post; $keywords = ''; if ( is_single() ) { if ( get_the_tags( $post->ID ) ) { foreach ( get_the_tags( $post->ID ) as $key => $tag ){ $keywordsArr[$key]= $tag->name; } $keywords = implode(',',$keywordsArr); }else{ $keywords = trim( wp_title('', false) ); } //foreach ( get_the_category( $post->ID ) as $category ) $keywords .= $category->cat_name . ', '; //$keywords = substr_replace( $keywords , '' , -2); } elseif ( is_home () ) { $keywords = get_option('themes_fo2_seo_hk'); } elseif ( is_tag() ) { $keywords = single_tag_title('', false); //} elseif ( is_category() ) { $keywords = single_cat_title('', false); } elseif ( is_category() ) { $cat_id = get_query_var('cat'); $val = get_option("cat_set_$cat_id"); if(!Empty($val) && $val['keywords']!=''){ $keywords = $val['keywords']; }else{ $keywords = single_cat_title('', false); } } elseif ( is_search() ) { $keywords = esc_html( $s, 1 ); } else { $keywords = trim( wp_title('', false) ); } if ( $keywords ) { echo "\n"; } } add_action('wp_head','page_keywords'); //網站描述 function page_description() { global $s, $post; $description = ''; $blog_name = get_bloginfo('name'); if ( is_singular() ) { if( !empty( $post->post_excerpt ) ) { $text = $post->post_excerpt; } else { $text = $post->post_content; } $description = trim( str_replace( array( "\r\n", "\r", "\n", " ", " "), " ", str_replace( "\"", "'", strip_tags( $text ) ) ) ); if ( !( $description ) ) $description = $blog_name . "-" . trim( wp_title('', false) ); } elseif ( is_home () ) { $description = get_option('themes_fo2_seo_hd'); } elseif ( is_tag() ) { $description = $blog_name . "'" . single_tag_title('', false) . "'"; //} elseif ( is_category() ) { $description = $blog_name . "'" . single_cat_title('', false) . "'"; } elseif ( is_category() ) { $cat_id = get_query_var('cat'); $val = get_option("cat_set_$cat_id"); if(!Empty($val) && $val['description']!=''){ $description = $val['description']; }else{ $description = $blog_name . "'" . single_cat_title('', false) . "'"; } } elseif ( is_archive() ) { $description = $blog_name . "'" . trim( wp_title('', false) ) . "'"; } elseif ( is_search() ) { $description = $blog_name . ": '" . esc_html( $s, 1 ) . "' 的搜索結果"; } else { $description = $blog_name . "'" . trim( wp_title('', false) ) . "'"; } $description = mb_substr( $description, 0, 220, 'utf-8' ); echo "\n"; } add_action('wp_head','page_description');
這是我實現的為WordPress分類目錄做優化,添加seo標題、關鍵字和描述信息的一個方法,小伙伴們如果您有更好的方法,或者此方法的有誤,歡迎大家指正。
轉載地址:http://www.devdo.net/wordpress-add-title-key-description.html