博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
开源欣赏wordpress之post.php
阅读量:6721 次
发布时间:2019-06-25

本文共 7006 字,大约阅读时间需要 23 分钟。

switch($action) {case 'postajaxpost':case 'post':case 'post-quickpress-publish':case 'post-quickpress-save':    check_admin_referer('add-' . $post_type);    if ( 'post-quickpress-publish' == $action )        $_POST['publish'] = 'publish'; // tell write_post() to publish    if ( 'post-quickpress-publish' == $action || 'post-quickpress-save' == $action ) {        $_POST['comment_status'] = get_option('default_comment_status');        $_POST['ping_status'] = get_option('default_ping_status');        $post_id = edit_post();    } else {        $post_id = 'postajaxpost' == $action ? edit_post() : write_post();    }    if ( 0 === strpos( $action, 'post-quickpress' ) ) {        $_POST['post_ID'] = $post_id;        // output the quickpress dashboard widget        require_once(ABSPATH . 'wp-admin/includes/dashboard.php');        wp_dashboard_quick_press();        exit;    }    redirect_post($post_id);    exit();    break;case 'edit':    $editing = true;    if ( empty( $post_id ) ) {        wp_redirect( admin_url('post.php') );        exit();    }    if ( ! $post )        wp_die( __( 'You attempted to edit an item that doesn’t exist. Perhaps it was deleted?' ) );    if ( ! $post_type_object )        wp_die( __( 'Unknown post type.' ) );    if ( ! current_user_can( 'edit_post', $post_id ) )        wp_die( __( 'You are not allowed to edit this item.' ) );    if ( 'trash' == $post->post_status )        wp_die( __( 'You can’t edit this item because it is in the Trash. Please restore it and try again.' ) );    if ( ! empty( $_GET['get-post-lock'] ) ) {        wp_set_post_lock( $post_id );        wp_redirect( get_edit_post_link( $post_id, 'url' ) );        exit();    }    $post_type = $post->post_type;    if ( 'post' == $post_type ) {        $parent_file = "edit.php";        $submenu_file = "edit.php";        $post_new_file = "post-new.php";    } elseif ( 'attachment' == $post_type ) {        $parent_file = 'upload.php';        $submenu_file = 'upload.php';        $post_new_file = 'media-new.php';    } else {        if ( isset( $post_type_object ) && $post_type_object->show_in_menu && $post_type_object->show_in_menu !== true )            $parent_file = $post_type_object->show_in_menu;        else            $parent_file = "edit.php?post_type=$post_type";        $submenu_file = "edit.php?post_type=$post_type";        $post_new_file = "post-new.php?post_type=$post_type";    }    if ( ! wp_check_post_lock( $post->ID ) ) {        $active_post_lock = wp_set_post_lock( $post->ID );        if ( 'attachment' !== $post_type )            wp_enqueue_script('autosave');    }    if ( is_multisite() ) {        add_action( 'admin_footer', '_admin_notice_post_locked' );    } else {        $check_users = get_users( array( 'fields' => 'ID', 'number' => 2 ) );        if ( count( $check_users ) > 1 )            add_action( 'admin_footer', '_admin_notice_post_locked' );        unset( $check_users );    }    $title = $post_type_object->labels->edit_item;    $post = get_post($post_id, OBJECT, 'edit');    if ( post_type_supports($post_type, 'comments') ) {        wp_enqueue_script('admin-comments');        enqueue_comment_hotkeys_js();    }    include( ABSPATH . 'wp-admin/edit-form-advanced.php' );    break;case 'editattachment':    check_admin_referer('update-post_' . $post_id);    // Don't let these be changed    unset($_POST['guid']);    $_POST['post_type'] = 'attachment';    // Update the thumbnail filename    $newmeta = wp_get_attachment_metadata( $post_id, true );    $newmeta['thumb'] = $_POST['thumb'];    wp_update_attachment_metadata( $post_id, $newmeta );case 'editpost':    check_admin_referer('update-post_' . $post_id);    $post_id = edit_post();    // Session cookie flag that the post was saved    if ( isset( $_COOKIE['wp-saving-post-' . $post_id] ) )        setcookie( 'wp-saving-post-' . $post_id, 'saved' );    redirect_post($post_id); // Send user on their way while we keep working    exit();    break;case 'trash':    check_admin_referer('trash-post_' . $post_id);    if ( ! $post )        wp_die( __( 'The item you are trying to move to the Trash no longer exists.' ) );    if ( ! $post_type_object )        wp_die( __( 'Unknown post type.' ) );    if ( ! current_user_can( 'delete_post', $post_id ) )        wp_die( __( 'You are not allowed to move this item to the Trash.' ) );    if ( $user_id = wp_check_post_lock( $post_id ) ) {        $user = get_userdata( $user_id );        wp_die( sprintf( __( 'You cannot move this item to the Trash. %s is currently editing.' ), $user->display_name ) );    }    if ( ! wp_trash_post( $post_id ) )        wp_die( __( 'Error in moving to Trash.' ) );    wp_redirect( add_query_arg( array('trashed' => 1, 'ids' => $post_id), $sendback ) );    exit();    break;case 'untrash':    check_admin_referer('untrash-post_' . $post_id);    if ( ! $post )        wp_die( __( 'The item you are trying to restore from the Trash no longer exists.' ) );    if ( ! $post_type_object )        wp_die( __( 'Unknown post type.' ) );    if ( ! current_user_can( 'delete_post', $post_id ) )        wp_die( __( 'You are not allowed to move this item out of the Trash.' ) );    if ( ! wp_untrash_post( $post_id ) )        wp_die( __( 'Error in restoring from Trash.' ) );    wp_redirect( add_query_arg('untrashed', 1, $sendback) );    exit();    break;case 'delete':    check_admin_referer('delete-post_' . $post_id);    if ( ! $post )        wp_die( __( 'This item has already been deleted.' ) );    if ( ! $post_type_object )        wp_die( __( 'Unknown post type.' ) );    if ( ! current_user_can( 'delete_post', $post_id ) )        wp_die( __( 'You are not allowed to delete this item.' ) );    $force = ! EMPTY_TRASH_DAYS;    if ( $post->post_type == 'attachment' ) {        $force = ( $force || ! MEDIA_TRASH );        if ( ! wp_delete_attachment( $post_id, $force ) )            wp_die( __( 'Error in deleting.' ) );    } else {        if ( ! wp_delete_post( $post_id, $force ) )            wp_die( __( 'Error in deleting.' ) );    }    wp_redirect( add_query_arg('deleted', 1, $sendback) );    exit();    break;case 'preview':    check_admin_referer( 'autosave', 'autosavenonce' );    $url = post_preview();    wp_redirect($url);    exit();    break;default:    wp_redirect( admin_url('edit.php') );    exit();    break;} // end switch

这里针对不同的action进行不同的操作。

check_admin_referer('untrash-post_' . $post_id);    if ( ! $post )        wp_die( __( 'The item you are trying to restore from the Trash no longer exists.' ) );    if ( ! $post_type_object )        wp_die( __( 'Unknown post type.' ) );    if ( ! current_user_can( 'delete_post', $post_id ) )        wp_die( __( 'You are not allowed to move this item out of the Trash.' ) );    if ( ! wp_untrash_post( $post_id ) )        wp_die( __( 'Error in restoring from Trash.' ) );    wp_redirect( add_query_arg('untrashed', 1, $sendback) );    exit();    break;

点评:采用这种写法,统一。同时也非常的美观。if嵌套太多的代码不是好代码。

本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/3450401.html,如需转载请自行联系原作者

你可能感兴趣的文章
解决应用服务器变为集群后的Session问题
查看>>
【BZOJ】2406 矩阵
查看>>
Tcl internal variables
查看>>
springcloud文章推荐
查看>>
java分享第十四天(TestNG Assert详解)
查看>>
一个JNI的helloworld小demo
查看>>
网络编程总结
查看>>
NIC Bonding: 2 nic port as 1 interface
查看>>
动态代理--jdk和cglib
查看>>
mysql sum count 性能优化 ----测试数据22万条
查看>>
Codeforces707Div2
查看>>
SSM常用pom依赖
查看>>
Python中用datetime包进行对时间的一些操作
查看>>
Web.xml配置详解之context-param
查看>>
WIKI扫盲手册
查看>>
Javascript - ExtJs - 整合百度文章编辑器
查看>>
JS分两种数据类型,你都知道吗?
查看>>
Bash条件判断
查看>>
JSF 2.0 + Ajax hello world example
查看>>
Firefox 插件 FlashGot 创建 Axel 下载任务
查看>>