php实现织梦自动添加文章,织梦后台文章管理中增加批量添加tag标签功能示例

需求背景:

之前发布了不少文章,后来发现之前的这些文章当时发布时都没有添加tag标签,然而现在需要都添加上tag标签,然而这个在默认的织梦后台是没办法批量实现的,只能一篇篇文章去修改。

思考:织梦原本的文章批量管理中有这么几项,看图:

df24a3491deb9195301cf07625ecbf2c.png

根据这个自动关键词、批量增加属性、批量删除属性这个思路来进行批量tag标签操作。

修改后的具体效果如下:

07fe2fa80e14eec1682b0f0e80f67540.png

具体实现步骤:三步

1、打开dede/templets/content_list.htm,找到:

 删除属性 

在他后边添加:

修改tags标签

2、打开dede/js/list.js,在文件最后边添加:

/*批量修改文档*/

function EditArcs(jname,e,obj){

var qstr=getCheckboxItem();

if(qstr=='')

{

alert('必需选择一个或多个文档!');

return;

}

LoadQuickDiv(e, 'archives_do.php?dopost=batchEditArchives&qstr='+qstr+'&dojob='+jname+'&rnd='+Math.random(), 'tagsEditDlg', '450px', '160px');

ChangeFullDiv('show');

}

3.打开dede/archives_do.php,这个文件的最后四行是:

//AJAX窗体结束

}

?>

替换成:

//AJAX 窗体结束

}

/*

* --------------------------------------------

* function batchEditArchives(){}

* 批量修改文档

* --------------------------------------------

* */

else if ($dopost == 'batchEditArchives')

{

if( !empty($aid) && empty($qstr) )

{

$qstr = $aid;

}

$dojobname = '修改TAG标签';

AjaxHead();

//输出AJAX可移动窗体

$divname = 'tagsEditDlg';

echo "

\r\n";

echo "

{$dojobname}
\r\n";

echo "

封锁
\r\n";

echo "

\r\n";

echo "

\r\n";

echo "\r\n";

echo "\r\n";

echo "

?>

 标 签:

(','号分隔,单个标签小于12字节)

 文档ID:

button_back.gif

//AJAX 窗体结束

}

//修改标签结束

/*

* ------------------------------

* 修改标签详细操作

* function tagsEdit(){}

* ------------------------------

*

* */

elseif ($dopost == 'tagsEdit'){

//CheckPurview('a_Commend,sys_ArcBatch');

if( !empty($aid) && empty($qstr) )

{

$qstr = $aid;

}

if($qstr=='')

{

ShowMsg("参数无效!", $ENV_GOBACK_URL);

exit();

}

if(empty($tags))

{

ShowMsg("必需输入tags标签!", $ENV_GOBACK_URL);

exit();

}

$tags = str_replace(',', ',', $tags);

$tagss = explode(',',$tags);

if(empty($tagss)){

ShowMsg("必需输入tags标签!", $ENV_GOBACK_URL);

exit();

}

$arcids = ereg_replace('[^0-9,]','',ereg_replace('`', ',', $qstr));

$arcids_arr = explode(',', $arcids);

if (empty($arcids_arr)) {

ShowMsg("参数无效!", $ENV_GOBACK_URL);

exit();

}

foreach($arcids_arr as $id){

/*

* 处理修改后的Tag

*/

$oldtag = GetTags($id);

$oldtags = explode(',',$oldtag);

foreach($tagss as $tag)

{

$tag = trim($tag);

if(isset($tag[255]) || $tag!=stripslashes($tag))

{

continue;

}

if(!in_array($tag,$oldtags))

{

InsertOneTag($tag,$id);

}

}

foreach($oldtags as $tag)

{

if(!in_array($tag,$tagss))

{

$dsql->ExecuteNoneQuery("Delete From `js_taglist` where aid='$id' And tag like '$tag' ");

$dsql->ExecuteNoneQuery("Update `js_tagindex` set total=total-1 where tag like '$tag' ");

}

else

{

$dsql->ExecuteNoneQuery("Update `js_taglist` set `arcrank` = '$arcrank', `typeid` = '$typeid' where tag like '$tag' ");

}

}

}

ShowMsg("成功修改选中文档的tags标签!", $ENV_GOBACK_URL);

exit();

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 WordPress 提供的 `wp_set_post_tags()` 函数来为文章添加标签。你可以在文章发布或更新时触发此函数,并将标签作为参数传递给它。 以下是一个简单的示例代码: ```php // 在文章发布或更新时触发 add_action('save_post', 'add_tags_to_post'); function add_tags_to_post($post_id) { // 检查是否为文章类型 if(get_post_type($post_id) != 'post') { return; } // 获取文章对象 $post = get_post($post_id); // 获取文章内容 $content = $post->post_content; // 将文章内容转换为标签数组 $tags = get_tags_from_content($content); // 为文章添加标签 if(!empty($tags)) { wp_set_post_tags($post_id, $tags, true); } } function get_tags_from_content($content) { // 从文章内容提取标签 // 你可以编写自己的提取逻辑 // 这里只是一个示例 preg_match_all('/<tag>(.*?)<\/tag>/', $content, $matches); // 返回标签数组 return $matches[1]; } ``` 在上面的代码,我们定义了一个 `add_tags_to_post()` 函数,它会在文章发布或更新时被触发。我们首先检查文章类型,然后获取文章对象和内容。接着,我们调用了 `get_tags_from_content()` 函数,该函数将文章内容转换为标签数组。最后,我们调用了 `wp_set_post_tags()` 函数,将标签数组添加文章。 需要注意的是,`get_tags_from_content()` 函数的正则表达式只是一个示例。你需要根据自己的需求编写自己的提取逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值