WordPress 上实现自动为文章添加标签及内链的功能代码

WordPress有一个诟病就是不能自动智能添加标签;当然作为一款国外的开源程序,支持中文智能是有点小纠结的,那我们只能把功能寄托在已经添加过的标签,在发布文章时可以自动为文章添加了。当然如果可以加上一个链接就更好了,好的,那么下面给大家介绍的功能就是自动添加标签及内链的功能代码;只需要把代码复制到主题函数functions.php文件当中,功能就可以实现了

主题的functions.php文件添加如下代码:

方法一:

//WordPress 文章关键词自动内链
function tag_sort($a, $b){
	if ( $a->name == $b->name ) return 0;
	return ( strlen($a->name) > strlen($b->name) ) ? -1 : 1;
}
function tag_link($content){
	$match_num_from = 1;	//一个标签少于几次不链接
	$match_num_to = 1;	//一个标签最多链接几次
	$posttags = get_the_tags();
	if ($posttags) {
		usort($posttags, "tag_sort");
		foreach($posttags as $tag) {
			$link = get_tag_link($tag->term_id);
			$keyword = $tag->name;
			//链接代码
			$cleankeyword = stripslashes($keyword);
			$url = "<a href=\"$link\" title=\"".str_replace('%s',addcslashes($cleankeyword, '$'),__('更多关于 %s 的文章'))."\"";
			$url .= ' target="_blank"';
			$url .= ">".addcslashes($cleankeyword, '$')."</a>";
			$limit = rand($match_num_from,$match_num_to);
			//不链接代码
			$content = preg_replace( '|(<a[^>]+>)(.*)<pre.*?>('.$ex_word.')(.*)<\/pre>(</a[^>]*>)|U'.$case, '$1$2%&&&&&%$4$5', $content);
			$content = preg_replace( '|(<img)(.*?)('.$ex_word.')(.*?)(>)|U'.$case, '$1$2%&&&&&%$4$5', $content);
			$cleankeyword = preg_quote($cleankeyword,'\'');
			$regEx = '\'(?!((<.*?)|(<a.*?)))('. $cleankeyword . ')(?!(([^<>]*?)>)|([^>]*?</a>))\'s' . $case;
			$content = preg_replace($regEx,$url,$content,$limit);
			$content = str_replace( '%&&&&&%', stripslashes($ex_word), $content);
		}
	}
	return $content;
}
add_filter('the_content','tag_link',1);

方法二:

//自动TAG转内链
$match_num_from = 1; // 一个TAG标签出现几次才加链接
$match_num_to = 1; // 同一个标签加几次链接
add_filter('the_content','tag_link',1);
function tag_sort($a, $b){
if ( $a->name == $b->name ) return 0;
return ( strlen($a->name) > strlen($b->name) ) ? -1 : 1;
}
function tag_link($content){
global $match_num_from,$match_num_to;
$posttags = get_the_tags();
if ($posttags) {
usort($posttags, "tag_sort");
foreach($posttags as $tag) {
$link = get_tag_link($tag->term_id);
$keyword = $tag->name;
$cleankeyword = stripslashes($keyword);
$url = "<a href=\"$link\" title=\"".str_replace('%s',addcslashes($cleankeyword, '$'),__('View all posts in %s'))."\"";
$url .= ' target="_blank"';
$url .= ">".addcslashes($cleankeyword, '$')."</a>";
$limit = rand($match_num_from,$match_num_to);
$content = preg_replace( '|(<a[^>]+>)(.*)('.$ex_word.')(.*)(</a[^>]*>)|U'.$case, '$1$2%&&&&&%$4$5', $content);
$content = preg_replace( '|(<img)(.*?)('.$ex_word.')(.*?)(>)|U'.$case, '$1$2%&&&&&%$4$5', $content);
$cleankeyword = preg_quote($cleankeyword,'\'');
$regEx = '\'(?!((<.*?)|(<a.*?)))('. $cleankeyword . ')(?!(([^<>]*?)>)|([^>]*?</a>))\'s' . $case;
$content = preg_replace($regEx,$url,$content,$limit);
$content = str_replace( '%&&&&&%', stripslashes($ex_word), $content);
}
}
return $content;
}

注意事项:

把上面代码添加到functions.php文件后,当我们发布、更新、保存文章时,会自动检测文章中是否有标签关键词,如果有就会自动添加这些标签的链接。虽然是自动的,但我们还需注意以下两点:

1、上面代码中$match_num_to = 1; //一篇文章中同一个标签最多自动链接几次,这个建议最多只设置3次。

2、代码中的$posttags = get_tags();   表示自动为文章添加全站所有标签链接,我们还可以改成只为此文章设置的标签添加链接,只需将 “$posttags = get_tags();” 改成 “$posttags = get_the_tags();” 即可。

一般建议使用盒子部落推荐代码,无需做任何修改。

作者: QSQ,本站资源均来源于网络,仅供学习交流使用,若想体验更多,请支持正版。
转载或复制文章时,请注明本文出处及文章链接: https://www.sssam.com/588.html

(12)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-02 18:39
下一篇 2022-10-08 23:01

相关推荐

  • HttpWatch v11.1.46.0 网页数据分析工具免费版

    httpwatch是一款强大的网页数据分析工具,包括网页摘要、Cookies管理、缓存管理、消息发送接收、字符查询、POST数据和目录管理功能、报告输出等功能,httpwatch 11作为网页抓包分析工具httpwatch软件的最新版本,新版本功能进行了全面优化和升级,在安装后会被集成在internet explorer工具栏。

    2020-01-12
    883
  • 静态网页下载工具,仿站小工具 v10.0

    仿站小工具是通过网址下载静态网页的工具。从输入的网址下载html代码,提取出JS、Css、Image、Picture、Flash等静态文件网址,再从下载完好的Css代码中提取出Image静态文件网址,通过网址下载静态文件,根据软件设置好的保存规则,自动修正html和css代码链接路径,最终这些静态文件被按分类保存到电脑文件夹。

    2020-01-13
    1.3K
  • 网页操作模拟器 v1.0 免费版

    网页操作模拟器是一款非常好用的模拟网页操作的软件。我们的这款软件能够模拟网页上的一切操作。有了它,可以轻松编写网页顶贴机,网页注册机,网页登陆,网页游戏外挂等一切网页模拟操作。而且用户只需插入网页的代码,即可在软件上操作该网页,使用步骤十分简单。

    2020-01-12
    1.4K
  • SyncTrayzor v1.1.23 文件共享工具绿色版

    SyncTrayzor是一款可以进行文件共享,同时具有监控文件功能的Syncthing的软件,它可以将用户的网络计算机和文件或文件夹同步,而且同步的数据是直接从一个系统中直接传输到另一个系统,安全且私密,用户所有的珍贵数据都会被存储在自己的系统中,这样用户对自己的文件和文件夹拥有全面的控制权,所有上传或共享的文件或文件夹会被存储在第三方系统中。

    2020-01-13
    1.1K
  • EditorTools v3.3 全自动信息采集软件

    ET采集器是一款功能强大的免费的全自动信息采集软件,采集器支持任意网站的信息采集,全自动监控,并且能整理信息,提供免费的文件下载,适用于绝大多数网站,稳定方便,长时间采集不消耗网站性能,是中小网站自动更新利器,全自动采集发布,运行期间静默工作,无须人工干预;

    2020-01-13
    997
  • Titan FTP Server 2019 企业级别服务器软件

    Titan FTP Server Enterprise 2019是一款企业级别的ftp服务器软件,提供了业界最安全的传输,支持SFTP,FTP/SSL和FTP,并且拥有精细的配置设置,包括帐户到期、实时监控、可配置的磁盘配额和传输率、本地日志记录等等,能够更好的保护您的文件传输,为你的企业提供安全的SFTP服务器。

    2020-01-05
    1.3K

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

评论列表(1条)

  • 这些好人
    这些好人 2019-03-25 03:26

    身为蝼蚁的你,真的很努力呢。

手机访问
手机扫码访问本网页
关注微信