Episoadele anterioare aici şi aici.
După cum spuneam, reuşisem să-mi mut blogul în totalitatea lui de pe platforma Blogspot pe WordPress. Am rezolvat şi cu hostingul, eram deja expert în cPanel, MySQL şi FTP-uri (râsete discrete/zâmbete maliţioase din public, ştiu …). Mai aveam de rezolvat ceva ce se chema redirect 301, de instalat ceva plugin-uri şi de customizat o temă cât de cât arătoasă.
Am citit instrucţiunile din n-şpe tutoriale, nimic mai simplu şi m-am apucat de treabă.
Plecam de la premiza că, conţinutul celor 2 bloguri (blogspot şi wordpress) este acelaşi. Aveam nevoie de un trick care de la conţinutul lui blogspot să ducă automat la cel aflat acum pe wordpress.
1. Creăm (notepad, wordpad ori oricare alt editor text simplu/complex avut la îndemână) o pagină cu denumirea de blogger.php (merge şi blogulvechidepeblogspot.php – da’ cred că-i mai simplă prima variantă) în care punem următorul cod:
<?php
require($_SERVER['DOCUMENT_ROOT'].'/wp-blog-header.php');
$search_link = $_GET['p'];
$vars = explode('/', $search_link);
$num = count($vars) - 1;
$filename = $vars[$num];
$slug = str_replace(".html", "", $filename);
$SQL = "SELECT posts.* FROM $wpdb->posts AS posts WHERE posts.post_name = '$slug' LIMIT 1";
$posts = $wpdb->get_results("$SQL");
if ($posts) {
foreach ($posts as $post) {
$found_link = get_permalink($post->ID);
}
}
else
{
$found_link = "http://www.siteultau.com/";
}
?>
<html>
<head>
<title>Redirecting...</title>
<script language="javascript"><!--
document.location.href="<?php echo ($found_link); ?>";
//--></script>
<meta http-equiv="refresh" content="2;url=<?php echo ($found_link); ?>">
</head>
<body>
<h1>Redirecting...</h1>
<p>You can also proceed immediately to <a href="<?php echo ($found_link); ?>"><?php echo ($found_link); ?></a>.</p>
<p>The main blog URL is <a href="http://www.siteultau.com/">www.siteultau.com/</a>.</p>
</body>
</html>
* de înlocuit www.siteultau.com cu numele domeniul deţinut. Preferabil 😀
Pagina se urcă undeva pe server gen http://siteultau.com/blogger.php
2. Ne întoarcem la blogger şi modificăm template-ul de acolo adăugând undeva în main-ul paginii următorul cod:
<MainOrArchivePage> <script language="javascript"><!-- var blog_root="http://www.siteultau.com/"; document.location.href=blog_root; //--></script> </MainOrArchivePage> <ItemPage> <script language="javascript"><!-- var process_page="http://www.siteultau.com/blogger.php"; var newpage=process_page; var oldlink="<BlogItemPermalinkUrl>"; newpage+="?p="+oldlink; newpage=newpage.toLowerCase(); document.location.href=newpage; //--></script> </ItemPage>
De asemenea undeva pe pe teritoriul lui head se introduce:
<meta http-equiv="refresh" content="1;url=http://www.siteultau.com/" />
cu variaţiuni, după gust, ale lui content =1 acesta reprezentând timpul până la redirecţioinare petrecut pe vechiul site.
Până aici am reuşit să trimitem toţi vizitatorii de pe fostul blog către prima pagină a noului blog. Moment în care eu m-am cam blocat, că nu era exact ce-mi doream, dar google m-a scos iarăşi. Aşadar, pentru a avea redirect de pe fiecare post de pe vechiul blog către corespondentul său de pe noul blog, continuăm.
3. Căutăm în template-ul de pe blogger următoarea linie de cod:
<b:section class='main' id='main' showaddelement='no'>
exact sub ea inserăm ultimul cod de pe ziua de astăzi:
<b:widget id='Redirector' locked='true' title='Blog Posts' type='Blog'> <b:includable id='main'> <b:if cond='data:blog.pageType == "item"'> <b:loop values='data:posts' var='post'> <div id='redirectorTitle' style='visibility:hidden'><data:post.title/></div> <script type='text/javascript'> var new_domain = http://www.siteultau.com/ function utf8_uri_encode( str ) { var high_code = new RegExp(/[\u0080-\uffff]+/);; new_str = str;; while( m = high_code.exec( new_str ) ) { new_str = new_str.replace(m,encodeURIComponent(m));; } return new_str;; } var title = document.getElementById('redirectorTitle').innerHTML;; // [INCOMPLETE] Keep percent signs that aren't part of an octet? title = title.replace(/<[^>]*?>/g,'');; // remove tags title = title.replace(/&.+?;/g,'');; // remove entities title = utf8_uri_encode(title);; // handle UTF-8 characters title = title.toLowerCase();; title = title.replace(/[^%a-z0-9 _-]/g,'');; // remove punctuation title = title.replace(/\s+/g,'-');; // turn spaces into hyphens title = title.replace(/-+/g, '-');; // collapse runs of hyphens title = title.replace(/^-+/g,'');; // remove prefixed hyphens title = title.replace(/-+$/g,'');; // remove suffixed hyphens var timestamp = '<data:post.timestamp/>'; timestamp = timestamp.split('/'); timestamp = timestamp[2]+'/'+timestamp[0]+'/'+timestamp[1]; var new_page = new_domain + '/' + title + '/';; document.location.href = new_page; </script> </b:loop> </b:if> </b:includable> </b:widget>
Salvăm template-ul de pe blogger verificăm dacă şmecheria funcţionează, dacă da abia acum deschidem cutia de bere (varianta mea!) dacă nu google ştie!
La mine a mers puţin mai greu decât pare mai sus, dar cel puţin de data asta am reuşit să o fac să meargă din prima.
Gata şi episodul de astăzi, revin (sper) mâine cu ultima parte despre customizare şi ferchezuire a blogului proaspăt mutat.
PS1: Bobby a povestit şi el cum a făcut mutarea mai demult, dacă vi se pare mai simplu acolo faceţi ca el!
PS2: Uitasem să precizez sursele din care am extras informaţiile de mai sus: aici, aici şi aici!