admin.php 11.1 KB
<?php
/**
 * WordPress Administration Bootstrap
 *
 * @package WordPress
 * @subpackage Administration
 */

/**
 * In WordPress Administration Screens
 *
 * @since 2.3.2
 */
if ( ! defined('WP_ADMIN') )
    define('WP_ADMIN', true);

if ( ! defined('WP_NETWORK_ADMIN') )
    define('WP_NETWORK_ADMIN', false);

if ( ! defined('WP_USER_ADMIN') )
    define('WP_USER_ADMIN', false);

if ( ! WP_NETWORK_ADMIN && ! WP_USER_ADMIN ) {
    define('WP_BLOG_ADMIN', true);
}

if ( isset($_GET['import']) && !defined('WP_LOAD_IMPORTERS') )
    define('WP_LOAD_IMPORTERS', true);

require_once(dirname(dirname(__FILE__)) . '/wp-load.php');

nocache_headers();

if ( get_option('db_upgraded') ) {
    flush_rewrite_rules();
    update_option( 'db_upgraded',  false );

    /**
     * Runs on the next page load after successful upgrade
     *
     * @since 2.8
     */
    do_action('after_db_upgrade');
} elseif ( get_option('db_version') != $wp_db_version && empty($_POST) ) {
    if ( !is_multisite() ) {
        wp_redirect( admin_url( 'upgrade.php?_wp_http_referer=' . urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) ) ) );
        exit;
    } elseif ( apply_filters( 'do_mu_upgrade', true ) ) {
        /**
         * On really small MU installs run the upgrader every time,
         * else run it less often to reduce load.
         *
         * @since 2.8.4b
         */
        $c = get_blog_count();
        // If 50 or fewer sites, run every time. Else, run "about ten percent" of the time. Shh, don't check that math.
        if ( $c <= 50 || ( $c > 50 && mt_rand( 0, (int)( $c / 50 ) ) == 1 ) ) {
            require_once( ABSPATH . WPINC . '/http.php' );
            $response = wp_remote_get( admin_url( 'upgrade.php?step=1' ), array( 'timeout' => 120, 'httpversion' => '1.1' ) );
            do_action( 'after_mu_upgrade', $response );
            unset($response);
        }
        unset($c);
    }
}

require_once(ABSPATH . 'wp-admin/includes/admin.php');

auth_redirect();

// Schedule trash collection
if ( !wp_next_scheduled('wp_scheduled_delete') && !defined('WP_INSTALLING') )
    wp_schedule_event(time(), 'daily', 'wp_scheduled_delete');

set_screen_options();

$date_format = get_option('date_format');
$time_format = get_option('time_format');

wp_enqueue_script( 'common' );

$editing = false;

if ( isset($_GET['page']) ) {
    $plugin_page = wp_unslash( $_GET['page'] );
    $plugin_page = plugin_basename($plugin_page);
}

if ( isset( $_REQUEST['post_type'] ) && post_type_exists( $_REQUEST['post_type'] ) )
    $typenow = $_REQUEST['post_type'];
else
    $typenow = '';

if ( isset( $_REQUEST['taxonomy'] ) && taxonomy_exists( $_REQUEST['taxonomy'] ) )
    $taxnow = $_REQUEST['taxonomy'];
else
    $taxnow = '';

if ( WP_NETWORK_ADMIN )
    require(ABSPATH . 'wp-admin/network/menu.php');
elseif ( WP_USER_ADMIN )
    require(ABSPATH . 'wp-admin/user/menu.php');
else
    require(ABSPATH . 'wp-admin/menu.php');

if ( current_user_can( 'manage_options' ) )
    @ini_set( 'memory_limit', apply_filters( 'admin_memory_limit', WP_MAX_MEMORY_LIMIT ) );

do_action('admin_init');

if ( isset($plugin_page) ) {
    if ( !empty($typenow) )
        $the_parent = $pagenow . '?post_type=' . $typenow;
    else
        $the_parent = $pagenow;
    if ( ! $page_hook = get_plugin_page_hook($plugin_page, $the_parent) ) {
        $page_hook = get_plugin_page_hook($plugin_page, $plugin_page);
        // backwards compatibility for plugins using add_management_page
        if ( empty( $page_hook ) && 'edit.php' == $pagenow && '' != get_plugin_page_hook($plugin_page, 'tools.php') ) {
            // There could be plugin specific params on the URL, so we need the whole query string
            if ( !empty($_SERVER[ 'QUERY_STRING' ]) )
                $query_string = $_SERVER[ 'QUERY_STRING' ];
            else
                $query_string = 'page=' . $plugin_page;
            wp_redirect( admin_url('tools.php?' . $query_string) );
            exit;
        }
    }
    unset($the_parent);
}

$hook_suffix = '';
if ( isset($page_hook) )
    $hook_suffix = $page_hook;
else if ( isset($plugin_page) )
    $hook_suffix = $plugin_page;
else if ( isset($pagenow) )
    $hook_suffix = $pagenow;

set_current_screen();

// Handle plugin admin pages.
if ( isset($plugin_page) ) {
    if ( $page_hook ) {
        do_action('load-' . $page_hook);
        if (! isset($_GET['noheader']))
            require_once(ABSPATH . 'wp-admin/admin-header.php');

        do_action($page_hook);
    } else {
        if ( validate_file($plugin_page) )
            wp_die(__('Invalid plugin page'));

        if ( !( file_exists(WP_PLUGIN_DIR . "/$plugin_page") && is_file(WP_PLUGIN_DIR . "/$plugin_page") ) && !( file_exists(WPMU_PLUGIN_DIR . "/$plugin_page") && is_file(WPMU_PLUGIN_DIR . "/$plugin_page") ) )
            wp_die(sprintf(__('Cannot load %s.'), htmlentities($plugin_page)));

        do_action('load-' . $plugin_page);

        if ( !isset($_GET['noheader']))
            require_once(ABSPATH . 'wp-admin/admin-header.php');

        if ( file_exists(WPMU_PLUGIN_DIR . "/$plugin_page") )
            include(WPMU_PLUGIN_DIR . "/$plugin_page");
        else
            include(WP_PLUGIN_DIR . "/$plugin_page");
    }

    include(ABSPATH . 'wp-admin/admin-footer.php');

    exit();
} else if (isset($_GET['import'])) {

    $importer = $_GET['import'];

    if ( ! current_user_can('import') )
        wp_die(__('You are not allowed to import.'));

    if ( validate_file($importer) ) {
        wp_redirect( admin_url( 'import.php?invalid=' . $importer ) );
        exit;
    }

    if ( ! isset($wp_importers[$importer]) || ! is_callable($wp_importers[$importer][2]) ) {
        wp_redirect( admin_url( 'import.php?invalid=' . $importer ) );
        exit;
    }

    do_action( 'load-importer-' . $importer );

    $parent_file = 'tools.php';
    $submenu_file = 'import.php';
    $title = __('Import');

    if (! isset($_GET['noheader']))
        require_once(ABSPATH . 'wp-admin/admin-header.php');

    require_once(ABSPATH . 'wp-admin/includes/upgrade.php');

    define('WP_IMPORTING', true);

    if ( apply_filters( 'force_filtered_html_on_import', false ) )
        kses_init_filters();  // Always filter imported data with kses on multisite.

    call_user_func($wp_importers[$importer][2]);

    include(ABSPATH . 'wp-admin/admin-footer.php');

    // Make sure rules are flushed
    flush_rewrite_rules(false);

    exit();
} else {
    //do_action("load-$pagenow");
    // Backwards compatibility with old load-page-new.php, load-page.php,
    // and load-categories.php actions.
    if ( $typenow == 'page' ) {
        if ( $pagenow == 'post-new.php' )
            do_action( 'load-page-new.php' );
        elseif ( $pagenow == 'post.php' )
            do_action( 'load-page.php' );
    }  elseif ( $pagenow == 'edit-tags.php' ) {
        if ( $taxnow == 'category' )
            do_action( 'load-categories.php' );
        elseif ( $taxnow == 'link_category' )
            do_action( 'load-edit-link-categories.php' );
    }
}

if ( !empty($_REQUEST['action']) )
    do_action('admin_action_' . $_REQUEST['action']);




//删除关键词dst
function keywords_delete($id){
    global $wpdb;
    $tableName='wp_term_flag';
    $is_table = $wpdb->query('SHOW TABLES LIKE "' . $tableName . '"');
    if($is_table){
        if($wpdb->query($wpdb->prepare("DELETE FROM wp_term_news WHERE term_id = %d",$id))){
            $wpdb->query($wpdb->prepare("DELETE FROM wp_term_flag WHERE term_id= %d",$id));
        }
    }

}
keywords_exist();
function keywords_exist(){
    global $wpdb;
    $tb_flag = 'wp_term_flag';
    $tb_news = 'wp_term_news';
    $is_flag= $wpdb->query('SHOW TABLES LIKE "' . $tb_flag . '"');
    $is_news= $wpdb->query('SHOW TABLES LIKE "' . $tb_news . '"');

    if(!$is_flag&&!$is_news){
        $table_flag=$wpdb->query("CREATE TABLE IF NOT EXISTS `wp_term_flag`(`id` int(11) NOT NULL AUTO_INCREMENT,`term` varchar(512) DEFAULT NULL COMMENT '关键词',`term_id` int(11) DEFAULT NULL COMMENT '关键词表id',`tflag` tinyint(1) DEFAULT '1' COMMENT '爬取标记:1未爬取2已爬取',`intime` datetime DEFAULT NULL COMMENT '添加时间',PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC");
        $table_news=$wpdb->query("CREATE TABLE IF NOT EXISTS `wp_term_news` (`id` int(11) NOT NULL AUTO_INCREMENT,`term_id` int(11) DEFAULT NULL COMMENT '关键词id',`title` varchar(512) DEFAULT NULL COMMENT '标题',`vurl` varchar(512) DEFAULT NULL COMMENT '视频连接',`content` longtext COMMENT '新闻内容',`sorts` tinyint(1) DEFAULT '1' COMMENT '分类:1新闻2视频',`adtime` datetime DEFAULT NULL COMMENT '添加时间',PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC");
        if($table_flag&&$table_news){
            $res = $wpdb->get_results( $wpdb->prepare( "SELECT tt.term_id,t.name FROM $wpdb->term_taxonomy AS tt LEFT JOIN $wpdb->terms AS t ON tt.term_id = t.term_id WHERE tt.taxonomy = %s ", 'post_tag'),ARRAY_A);
            $term_arr=array();
            foreach($res as $key=>$vo){
                $tm=date('Y-m-d H:i:s');
                if($vo['name']&&$vo['term_id']){
                    $is_success= $wpdb->query($wpdb->prepare("INSERT INTO wp_term_flag (term,term_id,intime) VALUES (%s,%d,%s)",$vo['name'],$vo['term_id'],$tm));
                    if($is_success){
                        $term_arr[$key]['term_id']=$vo['term_id'];
                        $term_arr[$key]['name']=$vo['name'];
                    }
                }
            }
            if($term_arr){
                redis_keywords($term_arr);
            }
        }
    }
}
function redis_keywords($data_news){//将关键词传送到redis-list
    $posturl='http://45.136.130.176:10001/keywords-redis.php';
    $keywords_url=$_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'].'/wp-admin/insert-keywords.php';//回调地址
    $video_url=$_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'].'/wp-admin/insert-video.php';//回调地址
    $redis_arr=array();
    foreach ($data_news as $k=>$v){
        if($v['name']&&$v['term_id']){
            $api_key=sha1(md5('dst').$v['term_id']);
            $redis_arr[$k]['googlenews']=$v['term_id'].'&&'.$v['name'].'&&'.$keywords_url.'&&'.$api_key;
            $redis_arr[$k]['youtobe']=$v['term_id'].'&&'.$v['name'].'&&'.$video_url.'&&'.$api_key;
        }
    }
    if($redis_arr){
        //初使化init方法
        $ch = curl_init();
        //指定URL
        curl_setopt($ch, CURLOPT_URL, $posturl);
        //设定请求后返回结果
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        //声明使用POST方式来进行发送
        curl_setopt($ch, CURLOPT_POST, 1);

        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //不验证证书下同
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        //发送数据
        curl_setopt($ch, CURLOPT_POSTFIELDS,json_encode($redis_arr,true));
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'Content-Type:application/json',
            'charset=utf-8'
        ));
        //忽略header头信息
        curl_setopt($ch, CURLOPT_HEADER, 0);
        //设置超时时间
        curl_setopt($ch, CURLOPT_TIMEOUT, 60);
        //发送请求
        curl_exec($ch);
        curl_close($ch);
    }
}