[blog] wordpress外掛 Def-Link

這個外掛是我非常想要的,因為每次再寫文章的時候,如果要加上Link的話,很麻煩,還要自己手動增加,所以我就在網路上找到了一篇 [文章編輯]自動轉換特定文字為鍊結 這一篇有介紹了一些WordPress的外掛,當然我最喜歡簡單的外掛Def-Link這個外掛,重點是他很容易,又很好用

  • 安裝方式

    Compatibility

    • WordPress 1.5 or later

    Installation

    1. Download the plugin (v. 1.4): def_link.php.txt and def_link-manage.php.txt
    2. Rename def-link.php.txt to def-link.php and put it into
      wp-content/plugins/
      directory
    3. Rename def-link-manage.php.txt to def_link-manage.php and put it into
      wp-admin/ directory
    4. Activate the plugin from WordPress administration menu.

    Usage

    • Enter menu Administration->Manage->Def-Link You can add, edit or delete the definition, link or custom here

不過話說剛開始安裝好的時候,並不支援中文,只支援英文,所以我在網路上找到下面一篇文章

WordPress Plugin: Def-Link 中文的兼容性 : 連結

不過他這個方法不適合用在 WordPress 2.0.7

所以我自己修改如下

#編輯 def-link.php 中
$ccompare="\b$odl->cname\b";
#替換成
$ccompare=$odl->cname;
#找到:
$ccompare="/\b".$achange[$m][name]."\b/i";
#替換成:
$ccompare="/".$achange[$m][name]."/i";

patch檔案

--- def-link.php.txt	2006-03-10 04:47:39.000000000 +0800
+++ def-link.php	2007-02-05 09:34:33.000000000 +0800
@@ -12,9 +12,9 @@
 	$sql = 'SELECT * FROM DefLink';
 	$query = mysql_query($sql);
 	$n=0; 
-//	if (mysql_num_rows($query)>0){
+	if (mysql_num_rows($query)>0){
 		while ($odl = mysql_fetch_object($query)){
-			$ccompare="\b$odl->cname\b";
+			$ccompare=$odl->cname;
 			if(preg_match("/$ccompare/i",strip_tags($intext))) {
 				$achange[$n][name]=$odl->cname;
 				$achange[$n][deflink]=$odl->cdeflink;
@@ -31,7 +31,7 @@
 	
 		$m=0;
 		while($m<$n) {
-			$ccompare="/\b".$achange[$m][name]."\b/i";	
+			$ccompare="/".$achange[$m][name]."/i";	
 				if($achange[$m][flag]==2) {
 					$a2[$m]=$achange[$m][deflink];
 					$intext= preg_replace("$ccompare","#%%$m%%#",$intext);
@@ -42,7 +42,7 @@
 		}	
 		$m=0;
 		while($m<$n) {
-			$ccompare="/\b".$achange[$m][name]."\b/i";	
+			$ccompare="/".$achange[$m][name]."/i";	
 				if($achange[$m][flag]==1) {
 					$a1[$m]="".$achange[$m][name]."";
 					$intext= preg_replace("$ccompare","@%%$m%%@",$intext);
@@ -53,7 +53,7 @@
 		}	
 		$m=0;
 		while($m<$n) {
-			$ccompare="/\b".$achange[$m][name]."\b/i";	
+			$ccompare="/".$achange[$m][name]."/i";	
 				if($achange[$m][flag]==0) {
 					$intext= preg_replace("$ccompare","".$achange[$m][name]."",$intext);
 				}
@@ -72,7 +72,7 @@
 			$intext= preg_replace("/@%%$m%%@/",$a1[$m],$intext);			
 			$m++;
 		} 	
-//	}
+	}
 return $intext;
 }
 
@@ -104,10 +104,10 @@
 		// Create it if it's not there
         if ($results == 0){
             $sql = "CREATE TABLE `DefLink` (".
-				   "`nid` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,".
-				   "`cname` VARCHAR( 50 ) NOT NULL ,".
-				   "`cdeflink` VARCHAR( 255 ) NOT NULL ,".
-				   "`nflag` SMALLINT( 1 ) NOT NULL DEFAULT '0')";
+				   "`nid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT ,".
+				   "`cname` VARCHAR(50) NOT NULL ,".
+				   "`cdeflink` VARCHAR(255) NOT NULL ,".
+				   "`nflag` SMALLINT(1) NOT NULL DEFAULT '0', PRIMARY KEY (nid)) TYPE=InnoDB";
 			$results = $wpdb->query($sql);
         }
 }
@@ -132,4 +132,5 @@
 
 add_action('admin_menu', 'yo_AddToDefinitionsToManage');
 add_filter('the_content', 'yo_redefine');