您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Redirects the new stats page to the classic stats page
- // ==UserScript==
- // @name WordPress.com classic stats
- // @namespace tpenguinltg
- // @description Redirects the new stats page to the classic stats page
- // @include https://wordpress.com/stats*
- // @version 2.3.0
- // @homepageURL https://greasyfork.org/en/scripts/8621-wordpress-com-classic-stats
- // @homepageURL https://github.com/tpenguinltg/wpcom-stats-redirect.user.js
- // @grant none
- // @license MPLv2.0; http://mozilla.org/MPL/2.0/
- // @copyright 2015-2017, tPenguinLTG (http://tpenguinltg.wordpress.com/)
- // @run-at document-start
- // ==/UserScript==
- var script = {
- start: function(path) {
- this.doRedirect(this.parseUri(path));
- },
- assembleUrl: function(base, period, query) {
- var queryPart = ["page=stats"].concat(query);
- switch (period) {
- case "day":
- queryPart.push("unit=1");
- break;
- case "week":
- queryPart.push("unit=7");
- break;
- case "month":
- queryPart.push("unit=31");
- break;
- }
- return base + "/wp-admin/index.php?" + queryPart.join("&");
- },
- parseUri: function(uri) {
- var parsedUri = uri.match(/stats(?:\/(insights|day|week|month|year))?(?:\/(countryviews|posts))?(?:\/([^\/]*))?/);
- return {
- statsType: parsedUri[1],
- viewType: parsedUri[2],
- blogDomain: parsedUri[3],
- }
- },
- doRedirect: function(tokens) {
- if (tokens.blogDomain) {
- // Redirect to post URL based on API results
- // API docs: https://developer.wordpress.com/docs/api/
- this.utils.apiFetch("/sites/" + tokens.blogDomain,
- // attempt to redirect using API
- (function(data) {
- this.utils.locationReplace(this.assembleUrl(data.URL, tokens.statsType));
- }).bind(this),
- // fallback: attempt to use the blog domain
- (function() {
- // use http instead of https in case the server doesn't support https
- // (e.g. for Jetpack sites)
- this.utils.locationReplace(this.assembleUrl("http://" + tokens.blogDomain, tokens.statsType));
- }).bind(this)
- );
- } else if (tokens.statsType != "insights") {
- this.utils.registerOnload((function() {
- // construct a stats URI from the user's default blog
- var defaultBlogStatsUri = "/stats";
- if (tokens.statsType) defaultBlogStatsUri += "/" + tokens.statsType;
- defaultBlogStatsUri += "/" + currentUser.primarySiteSlug;
- this.doRedirect(this.parseUri(defaultBlogStatsUri));
- }).bind(this));
- } else {
- this.utils.registerOnload((function() {
- // construct an insights URI from the user's default blog
- this.doRedirect(this.parseUri("/stats/insights/" + currentUser.primarySiteSlug));
- }).bind(this));
- }
- },
- utils: {
- locationReplace: function(url) {
- window.location.replace(url);
- },
- registerOnload: function(onload) {
- window.onload = onload;
- },
- // Based on function by dystroy. From http://stackoverflow.com/a/14388512
- apiFetch: function(path, callback, fallback) {
- var base = "https://public-api.wordpress.com/rest/v1.1";
- var httpRequest = new XMLHttpRequest();
- httpRequest.onreadystatechange = function() {
- if (httpRequest.readyState === 4) {
- if (httpRequest.status === 200) {
- if (callback) callback(JSON.parse(httpRequest.responseText));
- } else if (fallback) {
- fallback();
- }
- }
- };
- httpRequest.open("GET", base + path);
- httpRequest.send();
- }
- }
- };
- if (typeof module == "object" && module != null) module.exports = script;
- if (typeof window == "object"
- && window.location.search.search(/from=wp-admin/) === -1)
- script.start(window.location.pathname);