給wordpress添加關鍵詞與描述

???????Wordpress網站的關鍵字及網頁描述關系網站對搜索引擎的友好程度,如果自己手動加顯然太折騰了,那如何讓WordPress博客自動為每篇文章自動關鍵字及網頁描述。每篇文章的內容不同,我們該如何讓wordpress自動添加文章描述和關鍵詞呢?下面就讓我們來看看如何給wordpress自動添加文章描述和關鍵詞。

重構:首頁,分類頁,文章頁,單頁,搜索頁面,標簽頁,專題,快訊頁,作者頁,404等

第一種:

在你主題的functions.PHP文件添加以下代碼,各個代碼的功能解析如下:

add_action ( 'wp_head', 'wp_keywords' ,1 ); // 添加關鍵字
add_action ( 'wp_head', 'wp_description' ,1 ); // 添加頁面描述/**+----------------------------------------------------------* 站點關鍵字+----------------------------------------------------------* @return string+----------------------------------------------------------*/
function wp_keywords() {global $s, $post;$keywords = '';if (is_single ()) {  //如果是文章頁,關鍵詞則是:標簽+分類IDif (get_the_tags ( $post->ID )) {foreach ( get_the_tags ( $post->ID ) as $tag )$keywords .= $tag->name . ', ';}foreach ( get_the_category ( $post->ID ) as $category )$keywords .= $category->cat_name . ', ';$keywords = substr_replace ( $keywords, '', - 2 );} elseif (is_home ()) {$keywords = '我是主頁關鍵詞';  //主頁關鍵詞設置} elseif (is_tag ()) {  //標簽頁關鍵詞設置$keywords = single_tag_title ( '', false );} elseif (is_category ()) {//分類頁關鍵詞設置$keywords = single_cat_title ( '', false );} elseif (is_search ()) {//搜索頁關鍵詞設置$keywords = esc_HTML ( $s, 1 );} else {//默認頁關鍵詞設置$keywords = trim ( wp_title ( '', false ) );}if ($keywords) {  //輸出關鍵詞echo "<meta name=\"keywords\" content=\"$keywords\" />\n";}
}/**+----------------------------------------------------------* 站點描述+----------------------------------------------------------* @return string+----------------------------------------------------------*/
function wp_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 = $blog_name . "-" . get_bloginfo ( 'description' ) .'首頁要顯示的描述'; // 首頁要自己加} elseif (is_tag ()) {//標簽頁顯示描述設置$description = $blog_name . "有關 '" . single_tag_title ( '', false ) . "' 的文章";} elseif (is_category ()) {//分類頁顯示描述設置$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 "<meta name=\"description\" content=\"$description\" />\n";
}

第二種:

//Title標題
function bzg_filter_title( $title ) {$title['site'] = '';$title['tagline'] = '';$title['page'] = '';return $title;
}
add_filter( 'document_title_parts', 'bzg_filter_title', 10, 1 );function bzg_seo_title() {global $cat, $tag_id, $page, $paged;$page_num = '';if ( $paged >= 2 || $page >= 2 )$page_num = '_' . sprintf( '第%s頁', max( $paged, $page ) );$title = wp_get_document_title();if( is_author() )$title = '作者:' . $title;if( is_category() && get_term_meta( $cat , 'seo_title', true ) )$title = get_term_meta( $cat , 'seo_title', true );if( is_tag() && get_term_meta( $tag_id , 'seo_title', true ) )$title = get_term_meta( $tag_id , 'seo_title', true );if ( ! is_home() ) {$title .= $page_num . ' - ';$title .= get_option('blogname');} else {$description = get_option( 'blogdescription' );$home_title = get_option( 'home_title' );if ( $home_title ) {$title = $home_title;} elseif($description) {$title .= ' - ' . $description;}$title .= $page_num;}return $title;
}function bzg_seo_keywords() {global $post;$keywords = '';if ( is_home() )$keywords = get_option( 'home_keywords' );if ( ( is_category() || is_tag() ))$keywords = single_cat_title('', false);if ( is_single() || is_page() ) {if ( $post->post_excerpt ) {$keywords = $post->post_excerpt;} else {$keywords = $post->post_title;}}return $keywords;
}//Description標簽
function bzg_seo_description() {global $post;$description = '';if ( is_home() )$description = get_option( 'home_description' );if ( ( is_category() || is_tag() ) && category_description() )$description = wp_strip_all_tags( category_description(), true );if ( is_single() || is_page() ) {if ( $post->post_excerpt ) {$description = $post->post_excerpt;} else {$description = mb_strimwidth(esc_html(wp_strip_all_tags($post->post_content, true)), 0, 200);}}return $description;
}

header.php 調用:

<head><title><?php echo bzg_seo_title(); ?></title><?php$bzg_keywords = bzg_seo_keywords();if (!empty($bzg_keywords)) {echo '<meta name="keywords" content="' . $bzg_keywords . '" />';echo "\n";}$bzg_description = bzg_seo_description();if (!empty($bzg_description)) {echo '<meta name="description" content="' . $bzg_description . '" />';echo "\n";}?><?php if (is_home()) : ?><?php endif; ?></head>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/41284.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/41284.shtml
英文地址,請注明出處:http://en.pswp.cn/news/41284.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Azure如何啟用網絡觀察應用程序

文章目錄 基礎概念介紹實操 基礎概念介紹 Azure中的網絡觀察應用程序是一種用于監視和診斷Azure網絡的工具。它提供了一種集中管理和監控網絡流量、連接性和性能的方式。網絡觀察應用程序能夠提供網絡流量分析、連接監視、性能監視和故障診斷等功能&#xff0c;用于幫助管理員…

K8S核心組件etcd詳解(下)

1 k8s如何使用etcd 在k8s中所有對象的manifest都需要保存到某個地方&#xff0c;這樣他們的manifest在api server重啟和失敗的時候才不會丟失。 只有api server能訪問etcd&#xff0c;其它組件只能間接訪問etcd的好處是 增強樂觀鎖系統及驗證系統的健壯性 方便后續存儲的替換…

神經網絡基礎-神經網絡補充概念-43-梯度下降法

概念 梯度下降法&#xff08;Gradient Descent&#xff09;是一種優化算法&#xff0c;用于在機器學習和深度學習中最小化&#xff08;或最大化&#xff09;目標函數。它通過迭代地調整模型參數&#xff0c;沿著梯度方向更新參數&#xff0c;以逐步接近目標函數的最優解。梯度…

使用 BERT 進行文本分類 (01/3)

攝影&#xff1a;Max Chen on Unsplash 一、說明 這是使用 BERT 語言模型的一系列文本分類演示的第一部分。以文本的分類作為例&#xff0c;演示它們的調用過程。 二、什么是伯特&#xff1f; BERT 代表 來自變壓器的雙向編碼器表示。 首先&#xff0c;轉換器是一種深度學習模…

SpringBoot 操作Redis、創建Redis文件夾、遍歷Redis文件夾

文章目錄 前言依賴連接 RedisRedis 配置文件Redis 工具類操作 Redis創建 Redis 文件夾查詢數據遍歷 Redis 文件夾 前言 Redis 是一種高性能的鍵值存儲數據庫&#xff0c;支持網絡、可基于內存亦可持久化的日志型&#xff0c;而 Spring Boot 是一個簡化了開發過程的 Java 框架。…

【TA 挖坑02】RayMarching SDF 物體黏合

寫在前面 由于實習和忙著論文很久沒經營博客了&#xff0c;最近以各種方式收集到了一些想實現的效果&#xff0c;其中一個就是卡通云融合、變大變小、聚散收攏的效果如何實現的問題&#xff0c;這就不得不提擱置了很久的RayMarching... 挖坑&#xff01;整理一下有幫助的文章…

AWS WAF實戰、優勢對比和缺陷解決

文章目錄 挑戰和目標AWS WAF的優勢AWS WAF的不足我是怎么做的?什么是比較好的AWS WAF設計? 筆者為了解決公司Web站點防御性問題&#xff0c;較為深入的研究AWS WAF的相關規則。面對上千萬的沖突&#xff0c;筆者不得設計出一種能漂亮處理沖突數據WAF規則。 AWS WAF開發人員在…

Cocos2d 項目問題記錄

環境搭建 正常運行 Android 端的 Cocos2d 項目&#xff0c;本機至少需要 Android SDK、NDK 環境、Android Studio 項目報錯總結 CMake Error: CMake was unable to find a build program corresponding to "Ninja" 默認創建工程的 gradle.tools 版本為 3.1.0&…

微服務08-多級緩存

1.什么是多級緩存 傳統的緩存策略一般是請求到達Tomcat后,先查詢Redis,如果未命中則查詢數據庫,如圖: 存在下面的問題: ?請求要經過Tomcat處理,Tomcat的性能成為整個系統的瓶頸 ?Redis緩存失效時,會對數據庫產生沖擊 多級緩存就是充分利用請求處理的每個環節,分…

卷積操作后特征圖尺寸,感受野,參數量的計算

文章目錄 1、輸出特征圖的尺寸大小2、感受野的計算3、卷積核的參數量 1、輸出特征圖的尺寸大小 如果包含空洞卷積&#xff0c;即擴張率dilation rate不為1時&#xff1a; 2、感受野的計算 例如&#xff0c;圖像經過兩個3*3&#xff0c;步長為2的卷積后感受野為&#xff1a; co…

Centos7多臺服務器免密登錄

準備四臺服務器: docker0 docker1 docker2 docker3 在docker0服務器上生成公鑰和私鑰 [rootwww ~]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory /root/.ssh. Enter passp…

在Gazebo中添加懸浮模型后,利用鍵盤控制其移動方法

前段時間寫了文章&#xff0c;通過修改sdf、urdf模型的方法&#xff0c;在Gazebo中添加懸浮模型方法 / Gazebo中模型如何不因重力下落&#xff1a;在Gazebo中添加懸浮模型方法 / Gazebo中模型如何不因重力下落&#xff1a;修改sdf、urdf模型_sagima_sdu的博客-CSDN博客 今天講…

Leetcode32 最長有效括號

給你一個只包含 ( 和 ) 的字符串&#xff0c;找出最長有效&#xff08;格式正確且連續&#xff09;括號子串的長度。 代碼如下&#xff1a; class Solution {public int longestValidParentheses(String str) {Stack<Integer> s new Stack<>();int res 0;int st…

GrapeCity Documents for Excel, Java Edition Crack

GrapeCity Documents for Excel, Java Edition Crack 增加了對SpreadJS.sjs文件格式的支持&#xff1a; 更快地將大型Microsoft Excel文件轉換為.sjs格式。 使用較小的占用空間保存導出的文件。 將Excel/SpreadJS功能導入SpreadJS/從SpreadJS導出。 從.sjs文件中壓縮的JSON文件…

JVM——JDK 監控和故障處理工具總結

文章目錄 JDK 命令行工具jps:查看所有 Java 進程jstat: 監視虛擬機各種運行狀態信息 jinfo: 實時地查看和調整虛擬機各項參數jmap:生成堆轉儲快照**jhat**: 分析 heapdump 文件**jstack** :生成虛擬機當前時刻的線程快照 JDK 可視化分析工具JConsole:Java 監視與管理控制臺連接…

手撕單鏈表

目錄 鏈表的概念和結構 單鏈表的實現 申請新結點 打印 尾插 頭插 尾刪 頭刪 ?編輯 查找 在pos位置前插入元素 在pos位置后插入元素 刪除pos位置的元素 刪除pos位置之后的位置的元素?編輯 完整代碼 SListNode.h SListNode.c 鏈表的概念和結構 鏈表是一種物理存儲…

【JavaSE】Java方法的使用

【本節目標】 1. 掌握方法的定義以及使用 2. 掌握方法傳參 3. 掌握方法重載 4. 掌握遞歸 目錄 1.方法概念及使用 1.1什么是方法(method) 1.2 方法定義 1.3 方法調用的執行過程 1.4 實參和形參的關系 2. 方法重載 2.1 為什么需要方法重載 2.2 方法重載概念 3. 遞歸 3.…

【uni-app報錯】獲取用戶收貨地址uni.chooseAddress()報錯問題

chooseAddress:fail the api need to be declared in …e requiredPrivateInf 原因&#xff1a; 小程序配置 / 全局配置 (qq.com) 解決&#xff1a; 登錄小程序后臺申請接口 按照流程申請即可 在項目根目錄中找到 manifest.json 文件&#xff0c;在左側導航欄選擇源碼視圖&a…

杭電比賽總結

我們的隊伍&#xff1a;team013 另外兩隊&#xff1a;team014、team015 ? 今天是我第一次打杭電&#xff0c;發現杭電多數都是猜結論題 先給一下我們的提交數據 Submit TimeProblem IDTimeMemoryJudge Status4:59:59101115 MS1692 KWrong Answer4:59:55101115 MS1684 KWrong…

Java算法_ 檢查對稱樹(LeetCode_Hot100)

題目描述&#xff1a;給你一個二叉樹的根節點 &#xff0c; 檢查它是否軸對稱。root 獲得更多&#xff1f;算法思路:代碼文檔&#xff0c;算法解析的私得。 運行效果 完整代碼 /*** 2 * Author: LJJ* 3 * Date: 2023/8/17 8:47* 4*/ public class SymmetricTree {static class…