wordpress 文章自动增加tag标签和链接三部曲

1.文章在保存时自动增加tag

使用 wp-autotags 函数设置,在撰写中设置tag数量。

2.选中所有需要设置的文章,更新后,自动增加标签。

3.tag标签链接转拼音

使用 auto-tag-slug 函数设置,可以设置链接为拼音或英文。

4.将tag在文章中的关键词增加链接

使用如下代码:

[cce_php]
/**

* WordPress 自动为文章标签添加该标签的链接

*/

$match_num_from = 1;  // 一个标签在文章中出现少于多少次不添加链接

$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;

}

//获得当前TAG标签ID,
function get_current_tag_id() {
$current_tag = single_tag_title('', false);//获得当前TAG标签名称
$tags = get_tags();//获得所有TAG标签信息的数组
foreach($tags as $tag) {
if($tag->name == $current_tag) return $tag->term_id; //获得当前TAG标签ID,其中term_id就是tag ID
}
}
[/cce_php]

wordpress get_posts函数常用参数配置

代码:

[cce_php]
<?php 
$args = array(
    'numberposts'     => 5,
    'offset'          => 0,
    'category'        => ,
    'orderby'         => 'post_date',
    'order'           => 'DESC',
    'include'         => ,
    'exclude'         => ,
    'meta_key'        => ,
    'meta_value'      => ,
    'post_type'       => 'post',
    'post_mime_type'  => ,
    'post_parent'     => ,
    'post_status'     => 'publish' );
$posts_array = get_posts( $args ); 
?>
[/cce_php]

参数详解:

[cce_php]
<?php 
$args = array(
    //需要提取的文章数
    'numberposts'     => 10,
 
    //以第几篇文章为起始位置
    'offset'          => 0,
 
    //分类的ID,多个用逗号将分类编号隔开,或传递编号数组,可指定多个分类编号。
    //大部分 CMS 使用该函数的重点。
    'category'        => ,
 
    //排序规则(注1)
    'orderby'         => 'post_date',
 
    //升序、降序 'ASC' —— 升序 (低到高)  'DESC' —— 降序 (高到底)
    'order'           => 'DESC',
 
    //要显示文章的ID
    'include'         => ,
 
    //要排除文章的ID
    'exclude'         => ,
 
    //自定义字段名称
    'meta_key'        => ,
    //自定义字段的值,配合上一个参数,来选择显示符合自定义字段数值的文章。
    'meta_value'      => ,
 
    //post(日志)——默认,page(页面),
    //attachment(附件),any —— (所有)
    'post_type'       => 'post',
 
    //文章的 mime 类型
    'post_mime_type'  => ,
 
    //要显示文章的父级 ID
    'post_parent'     => ,
 
    //文章状态
    'post_status'     => 'publish' );
?>
[/cce_php]

排序参数设置:

[cce_php]
‘author’ —— 按作者数值编号排序
‘category’ —— 按类别数值编号排序
‘content’ —— 按内容排序
‘date’ —— 按创建日期排序
‘ID’ —— 按文章编号排序
‘menu_order’ —— 按菜单顺序排序。仅页面可用。
‘mime_type’ —— 按MIME类型排序。仅附件可用。
‘modified’ —— 按最后修改时间排序。
‘name’ —— 按存根排序。
‘parent’ —— 按父级ID排序
‘password’ —— 按密码排序
‘rand’ —— 任意排序结果
‘status’ —— 按状态排序
‘title’ —— 按标题排序
‘type’ —— 按类型排序
[/cce_php]

除了上面可以使用数组来传递参数外,也可以使用字符串的传递参数。

[cce_php]
<?php
$posts_rand = get_posts('numberposts=3&orderby=rand');
?>
[/cce_php]

get_posts函数还有一种单数使用方法:

[cce_php]
<?php
 get_post($post_id, $output); 
?>
[/cce_php]

$post_id 是文章ID,不能直接使用,必须先赋值,

$output是返回数据的类型有三种:

对象:OBJECT
关联数组:ARRAY_A
数值数组:ARRAY_N
默认值:OBJECT