当前位置: 首页 > news >正文

WordPress:Locoy.php火车头采集

<?php
/*
模块参数列表:
post_title 必选 标题 
post_content 必选 内容 
tag 可选 标签 
post_category 可选 分类
post_date 可选 时间
post_excerpt 可选 摘要
post_author 可选 作者
category_description 可选 分类信息
post_cate_meta[name] 可选 自定义分类信息 
post_meta[name] 可选 自定义字段 
post_type 可选 文章类型 默认为'post'
post_taxonomy 可选 自定义分类方式
post_format 可选 文章形式
*/
//-------------------配置参数开始,根据需要修改-------------------------
$post_author_default = 1; //默认作者的id,默认为admin(这里是作者ID号码,并非作者名)
$post_status = 'publish'; //立即发布 pending 审核 draft 草稿箱
$time_interval = 1; //发布时间间隔,单位为秒 。可设置随机数值表达式,如12345 * rand(0,17),设置为负数可将发布时间设置为当前时间减去这里设置的时间
$post_next = 'now'; //now:发布时间=当前时间+间隔时间值 //next: 发布时间=最后一篇时间+间隔时间值 
$post_ping = false; //发布后是否执行ping
$translate_slug = false; //是否将中文标题转换为MD5值,如需开启请设置为true或MD5值长度,建议设置为大于10,小于33的数字。
$secretWord = 'buzhidao'; //接口密码,如果不需要密码,则设为$secretWord=false ; 
$checkTitle = true; //检测标题是否重复
$updateTitle = true; //标题重复是否更新
$postformat = false; //开启文章形式
//-------------------配置参数结束,以下请勿修改-------------------------//开始
if(isset($_GET['action'])){
$hm_action=$_GET['action'];
}else{
die("操作被禁止>");
}
include_once "./wp-config.php";
if($post_ping) require_once("./wp-includes/comment.php");
extract($_POST);
if($hm_action== "list"){
hm_print_catogary_list();
}elseif($hm_action== "update"){
hm_publish_pending_post();
}elseif($hm_action == "save"){
//检查通讯密码
if (isset($secretWord)&&($secretWord!=false)) {
if (!isset($_GET['secret']) || $_GET['secret'] != $secretWord) {
die('接口密码错误,请修改配置文件或者修改发布参数,保持两者统一。');
}
}
//判断标题是否为空
if ($post_title=='[标题]'||$post_title=='') {die('标题为空');}
//判断标题是否为空
// if ($post_content=='[内容]'||$post_content=='') {die('内容为空');}
//检查自定义文章类型
if (empty($post_type) || strpos($post_type, '[') || strpos($post_type, ']')) {$post_type='post';}
//检查自定义分类目录
if (empty($post_taxonomy) || strpos($post_taxonomy, '[') || strpos($post_taxonomy, ']')) {$post_taxonomy='category';}
//检查分类描述是否未设置
if (empty($category_description) || strpos($category_description, '[') || strpos($category_description, ']')) {$category_description='';}
//检查自定义字段
if(array_key_exists('post_meta', $post)){$post_meta = $post['post_meta'];}
//检查自定义分类信息
if(array_key_exists('post_cate_meta', $post)){$post_cate_meta = $post['post_cate_meta'];}
//检查发布时间
if (!isset($post_date) ||strlen($post_date)<8) $post_date=false;
//检查作者
if (empty($post_author)) {
$post_author=$post_author_default;
} else {
$post_author=hm_add_author($post_author);
}
$post_content = fileHandle('fujian',$post_content);
fileHandle('thumb');
//检查标题是否重复
if($checkTitle){
$post_title = trim(hm_strip_slashes($post_title));
$sql = "SELECT `ID` FROM $wpdb->posts WHERE `post_title` = '$post_title'";
$t_row = $wpdb->query($sql);
if($t_row) {
//标题重复更新
if($updateTitle){
//2023.03.01 Start 采集开启标题重复测试后,开启自动更新功能 xdy
$Post_ID = $wpdb->get_col($sql);
$Post_ID = $Post_ID[0];
//print_r($_POST);
$_seo_title = $_POST['post_meta']['titleseo'];
$_sites_link = $_POST['post_meta']['_sites_link']; //wangzhi
$_sites_sescribe = $_POST['post_meta']['_sites_sescribe']; //pingjia
$paixu = $_POST['post_meta']['paixu'];
$beian = $_POST['post_meta']['beian'];
$similarweb = $_POST['post_meta']['similarweb'];
$laiyuan = $_POST['post_meta']['laiyuan'];
$jibie = $_POST['post_meta']['jibie'];
$wangzhi1 = $_POST['post_meta']['wangzhi1'];
$wangzhi2 = $_POST['post_meta']['wangzhi2'];
$wangzhi3 = $_POST['post_meta']['wangzhi3'];
$wangzhi4 = $_POST['post_meta']['wangzhi4'];
$wangzhi5 = $_POST['post_meta']['wangzhi5'];
$wpdb->get_results("UPDATE `wp_postmeta` SET `meta_value` = '$_sites_link' WHERE `post_id` = '$Post_ID' AND `meta_key` = '_sites_link'");
$wpdb->get_results("UPDATE `wp_postmeta` SET `meta_value` = '$_seo_title' WHERE `post_id` = '$Post_ID' AND `meta_key` = '_seo_title'");
$wpdb->get_results("UPDATE `wp_postmeta` SET `meta_value` = '$_sites_sescribe' WHERE `post_id` = '$Post_ID' AND `meta_key` = '_sites_sescribe'");
$wpdb->get_results("UPDATE `wp_postmeta` SET `meta_value` = '$paixu' WHERE `post_id` = '$Post_ID' AND `meta_key` = 'paixu'");
$wpdb->get_results("UPDATE `wp_postmeta` SET `meta_value` = '$beian' WHERE `post_id` = '$Post_ID' AND `meta_key` = 'beian'");
$wpdb->get_results("UPDATE `wp_postmeta` SET `meta_value` = '$similarweb' WHERE `post_id` = '$Post_ID' AND `meta_key` = 'similarweb'");
$wpdb->get_results("UPDATE `wp_postmeta` SET `meta_value` = '$laiyuan' WHERE `post_id` = '$Post_ID' AND `meta_key` = 'laiyuan'");
$wpdb->get_results("UPDATE `wp_postmeta` SET `meta_value` = '$jibie' WHERE `post_id` = '$Post_ID' AND `meta_key` = 'jibie'");
$wpdb->get_results("UPDATE `wp_postmeta` SET `meta_value` = '$wangzhi1' WHERE `post_id` = '$Post_ID' AND `meta_key` = 'wangzhi1'");
$wpdb->get_results("UPDATE `wp_postmeta` SET `meta_value` = '$wangzhi2' WHERE `post_id` = '$Post_ID' AND `meta_key` = 'wangzhi2'");
$wpdb->get_results("UPDATE `wp_postmeta` SET `meta_value` = '$wangzhi3' WHERE `post_id` = '$Post_ID' AND `meta_key` = 'wangzhi3'");
$wpdb->get_results("UPDATE `wp_postmeta` SET `meta_value` = '$wangzhi4' WHERE `post_id` = '$Post_ID' AND `meta_key` = 'wangzhi4'");
$wpdb->get_results("UPDATE `wp_postmeta` SET `meta_value` = '$wangzhi5' WHERE `post_id` = '$Post_ID' AND `meta_key` = 'wangzhi5'");
$wpdb->get_results("UPDATE $wpdb->posts SET `post_content` = '$post_content' , `post_excerpt` = '$post_excerpt' , `post_type` = '$post_type' , `post_date` = '$post_date' , `post_author` = '$post_author' WHERE `post_title` = '$post_title'");
die('标题已存在,内容已更新');
//2023.03.01 End xdy
}else{
die('标题已存在');
}
};
}
hm_do_save_post(array('post_title'=>$post_title,
'post_content'=>$post_content,
'post_category'=>$post_category,
'post_excerpt'=>$post_excerpt,
'post_type'=>$post_type,
'post_taxonomy'=>$post_taxonomy,
'tags_input'=>$tag,
'post_date'=>$post_date,
'post_author'=>$post_author,
'fujianid'=>$fujianid));
echo '发布成功';
}else{
echo '非法操作['.$hm_action.']';
}
//附件处理
//$filename 附件名称
//$content 标签内容,为空返回首张图片ID
function fileHandle($filesnames, $content = null)
{
global $thumbid;
if (!empty($_FILES[$filesnames.'0']['name'])) {
require_once('./wp-load.php');
require_once('./wp-admin/includes/file.php');
require_once('./wp-admin/includes/image.php');
$i = 0;
while (isset($_FILES[$filesnames.$i])) {
$fujian[$i] = $_FILES[$filesnames.$i];
$filename = $fujian[$i]['name'];
$fileExt=array_pop(explode(".", $filename));
//附件保存格式【时间】
$upFileTime=date("YmdHis");
//更改上传文件的文件名为时间+随机数+后缀
$fujian[$i]['name'] = $upFileTime."-".uniqid().".".$fileExt;
$uploaded_file = wp_handle_upload($fujian[$i], array('test_form' => false));
$content = str_replace("\'".$filename."\'", "\"".$uploaded_file[url]."\"", $content);
$content = str_replace($filename, $uploaded_file[url], $content);
if (isset($uploaded_file['error'])) {
echo "文件上传失败";
wp_die($uploaded_file['error']);
}
$file = $uploaded_file['file'];
$new_file = iconv('GBK', 'UTF-8', $file);
$url = iconv('GBK', 'UTF-8', $uploaded_file['url']);
$type = $uploaded_file['type'];
$attachment = array(
'guid' => $url,
'post_mime_type' => $type,
'post_title' => $filename,
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment($attachment, $new_file);
if (strpos($fujian[$i]['type'], 'image') !== false) {
if(empty($thumbid) || $filesnames == 'thumb') $thumbid = $attach_id;
$attach_data = wp_generate_attachment_metadata($attach_id, $file);
$attach_data['file'] = iconv('GBK', 'UTF-8', $attach_data['file']);
foreach ($attach_data['sizes'] as $key => $sizes) {
$sizes['file'] = iconv('GBK', 'UTF-8', $sizes['file']);
$attach_data['sizes'][$key]['file'] = $sizes['file'];
}
wp_update_attachment_metadata($attach_id, $attach_data);
}
$i++;
}
}
return $content;
}
function hm_tranlate($text)
{
global $translate_slug;
$pattern = '/[^\x00-\x80]/';
if (preg_match($pattern,$text)) {
$htmlret = substr(md5($text),0,$translate_slug);
} else {
$htmlret = $text;
}
return $htmlret;
}
function hm_print_catogary_list()
{
$cats = get_categories("hierarchical=0&hide_empty=0");
foreach ((array) $cats as $cat) {
echo '<<<'.$cat->cat_ID.'--'.$cat->cat_name.'>>>';
}
}
function hm_get_post_time($post_next="normal")
{
global $time_interval;
global $wpdb;
$time_difference = absint(get_option('gmt_offset')) * 3600;
$tm_now = time()+$time_difference;
if ($post_next=='now') {
$tm=time()+$time_difference;
} else { //if ($post_next=='next')
$tm = time()+$time_difference;
$posts = $wpdb->get_results( "SELECT post_date FROM $wpdb->posts ORDER BY post_date DESC limit 0,1" );
foreach ( $posts as $post ) {
$tm=strtotime($post->post_date);
}
}
return $tm+$time_interval;
}
function hm_publish_pending_post()
{
global $wpdb;
$tm_now = time()+absint(get_option('gmt_offset')) * 3600;
$now_date=date("Y-m-d H:i:s",$tm_now);
$wpdb->get_results( "UPDATE $wpdb->posts set `post_status`='publish' WHERE `post_status`='pending' and `post_date`<'$now_date'" );
}
function hm_add_category($post_category, $post_taxonomy = 'category')
{
if (!function_exists('wp_insert_category')) {include_once "./wp-admin/includes/taxonomy.php";}
global $wpdb,$post_cate_meta,$post_parent_cate,$category_description;
$post_category_new=array();
$post_category_list= array_unique(explode(",", $post_category));
foreach ($post_category_list as $category) {
$cat_ID =$category;
if (!isInteger($cat_ID) || $cat_ID < 1) {
$category = $wpdb->escape($category);
$term = get_term_by('name',$category,$post_taxonomy,'ARRAY_A');
$cat_ID = $term['term_id'];
if($cat_ID == 0){
//检查父分类是否存在和创建父分类->start
if(!empty($post_parent_cate) && $post_parent_cate != '[父分类]')
{
$parent = intval($post_parent_cate);
if($parent == 0){
$post_parent_cate = $wpdb->escape($post_parent_cate);
$term = get_term_by('name',$post_parent_cate,$post_taxonomy,'ARRAY_A');
$cat_ID = $term['term_id'];
if($parent == 0){
$parent = wp_insert_category(array('cat_name'=>$post_parent_cate, 'taxonomy'=>$post_taxonomy));
}
}
$cat_ID = wp_insert_category(array('cat_name'=>$category, 'category_description'=>$category_description, 'category_parent'=>$parent, 'taxonomy'=>$post_taxonomy));
}else{
$cat_ID = wp_insert_category(array('cat_name'=>$category, 'category_description'=>$category_description, 'taxonomy'=>$post_taxonomy));
}
//检查父分类是否存在和创建父分类->end
//定义分类信息->start
if (!empty($post_cate_meta)) {
foreach(array_unique(array_filter($post_cate_meta)) as $key => $value) {
$value = strtoarray($value);
add_term_meta($cat_ID, $key, $value);
}
}
//定义分类信息->end
}
}
array_push($post_category_new, $cat_ID);
}
return $post_category_new;
}
function add_category($post_category, $post_taxonomy = 'category')
{
if (!function_exists('wp_insert_category')) {include_once "./wp-admin/includes/taxonomy.php";}
global $wpdb;
$post_category_new=array();
$post_category_list= array_unique(explode(",", $post_category));
foreach ($post_category_list as $category) {
$cat_ID =$category;
if (!isInteger($cat_ID) || $cat_ID < 1) {
$category = $wpdb->escape($category);
$term = get_term_by('name',$category,$post_taxonomy,'ARRAY_A');
$cat_ID = $term['term_id'];
if($cat_ID == 0){
$cat_ID = wp_insert_category(array('cat_name'=>$category, 'taxonomy'=>$post_taxonomy));
}
}
array_push($post_category_new, $cat_ID);
}
return $post_category_new;
}
function isInteger($value){
return is_numeric($value) && is_int($value+0);
}
function hm_add_author($post_author)
{
global $wpdb,$post_author_default;
$User_ID =intval($post_author);
if ($User_ID == 0) {
$pattern = '/[^\x00-\x80]/';
if (preg_match($pattern,$post_author)) {
$LoginName = substr(md5($post_author),0,10);
} else {
$LoginName = $post_author;
}
$User_ID = $wpdb->get_col("SELECT ID FROM $wpdb->users WHERE user_login = '$LoginName' ORDER BY ID");
$User_ID = $User_ID[0];
if (empty($User_ID)) {
$website = 'http://'.$_SERVER['HTTP_HOST'];
$userdata = array(
'user_login' => "$LoginName",
'first_name' => $post_author,
'user_nicename' => $post_author,
'display_name' => $post_author,
'nickname' => $post_author,
'user_url' => $website,
'role' => 'contributor',
'user_pass' => NULL);
$User_ID = wp_insert_user( $userdata );
}
$post_author = $User_ID;
} else {
$post_author = $post_author_default;
}
return $post_author;
}
function hm_strip_slashes($str)
{
if (get_magic_quotes_gpc()) {return stripslashes($str);} else {return $str;}
}
function checkDatetime($str){$date = strtotime($str);if($date > 31500000){return true;}else{return false;}
}
function formatdate($date) {
$d = date('Y-m-d');
if(strpos($date, 'today') !== false){
return str_replace('today at', $d, $date);
}
if(strpos($date, 'Today') !== false){
return str_replace('Today at', $d, $date);
}
$dd = date('Y-m-d', time()-84600);
if(strpos($date, 'yesterday') !== false){
return str_replace('yesterday at', $d, $date);
}
if(strpos($date, 'Yesterday') !== false){
return str_replace('yesterday at', $d, $date);
}
}
//字符串转换为数组
//字符串的格式必须为 //$str = 'eo_description$$seo_description|||seo_keywords$$seo_keywords|||seo_title$$seo_title';
function strtoarray($str){
if(strpos($str, '|||') !== false){
$str = explode('|||', $str);
if(strpos($str[0],'$$') !== false){
foreach($str as $k => $v){
$v = explode('$$', $v);
$r[$v[0]] = $v[1];
}
$str = $r;
}
}
return $str;
}function hm_do_save_post($post_detail)
{
global $post,$post_author,$post_ping,$post_status,$translate_slug,$post_next,$post_meta,$comment,$commentdate,$commentauthor,$wpdb,$postformat,$post_format,$post_taxonomy_list,$thumbid;
extract($post_detail);
$post_title=trim(hm_strip_slashes($post_title));
$post_name=$post_title;
if ($translate_slug) $post_name=hm_tranlate($post_name);
$post_name=sanitize_title( $post_name);
if ( strlen($post_name) < 2 ) $post_name="";
$post_content=hm_strip_slashes($post_content);
$tags_input=str_replace("|||",",",$tags_input);
if (isset($post_date) && $post_date && checkDatetime($post_date)) {
$tm=strtotime($post_date);
$time_difference = absint(get_option('gmt_offset')) * 3600;
$post_date=date("Y-m-d H:i:s",$tm);
$post_date_gmt = gmdate('Y-m-d H:i:s', $tm-$time_difference);
} else {
$tm=hm_get_post_time($post_next);
$time_difference = absint(get_option('gmt_offset')) * 3600;
$post_date=date("Y-m-d H:i:s",$tm);
$post_date_gmt = gmdate('Y-m-d H:i:s', $tm-$time_difference);
if ($post_status=='next') $post_status='publish';
}
$post_category=hm_add_category($post_category, $post_taxonomy);
$post_data = compact('post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_type', 'post_title', 'post_category', 'post_status', 'post_excerpt', 'post_name','tags_input');
$post_data = add_magic_quotes($post_data);
$postID = wp_insert_post($post_data);
//设定缩略图
set_post_thumbnail( $postID, $thumbid );
//自定义分类方式(taxonomy)
if($post_taxonomy != 'category' && !empty($post_taxonomy)){
wp_set_object_terms($postID, $post_category, $post_taxonomy);
}
//多个自定义分类方式(taxonomy)
if(!empty($post_taxonomy_list)){
foreach($post_taxonomy_list as $k => $v){
$v = strtoarray($v);
if(is_array($v)){
foreach($v as $kk => $vv){
$vv = add_category($vv, $k);
wp_set_object_terms($postID, $vv, $k);
}
}else{
$v = add_category($v,$k);
wp_set_object_terms($postID, $v, $k);
}
}
}
//归档文章形式->start
if(!empty($post_format) && $postformat == true){
if($post_format == 'post-format-image' || $post_format == 'post-format-video' || $post_format == 'post-format-aside'){
wp_set_post_terms($postID, $post_format, 'post_format');
}
}
//归档文章形式->end
//发布自定义栏目
if (!empty($post_meta)) {
foreach($post_meta as $key => $value) {
$ret = add_post_meta($postID,$key,$value,true);
if(!$ret){
delete_post_meta($postID, $key);
add_post_meta($postID,$key,$value,true);
}
}
}
//发布评论->start
if(!empty($comment)){
//格式化评论内容
$comment = str_replace(array("\r\n", "\r", "\n"), "", $comment);
$arraycomment = explode('|||', $comment);
//格式化评论时间
$commentdate = str_replace(array("\r\n", "\r", "\n"), "", $commentdate);
$arraycommentdate = explode('|||', $commentdate);
//格式化评论作者
$commentauthor = str_replace(' ','',$commentauthor);
$commentauthor = str_replace(array("\r\n", "\r", "\n"), "", $commentauthor);
$arraycommentauthor = explode('|||', $commentauthor);
//评论计数
$comment_count = count($arraycomment) -1 ;
//更新文章评论数
$wpdb->get_results("UPDATE $wpdb->posts set `comment_count` = $comment_count WHERE `ID` = $postID");
//写入评论
foreach($arraycommentauthor as $k => $v){
//判断评论时间
if($v != ''){
$format="Y-m-d H:i:s";
$d = formatdate($arraycommentdate[$k]);
$d = strtotime($d);
if($d != ''){
$date = date($format,$d);
$gmtdate = gmdate($format, $d);
}else{
$date = date($format);
$gmtdate = gmdate($format);
}
//写入数据库
$res = $wpdb->get_results("INSERT INTO $wpdb->comments (`comment_post_ID`,`comment_author`,`comment_date`,`comment_date_gmt`,`comment_content`,`user_id`) VALUES ($postID,'$v','$date','$gmtdate','$arraycomment[$k]',1)");
}
}
}
//发布评论->end
// 自定PING,需要再网站后台设置->撰写->更新服务器 下面填写PING地址
if ($post_ping) generic_ping();
}
?>
http://www.xdnf.cn/news/318943.html

相关文章:

  • 【HTTP】《HTTP 全原理解析:从请求到响应的奇妙之旅》
  • 【MongoDB篇】MongoDB的副本集操作!
  • 数据清洗-电商双11美妆数据分析(二)
  • 5G赋能农业物联网:智能化种植的新纪元
  • JavaWeb:MySQL进阶
  • 趣味编程:梦幻万花筒
  • DBa作业
  • MCP认证全解析:从零到微软认证专家
  • (eNSP)策略路由实验配置
  • Selenium Web自动化测试学习笔记(二)--八大元素定位
  • 详细剖析传输层协议(TCP和UDP)
  • Baumer工业相机堡盟工业相机如何通过BGAPI SDK在Linux系统下设置多个USB相机(C++)
  • 3、食品包装控制系统 - /自动化与控制组件/food-packaging-control
  • 如何在Ubuntu上安装NVIDIA显卡驱动?
  • leetcode 141. Linked List Cycle
  • AtCoder Regular Contest 197 Div2 A,B题解
  • 实验六 基于Python的数字图像压缩算法
  • 全自动舆情监控系统实现方案
  • 在地震资料柯希霍夫积分法深度偏移大规模成像中,五维旅行时表高效处理策略
  • Spring MVC中Controller是如何把数据传递给View的?
  • 自由浮动时间和总浮动时间对比
  • 学习整理使用php将SimpleXMLElement 对象解析成数组格式的方法
  • 『深夜_MySQL』数据库操作 字符集与检验规则
  • 桥接模式(Bridge)
  • 从 “机器人 +“ 到 “+ 机器人“:算力政策撬动的产业生态革命
  • 针对Mkdocs部署到Githubpages加速访问速度的一些心得
  • Flutter TabBar / TabBarView 详解
  • 蓝桥杯青少 图形化编程——“星星”点灯
  • hadoop中的序列化和反序列化(2)
  • 软件开发各阶段的自动化测试技术详解