forked from owen0o0/WebStack
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
投稿面板文件名称修改
- Loading branch information
Showing
8 changed files
with
194 additions
and
36 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,127 @@ | ||
<?php | ||
if ( ! defined( 'ABSPATH' ) ) { exit; } | ||
|
||
//图片上传 | ||
add_action('wp_ajax_nopriv_img_upload', 'io_img_upload'); | ||
add_action('wp_ajax_img_upload', 'io_img_upload'); | ||
function io_img_upload(){ | ||
$extArr = array("jpg", "png", "jpeg"); | ||
$file = $_FILES['files']; | ||
if ( !empty( $file ) ) { | ||
$wp_upload_dir = wp_upload_dir(); // 获取上传目录信息 | ||
$basename = $file['name']; | ||
$baseext = pathinfo($basename, PATHINFO_EXTENSION); | ||
$dataname = date("YmdHis_").substr(md5(time()), 0, 8) . '.' . $baseext; | ||
$filename = $wp_upload_dir['path'] . '/' . $dataname; | ||
rename( $file['tmp_name'], $filename ); // 将上传的图片文件移动到上传目录 | ||
$attachment = array( | ||
'guid' => $wp_upload_dir['url'] . '/' . $dataname, // 外部链接的 url | ||
'post_mime_type' => $file['type'], // 文件 mime 类型 | ||
'post_title' => preg_replace( '/\.[^.]+$/', '', $basename ), // 附件标题,采用去除扩展名之后的文件名 | ||
'post_content' => '', // 文章内容,留空 | ||
'post_status' => 'inherit' | ||
); | ||
$attach_id = wp_insert_attachment( $attachment, $filename ); // 插入附件信息 | ||
if($attach_id != 0){ | ||
require_once( ABSPATH . 'wp-admin/includes/image.php' ); // 确保包含此文件,因为wp_generate_attachment_metadata()依赖于此文件。 | ||
$attach_data = wp_generate_attachment_metadata( $attach_id, $filename ); | ||
wp_update_attachment_metadata( $attach_id, $attach_data ); // 生成附件的元数据,并更新数据库记录。 | ||
print_r(json_encode(array('status'=>1,'msg'=>'图片添加成功','data'=>array('id'=>$attach_id,'src'=>wp_get_attachment_url( $attach_id ),'title'=>$basename)))); | ||
exit(); | ||
}else{ | ||
echo '{"status":4,"msg":"图片上传失败!"}'; | ||
exit(); | ||
} | ||
} | ||
} | ||
|
||
//删除图片 | ||
add_action('wp_ajax_nopriv_img_remove', 'io_img_remove'); | ||
add_action('wp_ajax_img_remove', 'io_img_remove'); | ||
function io_img_remove(){ | ||
$attach_id = $_POST["id"]; | ||
if( empty($attach_id) ){ | ||
echo '{"status":3,"msg":"没有上传图像!"}'; | ||
exit; | ||
} | ||
if ( false === wp_delete_attachment( $attach_id ) ) | ||
echo '{"status":4,"msg":"图片 '.$attach_id.' 删除失败!"}'; | ||
else | ||
echo '{"status":1,"msg":"删除成功!"}'; | ||
exit; | ||
} | ||
|
||
//提交文章 | ||
add_action('wp_ajax_nopriv_contribute_post', 'io_contribute'); | ||
add_action('wp_ajax_contribute_post', 'io_contribute'); | ||
function io_contribute(){ | ||
$delay = 40; | ||
if( isset($_COOKIE["tougao"]) && ( time() - $_COOKIE["tougao"] ) < $delay ){ | ||
error('{"status":2,"msg":"您投稿也太勤快了吧,'. ($delay - ( time() - $_COOKIE["tougao"] )).'秒后再试!"}'); | ||
} | ||
|
||
//表单变量初始化 | ||
$sites_link = isset( $_POST['tougao_sites_link'] ) ? trim(htmlspecialchars($_POST['tougao_sites_link'], ENT_QUOTES)) : ''; | ||
$sites_sescribe = isset( $_POST['tougao_sites_sescribe'] ) ? trim(htmlspecialchars($_POST['tougao_sites_sescribe'], ENT_QUOTES)) : ''; | ||
$title = isset( $_POST['tougao_title'] ) ? trim(htmlspecialchars($_POST['tougao_title'], ENT_QUOTES)) : ''; | ||
$category = isset( $_POST['tougao_cat'] ) ? $_POST['tougao_cat'] : '0'; | ||
$sites_ico = isset( $_POST['tougao_sites_ico'] ) ? trim(htmlspecialchars($_POST['tougao_sites_ico'], ENT_QUOTES)) : ''; | ||
$wechat_qr = isset( $_POST['tougao_wechat_qr'] ) ? trim(htmlspecialchars($_POST['tougao_wechat_qr'], ENT_QUOTES)) : ''; | ||
$content = isset( $_POST['tougao_content'] ) ? trim(htmlspecialchars($_POST['tougao_content'], ENT_QUOTES)) : ''; | ||
|
||
// 表单项数据验证 | ||
if ( $category == "0" ){ | ||
error('{"status":4,"msg":"请选择分类。"}'); | ||
} | ||
if ( !empty(get_term_children($category, 'favorites'))){ | ||
error('{"status":4,"msg":"不能选用父级分类目录。"}'); | ||
} | ||
if ( empty($sites_sescribe) || mb_strlen($sites_sescribe) > 50 ) { | ||
error('{"status":4,"msg":"网站描叙必须填写,且长度不得超过50字。"}'); | ||
} | ||
if ( empty($sites_link) && empty($wechat_qr) ){ | ||
error('{"status":3,"msg":"网站链接和公众号二维码至少填一项。"}'); | ||
} | ||
elseif ( !empty($sites_link) && !preg_match('/http(s)?:\/\/[\w.]+[\w\/]*[\w.]*\??[\w=&\+\%]*/is', $sites_link)) { | ||
error('{"status":4,"msg":"网站链接必须符合URL格式。"}'); | ||
} | ||
if ( empty($title) || mb_strlen($title) > 30 ) { | ||
error('{"status":4,"msg":"网站名称必须填写,且长度不得超过30字。"}'); | ||
} | ||
//if ( empty($content) || mb_strlen($content) > 10000 || mb_strlen($content) < 6) { | ||
// error('{"status":4,"msg":"内容必须填写,且长度不得超过10000字,不得少于6字。"}'); | ||
//} | ||
|
||
$tougao = array( | ||
'comment_status' => 'closed', | ||
'ping_status' => 'closed', | ||
//'post_author' => 1,//用于投稿的用户ID | ||
'post_title' => $title, | ||
'post_content' => $content, | ||
'post_status' => 'pending', | ||
'post_type' => 'sites', | ||
//'tax_input' => array( 'favorites' => array($category) ) //游客不可用 | ||
); | ||
|
||
// 将文章插入数据库 | ||
$status = wp_insert_post( $tougao ); | ||
if ($status != 0){ | ||
global $wpdb; | ||
add_post_meta($status, '_sites_sescribe', $sites_sescribe); | ||
add_post_meta($status, '_sites_link', $sites_link); | ||
add_post_meta($status, '_sites_order', '0'); | ||
if( !empty($sites_ico)) | ||
add_post_meta($status, '_thumbnail', $sites_ico); | ||
if( !empty($wechat_qr)) | ||
add_post_meta($status, '_wechat_qr', $wechat_qr); | ||
wp_set_post_terms( $status, array($category), 'favorites'); //设置文章分类 | ||
setcookie("tougao", time(), time()+$delay+10); | ||
error('{"status":1,"msg":"投稿成功!"}'); | ||
}else{ | ||
error('{"status":4,"msg":"投稿失败!"}'); | ||
} | ||
} | ||
function error($ErrMsg) { | ||
echo $ErrMsg; | ||
exit; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters