static function init() { //Links in plugins list add_filter('plugin_row_meta', array(__CLASS__, 'registerPluginLinks'), 10, 2); require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . './inc/options.php'; if (BaidusubmitOptions::getOption('openping')) { //Existing posts was trash add_action('trash_post', array(__CLASS__, 'deletePost'), 9999, 1); add_action('trash_page', array(__CLASS__, 'deletePost'), 9999, 1); //Existing post was published add_action('publish_post', array(__CLASS__, 'publishPost'), 9999, 1); add_action('publish_page', array(__CLASS__, 'publishPost'), 9999, 1); } //Menus add_action('admin_menu', array(__CLASS__, 'registerAdminPage')); }
static function uninstall() { require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'options.php'; require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'sitemap.php'; $siteurl = BaidusubmitOptions::getOption('siteurl'); $token = BaidusubmitOptions::getOption('pingtoken'); $sppasswd = BaidusubmitOptions::getOption('sppasswd'); $sign = md5($siteurl . $token); BaidusubmitSitemap::submitIndex('del', BaidusubmitSitemap::TYPE_ALL, $siteurl, $sppasswd, $sign); BaidusubmitSitemap::submitIndex('del', BaidusubmitSitemap::TYPE_INC, $siteurl, $sppasswd, $sign); BaidusubmitOptions::clearAllOptions(); global $wpdb; foreach (array_keys(self::$createTableSql) as $table) { $fulltable = $wpdb->prefix . $table; $wpdb->query("DROP TABLE {$fulltable}"); } }
static function showAdminPage() { require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'options.php'; $siteurl = BaidusubmitOptions::getOption('siteurl'); $openping = BaidusubmitOptions::getOption('openping'); $token = BaidusubmitOptions::getOption('pingtoken'); self::showHeader('admin'); if (self::$isUpdated) { echo '<div class="updated"><strong><p>', __('Configuration saved', 'sitemap'), '</p></strong></div>'; } echo '<div class="titlebar">', __('Introduction & Description', 'sitemap'), '</div>'; echo '<ul> <li>', __('After installing Baidu Sitemaps, you can quickly and completely submit webpages and content to Baidu. It helps you with the following:', 'sitemap'), '</li> <li> ', __('1) Baidu Spider will better understand and include your site', 'sitemap'), ' </li> <li> ', __('2) Baidu Search will better display results from your site', 'sitemap'), ' </li> <!--<li> ', __('You can also go to Baidu Webmaster Platform and submit: Sitemap | Structured Data | Broken Link Submission', 'sitemap'), ' </li>--> <li> ', __('When using our products, please send any comments or suggestions to the Baidu Webmaster Feedback Center', 'sitemap'), ' </li> </ul>'; ?> <script type="text/javascript"> function baidu_ajaxpost2(formid, showid, submitid) { var $ = jQuery; $('#'+showid).html('<?php echo __('Verifying...', 'sitemap'); ?> '); var curform = $('#'+formid)[0]; $('#'+submitid)[0].disabled = true; $('#'+showid)[0].className = ''; var postdata = { 'siteurl' : curform.elements['siteurl'].value }; $.post(curform.action, postdata, function(s) { s = eval('(' + s + ')'); $('#'+showid).html(s.msg); if (s.error === 0) { $('#'+showid)[0].className = authStatus.success.msgclass; $('#'+submitid)[0].value = authStatus.success.btntext; $('#siteurl')[0].disabled = true; $('#siteurl')[0].className = authStatus.success.inputclass; //打开全局 bds_isExist = 1; } else { $('#'+showid)[0].className = authStatus.failed.msgclass; $('#'+submitid)[0].value = authStatus.failed.btntext; $('#siteurl')[0].disabled = false; $('#siteurl')[0].className = authStatus.failed.inputclass; } $('#'+submitid)[0].disabled = false; }); return false; } var bds_isExist = <?php if ($token) { echo '1'; } else { echo '0'; } ?> ; var authStatus = { 'success':{ 'btntext': '<?php echo __('Re-verify', 'sitemap'); ?> ', 'msgclass': 'success-msg', 'inputclass': 'dsclass' }, 'failed':{ 'btntext': '<?php echo __('Verify', 'sitemap'); ?> ', 'msgclass': 'failed-msg', 'inputclass': '' } }; function formsubmit() { if (1 === bds_isExist) { var $ = jQuery; $('#submitbutton')[0].value = '<?php echo __('Verify', 'sitemap'); ?> '; $('#siteurl')[0].disabled = false; $('#siteurl')[0].className = ''; $('#returnmessage')[0].innerHTML = ''; bds_isExist = 0; } else { baidu_ajaxpost2('authform', 'returnmessage', 'submitbutton'); } return false; } </script> <style type="text/css"> h2 { border-bottom: 1px solid #DFDFDF; padding: 0 0 10px !important } div.updated { margin: 5px 0 15px; } .titlebar { background:#DFDFDF; padding:5px;} .dsclass { background:#EEEEEE !important; } .failed-msg { color:#FF0000; } .success-msg { } .radio-box {overflow:auto; zoom:1} .radio-box li { display: inline-block; float: left; margin-right: 20px;} #authform input {margin-left: 15px; } #returnmessage {margin-left: 15px; } </style> <?php echo '<div class="titlebar">', __('Site verification', 'sitemap'), '</div>'; echo '<ul><li><form action="admin.php?page=baidu_admin&action=auth" method="post" id="authform" onsubmit="return formsubmit()">', __('System installation URL path', 'sitemap'), '<input type="text" id="siteurl" name="siteurl" style="width:300px;" ', $siteurl && $token ? 'disabled="disabled" class="dsclass" value="' . $siteurl . '"' : 'value="' . get_option('siteurl') . '"', ' />', '<input id="submitbutton" type="submit" class="button botton-secondary" value="', __($siteurl && $token ? 'Re-verify' : 'Verify', 'sitemap'), '" /><span id="returnmessage"></span>', '</form></li></ul>'; echo '<div class="titlebar">', __('Active submit', 'sitemap'), '</div>', '<form action="admin.php?page=baidu_admin&action=savesetting" method="post">', '<ul class="radio-box">', '<li><label for="baidusubmit-openping-1">', '<input type="radio" value="1" name="openping"' . ($openping ? ' checked="checked"' : '') . ' />', __('Enable'), '</label></li>', '<li><label for="baidusubmit-openping-0">', '<input type="radio" value="0" name="openping"' . (!$openping ? ' checked="checked"' : '') . ' />', __('Disable'), '</label></li>', '<li><input type="submit" class="button button-secondary" value="', __('Save'), '" /></li>', '</ul>', '</form>'; }
BaidusubmitSitemap::printIndexFooter(); } //全量sitemap if ('sitemapall' === $_GET['m']) { $start_tid = intval($_GET['start']); $sitemap = BaidusubmitSitemap::getSitemap(BaidusubmitSitemap::TYPE_ALL, $start_tid); if (empty($sitemap)) { BaidusubmitSitemap::headerStatus(404); return 1; } $end_tid = $sitemap->end; $pidlist = BaidusubmitSitemap::getPostIdByIdRange($start_tid, $end_tid); $itemCount = 0; $fileSize = 0; $urlnum = 0; $installmaxtid = BaidusubmitOptions::getOption('installmaxtid'); header('Content-Type: text/xml; charset=utf-8'); echo '<?xml version="1.0" encoding="UTF-8"?><urlset>'; foreach ($pidlist as $pid) { $schema = BaidusubmitSitemap::genSchemaByPostId($pid, $post); $output = $schema->toXml() . "\n"; $fileSizeCheck = $fileSize + strlen($output); $itemCountCheck = $itemCount + 1; // split sitemap file if ($fileSizeCheck >= 1024 * 1024 * 8 || $itemCountCheck > 5000) { // concurrent request $sp = BaidusubmitSitemap::getSitemap(BaidusubmitSitemap::TYPE_ALL, $start_tid, $end_tid); if ($sp) { $new_start_tid = $post->ID; $past_tid = $new_start_tid - $start_tid - 1; $count = ceil(($end_tid - $new_start_tid) / $past_tid);
static function sendXml($xml, $type) { require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'options.php'; $siteurl = BaidusubmitOptions::getOption('siteurl'); $token = BaidusubmitOptions::getOption('pingtoken'); if (!$token) { return false; } $const = (include dirname(__FILE__) . DIRECTORY_SEPARATOR . 'const.php'); $pingurl = $const['zzpingurl']; if ($type === 1) { //新增或更新 $url .= $pingurl . '?site=' . urlencode($siteurl) . '&resource_name=RDF_Other_Blogposting&method=add'; } if ($type === 2) { //删除 $url .= $pingurl . '?site=' . urlencode($siteurl) . '&resource_name=sitemap&method=del'; } $sign = md5($siteurl . $xml . $token); $url .= '&sign=' . $sign; return self::httpSend($url, 0, $xml); }
<?php if (!function_exists('add_action')) { require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . './../../../wp-config.php'; } require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'inc/options.php'; $checksign = $_GET['checksign']; if (!$checksign || strlen($checksign) !== 32) { exit; } $data = BaidusubmitOptions::getOption('checksign', null, true); if (isset($data['time']) && $data['value'] == $checksign && time() - $data['time'] < 30) { echo $data['value']; }