أخر الاخبار

تغيير تنسيق رابط Blogger ليكون مثل WordPress

 يوجد اختلاف واضح بين صيغه الروابط الموجوده فى بلوجر والروابط الموجوده فى الوردبريس حيث يحتوى رابط بلوجر  على التاريخ وينتهى الرابط ب.html بينما يختلف اختلافا تاما عنه الوردبريس حيث ينتهى رابط الوردبريس ب.php.

 كما  يمكنك التحكم فى رابط الوردبريس واخفاء .php ولكن اقدم لكم اليوم اسكربت مميز ومطور ليجعل رابط مدونتك مثل الوردبريس ويكون على الصيغه التاليهhttps://www.sahel-tech.org/how-to-change ولكن احذرك فى البدايه لا تقم باضافه الاسكربت الى مدونات سبق ارشفتها فى جوجل كونسول لان الروابط ستتغيير تماما واذا اردت استخدامها بشكل صحيح وبدون ان تؤثر على الارشفه قم باضافتها الى مدونه جديده لم يتم ارشفتها نهائيا.

ما فائده هذا الاسكربت

يقوم هذا الاسكربت بتحويل رابطك الى الوردبريس حيث يقوم هذا الاسكربت بحذف اليوم والشهر بالاضافه الى .html 

كيفيه استخدام الاسكربت

لاستخدام الاسكربت تابع مع الخطوات التاليه

  1. قم بالدخول الى لوحه التحكم لبلوجر واختر المظهر ثم تعديل HTML
  2. قم بالبحث عن وسم <head> وستجده فى اعلى المدونه مباشره
  3. قم بنسخ الكود التالى اسفل وسم <head> ثم قم بحفظ المظهر
<script type='text/javascript'>
//<![CDATA[

// Setting
var config = {
// Allow dates in ticket URLs.
  postsDatePrefix: false,

// short URL just to enter the site,
// but not in its general operation.
  accessOnly: false,

  // Usar API v3 de Blogger.
  useApiV3: false,
  apiKey: "BLOGGER-API-V3"
}

var postsOrPages = ["pages", "posts"],
    blogId = "<data:blog.blogId/>",
    urlTotal, fetchIndex = 1,
    ampChar = "&amp;"[0],
    secondRequest = true,
    feedPriority = 0,
    nextPageToken;

// urlVal ();
// Validate if the URL corresponds to a post / page, 
// if not, or if it corresponds to the index.
function urlVal() {
  var url = window.location.pathname;
  var length = url.length;
  var urlEnd = url.substring(length - 5);
  if (urlEnd === ".html") return 0;
  else if (length > 1) return 1;
  else return 2;
}

// urlMod (); 
// Modify the URL by removing the date or the "/ p /" as well as the ".html".
function urlMod() {
  var url = window.location.pathname;
  if (url.substring(1, 2) === "p") {
    url = url.substring(url.indexOf("/",1) + 1);
    url = url.substr(0, url.indexOf(".html"));
    history.replaceState(null, null, "../" + url);
  } else {
    if (!config.postsDatePrefix) url = url.substring(url.indexOf("/",7) + 1);
    else url = url.substring(1);
    url = url.substr(0, url.indexOf(".html"));
    history.replaceState(null, null, "../../" + url);
  }
}

// urlSearch (url, database);
// Look for a specific url in the database, if found,
// then it will direct to her.
function urlSearch(url, database) {
  var pathname = url + ".html";
  database.forEach(function(element) {
    var search = element.search(pathname);
    if (search !== -1) window.location = element;
  });
}

// urlManager (database, id);
// Run a URL validation, to determine with the result
// the action to perform (modify it or find it in the blog feed).
function urlManager() {
  var validation = urlVal();
  if (validation === 0) {
    if (!config.accessOnly) urlMod();
  } else if (validation === 1) {
    fetchData(postsOrPages[feedPriority], 1);
  } else if (validation === 2) {
    if (!config.accessOnly) history.replaceState(null, null, "/");
  }
}

// fetchData ();
// Make a request for blog data.
function fetchData(postsOrPages, index) {
  var script = document.createElement("script");
  if (config.useApiV3) {
    var jsonUrl = "https://www.googleapis.com/blogger/v3/blogs/" + blogId + "/" + postsOrPages +
                  "?key=" + config.apiKey + "#maxResults=500#fields=nextPageToken%2Citems(url)#callback=parseData";
    if (nextPageToken) jsonUrl += "#pageToken=" + nextPageToken;
    nextPageToken = undefined;
  } else {
    var jsonUrl = window.location.protocol + "//" + window.location.hostname + "/feeds/" + postsOrPages +
                  "/summary?start-index=" + index + "#max-results=150#orderby=published#alt=json-in-script#callback=parseData";
  }
  jsonUrl = jsonUrl.replace(/#/g, ampChar);
  script.type = "text/javascript";
  script.src = jsonUrl;
  document.getElementsByTagName("head")[0].appendChild(script);
}

// parseData ();
// Get data in JSON format, classify it
// and send them to compare the current URL.
function parseData(json) {
  var database = [];

  if (!config.useApiV3) {
    if (!urlTotal) {
      urlTotal = parseInt(json.feed.openSearch$totalResults.$t);
    }

    try {
      json.feed.entry.forEach(function(element, index) {
        var entry = json.feed.entry[index];
        entry.link.forEach(function(element, index) {
          if (entry.link[index].rel === "alternate") database.push(entry.link[index].href);
        });
      });
    } catch(e) {}
  } else {
    try {
      json.items.forEach(function(element, index) {
        database.push(element.url);
      });
    } catch(e) {}
    nextPageToken = json.nextPageToken;
  }

  urlSearch(window.location.pathname, database);

  if (urlTotal > 150) {
    fetchIndex += 150;
    urlTotal -= 150;
    fetchData(postsOrPages[feedPriority], fetchIndex);
  } else if (nextPageToken) {
    fetchData(postsOrPages[feedPriority]);
  } else if(secondRequest) {
    nextPageToken = undefined;
    urlTotal = 0;
    fetchIndex = 1;
    secondRequest = false;
    if (feedPriority === 0) {
      feedPriority = 1;
      fetchData("posts", 1);
    } else if(feedPriority === 1) {
      feedPriority = 0;
      fetchData("pages", 1);
    }
  }
}

// bloggerJS ();
// Start BloggerJS.
// You can receive as a parameter the search order for the URLs,
// that is, if it will start to compare against pages or posts.
// 0 or empty = Pages, 1 = Entries.
function bloggerJS(priority) {
  if (priority) feedPriority = priority;
  urlManager();
}

bloggerJS();
//]]>
</script>

ملحوظات حول هذا الاسكربت

  1. عند تغيير القالب لا تنسى وضع الاسكربت مره اخرى اسفل وسم <head> حتى لا يؤثر على الارشفه
  2. لا تقم باضافه الاسكربت الى مدونات سبق ارشفتها من جوجل 

الخلاصه

هذا الاسكربت مميز وسيعطيك النتيجه التى تحتاجها ولكن اكرر مره اخرى لا تقم بوضع الاسكربت داخل المدونات القديمه والتى سبق ارشفتها فى جوجل لانها ستؤثر على الارشفه وترتيبك على جوجل.

تعليقات