织梦文章页默认是以数字ID形式的,如果想生成文章内容文字的拼音形式,需要做如下修改:
首先在后台网站栏目管理,高级管理更改一下标签{:{typedir}/{y}/{m}/{aid}.html为{typedir}/{pinyin}.html.
然后修改include文件夹下的channelunit.func.php文件里的代码.代码如下:
	//获得文件相对于主站点根目录的物理文件名(动态网址返回url)
	function GetFileName($aid,$typeid,$timetag,$title,$ismake=0,$rank=0,$namerule=\'\',$typedir=\'\',$money=0,$filename=\'\')
	{
	global $cfg_rewrite, $cfg_cmspath, $cfg_arcdir, $cfg_special, $cfg_arc_dirname;
	//没指定栏目时用固定规则(专题)1号游戏
	if(empty($namerule)) {
	   $namerule = $cfg_special.\'/arc-{aid}.html\';
	   $typeid = -1;
	}
	if($rank!=0 || $ismake==-1 || $typeid==0 || $money>0)
	{
	   //动态文章
	   if($cfg_rewrite == \'Y\')
	   {
	    return $GLOBALS["cfg_plus_dir"]."/view-".$aid.\'-1.html\';
	   }
	   else
	   {
	    return $GLOBALS[\'cfg_phpurl\']."/view.php?aid=$aid";
	   }
	}
	else
	{
	   $articleDir = MfTypedir($typedir);
	   $articleRule = strtolower($namerule);
	   if($articleRule==\'\')
	   {
	    $articleRule = strtolower($GLOBALS[\'cfg_df_namerule\']);
	   }
	   if($typedir==\'\')
	   {
	    $articleDir = $GLOBALS[\'cfg_cmspath\'].$GLOBALS[\'cfg_arcdir\'];
	   }
	   $dtime = GetDateMk($timetag);
	   list($y,$m,$d) = explode(\'-\',$dtime);
	   $arr_rpsource = array(\'{typedir}\',\'{y}\',\'{m}\',\'{d}\',\'{timestamp}\',\'{aid}\',\'{cc}\');
	   $arr_rpvalues = array($articleDir,$y, $m, $d, $timetag, $aid, dd2char($m.$d.$aid.$y));
	   if($filename != \'\')
	   {
	    $articleRule = dirname($articleRule).\'/\'.$filename.$GLOBALS[\'cfg_df_ext\'];
	   }
	   $articleRule = str_replace($arr_rpsource,$arr_rpvalues,$articleRule);
	   if(ereg(\'{p\',$articleRule))
	   {
	    $articleRule = str_replace(\'{pinyin}\',GetPinyin($title).\'_\'.$aid,$articleRule);
	    $articleRule = str_replace(\'{py}\',GetPinyin($title,1).\'_\'.$aid,$articleRule);
	   }
	   $articleUrl = \'/\'.ereg_replace(\'^/\',\'\',$articleRule);
	   if(ereg("index.html", $articleUrl) && $cfg_arc_dirname==\'Y\')
	   {
	    $articleUrl = str_replace(\'index.html\', \'\', $articleUrl);
	   }
	   return $articleUrl;
	}
	}
我们看到默认的是$articleRule = str_replace(\'{pinyin}\',GetPinyin($title).\'_\'.$aid,$articleRule);
现在只需要<把".\'_\'.$aid>去掉即可.
最后修改include/inc文件夹下的inc_fun_funAdmin.php文件里的代码.代码如下:
	function SpGetPinyin($str,$ishead=0,$isclose=1)
	{
	global $pinyins;
	$restr = \'\';
	$str = trim($str);
	$slen = strlen($str);
	if($slen<2)
	{
	   return $str;
	}
	if(count($pinyins)==0)
	{
	   $fp = fopen(DEDEINC.\'/data/pinyin.dat\',\'r\');
	   while(!feof($fp))
	   {
	    $line = trim(fgets($fp));
	    $pinyins[$line[0].$line[1]] = substr($line,3,strlen($line)-3);
	   }
	   fclose($fp);
	}
	for($i=0;$i<$slen;$i++)
	{
	   if(ord($str[$i])>0x80)
	   {
	    $c = $str[$i].$str[$i+1];
	    $i++;
	    if(isset($pinyins[$c]))
	    {
	     if($ishead==0)
	     {
	      $restr .= $pinyins[$c];
	     }
	     else
	     {
	      $restr .= $pinyins[$c][0];
	     }
	    }else
	    {
	     $restr .= "_";
	    }
	   }else if( eregi("[a-z0-9]",$str[$i]) )
	   {
	    $restr .= $str[$i];
	   }
	   else
	   {
	    $restr .= "_";
	   }
	}
	if($isclose==0)
	{
	   unset($pinyins);
	}
	return $restr;
	}
修改$restr .= "_"; 为$restr .= "-"; 即可.
	
	第二种:::
	dedecms 生成文章以拼音命名的方法.
	使用过织梦的朋友可能会知道,在织梦添加栏目时,会自动生成栏目名称的拼音,可是这样的话,文件路径会很长,看起来不很不方便,也不方便搜索引擎的抓取.
	
	栏目名可以自己随便写,也可以默认拼音,如果默认拼音那生成的是全部汉字的全拼,像“公司简介”,生成后是“gongsijianjie”,如果我们的栏目是5个汉字、6个汉字那生成后的栏目名称其不是很长,那能不能直接生成为"gsjj"呢?答案是可以的。
