百独托管7500 紫田网络超高转化播放器收cps[推荐]速盾CDN 免实名免备防屏蔽阿里云 爆款特卖9.9元封顶提升alexa、IP流量7Q5团队
【腾讯云】中小企福利专场【腾讯云】多款产品1折起高防 随时退换 好耶数据小飞国外网赚带你月入万元炎黄网络4H4G10M 99每月
香港带宽CN2/美国站群优惠中客数据中心 服务器租用联盟系统移动广告平台 中易企业专场腾讯云服务器2.5折九九数据 工信部正规资质
腾讯云新用户大礼包代金券高价收cpa注册量高价展示【腾讯云】2核2G/9.93起租服务器找45互联 随时退换阿里云 短信服务 验证秒达

[闲聊畅谈] wordpress 自用火车头免登录发布 [复制链接]
查看:1668 | 回复:14

428

主题

2712

帖子

3162

积分

落伍者(两全齐美)

Rank: 2

贡献
653
鲜花
17
注册时间
2012-7-2

落伍者落伍手机绑定

发表于 2020-11-23 12:26:15 | 显示全部楼层 |阅读模式 来自 中国云南昆明
<?php


//-------------------配置参数开始,根据需要修改-------------------------
$post_author_default    = 1;                                      //默认作者的id,默认为admin(这里是作者ID号码,并非作者名)
$post_status                        = 'future';            //立即发布 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                         = false;                   //接口密码,如果需要密码,则设为$secretWord='你的密码';       
$checkTitle                         = false;                             //检测标题是否重复
$postformat                               = true;                               //开启文章形式
//-------------------配置参数结束,以下请勿修改-------------------------


//开始
if(isset($_GET['action'])){
  $hm_action=$_GET['action'];
}else{
  die("操作被禁止>");
}

$post = $_POST;

include_once "./wp-config.php";
if($post_ping) require_once("./wp-includes/comment.php");

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('接口密码错误,请修改配置文件或者修改发布参数,保持两者统一。');
    }
  }

  extract($post);
  //判断标题是否为空
  if ($post_title=='[标题]'||$post_title=='') {die('标题为空');}
  //检查标题是否重复
  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) {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');



  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.".".$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'){
      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();
}
?>
回复

使用道具 举报

230

主题

7万

帖子

6万

积分

落伍者(五谷丰登)

哆啦D梦

Rank: 8Rank: 8

贡献
4106
鲜花
46
注册时间
2007-2-19

QQ绑定落伍手机绑定落伍者

发表于 2020-11-23 12:32:36 | 显示全部楼层 来自 中国广东珠海
是技术贴吗?
www.zhgov.com << 帮人挂
回复 支持 反对

使用道具 举报

73

主题

1万

帖子

2万

积分

落伍者(四季发财)

装B比卖B更可耻

Rank: 4

贡献
16874
鲜花
22
注册时间
2006-4-3

QQ绑定落伍者落伍手机绑定

发表于 2020-11-23 13:18:23 | 显示全部楼层 来自 中国辽宁大连
另存了
回复

使用道具 举报

252

主题

7437

帖子

4365

积分

落伍者(两全齐美)

木头菩萨

Rank: 2

贡献
3927
鲜花
19
注册时间
2007-10-27

落伍手机绑定

发表于 2020-11-23 13:20:35 | 显示全部楼层 来自 中国湖南长沙
mark
回复

使用道具 举报

831

主题

4246

帖子

4107

积分

落伍者(两全齐美)

Rank: 2

贡献
971
鲜花
3
注册时间
2010-6-7

落伍者落伍手机绑定

发表于 2020-11-23 13:51:29 | 显示全部楼层 来自 中国湖北武汉
报错否呢
回复

使用道具 举报

723

主题

2万

帖子

5613

积分

落伍者(三羊开泰)

Rank: 3Rank: 3

贡献
361
鲜花
7
注册时间
2007-9-23

落伍手机绑定

发表于 2020-11-23 15:36:41 | 显示全部楼层 来自 中国广东深圳
wordpress有一个专用接口发布的

XmlRpcV2
回复 支持 反对

使用道具 举报

头像被屏蔽

1万

主题

16万

帖子

17万

积分

禁言

祖传专业维修、加固处囡膜

贡献
19632
鲜花
2637
注册时间
2005-2-27

落伍手机绑定

发表于 2020-11-23 16:29:22 | 显示全部楼层 来自 中国广东广州
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

头像被屏蔽

1万

主题

3万

帖子

9232

积分

禁言

贡献
413
鲜花
181
注册时间
2010-7-11

QQ绑定落伍手机绑定

发表于 2020-11-23 16:30:38 | 显示全部楼层 来自 中国河南平顶山
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

3418

主题

2万

帖子

2万

积分

落伍者(四季发财)

Rank: 4

贡献
2356
鲜花
96
注册时间
2009-11-24

QQ绑定落伍者落伍手机绑定

发表于 2020-11-23 16:30:53 | 显示全部楼层 来自 中国江苏南通
适用什么版本啊
回复 支持 反对

使用道具 举报

773

主题

2895

帖子

4万

积分

落伍者(四季发财)

Rank: 4

贡献
728
鲜花
19
注册时间
2014-4-18

落伍者落伍微信绑定落伍手机绑定

发表于 2020-11-23 18:00:20 | 显示全部楼层 来自 中国广东江门
马克一下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

论坛客服/商务合作/投诉举报:2171544 (QQ)
落伍者创建于2001/03/14,本站内容均为会员发表,并不代表落伍立场!
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!
落伍官方微信:2030286 邮箱:(djfsys@gmail.com|tech@im286.com)
© 2001-2014

浙公网安备 33060302000191号

浙ICP备11034705号 BBS专项电子公告通信管[2010]226号

  落伍法律顾问: ITlaw-庄毅雄

手机版|找回帐号|不能发帖?|Archiver|落伍者

GMT+8, 2025-2-21 21:40 , Processed in 0.092816 second(s), 31 queries , Gzip On.

返回顶部