Случайные посты могут быть полезным для новых читателей или посетителей блога, которые только-только открывают ваш проект для себя. Наиболее часто эти ссылки располагают после постов или в сайдбаре. Мало кто будет просматривать весь архив блога, а, увидев несколько ссылок на другие материалы после статьи и найдя для себя что-то интересное, читатель обязательно по ним перейдет. Конечно, чаще всего в конце постов располагают не просто случайные ссылки, а те, которые связаны с тематикой статьи. Размещая данный блок в сайдбаре, авторы часто совмещают его со списками последних статей и комментариев. Перед тем, как перейти к описанию процесса установки, хочу сказать пару слов благодарности автору. Он ведет блог под названием «Немецкий дневник». Спасибо за разработку! Заходите, читайте блог. Установить случайные посты можно двумя способами – простым добавлением кода и с недавних пор с помощью виджета. Я рассмотрю оба варианта, так как это может пригодиться. Вариант1. Заходим в «Макет» – «Редактирование HTML», где перед закрывающимся тегом добавляем код:
// // declare some variables var blog_url = 'http://YOUR_BLOG_NAME. blogger. com'; // blog main url -> don't forget write your blog url var randomCnt = 5; // number of random links var donate = true; // if you want to say thank you, let this variable be true // tests, if an element exists in given array function in_array(test_arr, test_number) { // create from array a string separated by # test_arr_str = test_arr. join('#'); test_arr_str = '#' + test_arr_str + '#'; // create search item to search in converted string test_number_str = '#' + test_number + '#'; // look for search item in converted string test = test_arr_str. indexOf(test_number_str); return test; } // show donate url function showDonatePost() { // url of donate post url = 'http://ametov. net'; // get title of a post title = 'Ametov. net'; titleData = document. createTextNode(title); tag_a = document. createElement('a'); tag_a. href = url; tag_li = document. createElement('li'); tag_li. id = 'donate_widget_random_posts'; tag_a. appendChild(titleData); tag_li. appendChild(tag_a); document. getElementById('widget_random_posts').appendChild(tag_li); } // make a post visible - show post url and title function showPost(root) { var feed = root. feed; var entries = feed. entry || []; var entry = feed. entry[0]; for(var j=0; j { if (entry. link[j].rel == 'alternate') { // get url of a post url = entry. link[j].href; // get title of a post title = entry. link[j].title; // if there is no title replace it with url if (title == '') title = url; titleData = document. createTextNode(title); tag_a = document. createElement('a'); tag_a. href = url; tag_li = document. createElement('li'); tag_a. appendChild(titleData); tag_li. appendChild(tag_a); if (donate) { document. getElementById('widget_random_posts').insertBefore(tag_li, document. getElementById('donate_widget_random_posts')); } else { document. getElementById('widget_random_posts').appendChild(tag_li); } } } } // get info as json string for given post function getPost(postNumber) { script = document. createElement('script'); script. src = blog_url + '/feeds/posts/summary? start-index='+postNumber+'&max-results=1&alt=json-in-script&callback=showPost'; script. type = 'text/javascript'; document. getElementsByTagName('head')[0].appendChild(script); } // get random posts for given blog function getRandomPosts(root) { var feed = root. feed; var total = parseInt(feed. openSearch$totalResults.$t,10); var randomNumber, test; var random_numbers = new Array(randomCnt); if (donate) showDonatePost(); for (var i=0; i { randomNumber = -1; test = -1; // this cicle is to avoid of post repeats do { randomNumber = Math. ceil(Math. random()*total); test = in_array(random_numbers, randomNumber); } while(test!= -1) random_numbers[i] = randomNumber; getPost(randomNumber); } } // the main function, which get first number of posts and from which // would be called all other functions above function showRandomPosts() { var script = document. createElement('script'); script. type = 'text/javascript'; script. src = blog_url + '/feeds/posts/summary? max-results=0&alt=json-in-script&callback=getRandomPosts'; document. getElementsByTagName('head')[0].appendChild(script); } //]]>
Здесь в самом начале есть несколько параметров, на которые следует обратить внимание.
blog_url – ссылка на ваш блог (http://мой-блог. blogger. com) randomCnt – количество случайных ссылок. donate – ставите true, если захотите поблагодарить автора за скрипт и false в противном случае. Далее в шаблоне или создав в сайдбаре элемент типа HTML/Javascript добавляем код:
// main function call showRandomPosts();
Он отвечает непосредственно за вывод ссылок. Вариант2. Виджет случайных постов. В нем кода немного поменьше, так как скрипт располагается вне блога. Чтобы установить заходите в раздел панели управления «Макет», добавляете элемент типа HTML/JavaScript, куда вставляете код:
var blog_url = 'http://blogohelp. blogspot. com'; var randomCnt = 5; var donate = true; // main function call showRandomPosts();
Здесь используются те же переменные, что и в предыдущем варианте. Если есть какие-то вопросы, можете задавать в комментариях или на сайте автора скрипта. Не забывайте указывать в переменных адрес своего блога.
Единственное, что у меня не получилось работать с BlogSpot проектом, у которого подключен купленный домен, а так работу виджета и самого скрипта я протестировал. P. S. Предлагаю почитать мой обзор: LinkedIn – лучшая деловая социальная сеть. Футбол лига чемпионов – новости, команды, результаты. Оригинальные фонтаны на любой вкус.