Как вывести количество фолловеров и ваше последнее сообщение из Твиттера

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

Оцените автора
Добавить комментарий

  1. Aquarius

    Не факт, что simplexml_load_file, работа с curl нормально пройдет в тексте темы или плагина. Как я понял основной причиной может быть хостер. Поэтому стоит писать гарантировано рабочий код через функцию wp_remote_request.
    Подробней можно почитать у меня тут

    Ответить
    1. Тоже выход. Спасибо за пример кода!

      Ответить
  2. Не думаю, что подключение внешних скриптов экономнее, нежели чем собственная функция в теме. Интересно, сколько строчек кода содержит blogger.js? А я отвечу, сколько:

    function twitterCallback2(twitters) {
      var statusHTML = [];
      for (var i=0; i<twitters.length; i++){
        var username = twitters[i].user.screen_name;
        var status = twitters[i].text.replace(/((https?|s?ftp|ssh)://[^"s<>]*[^.,;'">:s<>)]!])/g, function(url) {
          return ''+url+'';
        }).replace(/B@([_a-z0-9]+)/ig, function(reply) {
          return  reply.charAt(0)+''+reply.substring(1)+'';
        });
        statusHTML.push('<li><span>'+status+'</span> '+relative_time(twitters[i].created_at)+'</li>');
      }
      document.getElementById('twitter_update_list').innerHTML = statusHTML.join('');
    }
    
    function relative_time(time_value) {
      var values = time_value.split(" ");
      time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
      var parsed_date = Date.parse(time_value);
      var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
      var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
      delta = delta + (relative_to.getTimezoneOffset() * 60);
    
      if (delta < 60) {
        return 'less than a minute ago';
      } else if(delta < 120) {
        return 'about a minute ago';
      } else if(delta < (60*60)) {
        return (parseInt(delta / 60)).toString() + ' minutes ago';
      } else if(delta < (120*60)) {
        return 'about an hour ago';
      } else if(delta < (24*60*60)) {
        return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
      } else if(delta < (48*60*60)) {
        return '1 day ago';
      } else {
        return (parseInt(delta / 86400)).toString() + ' days ago';
      }
    }

    И это все закачивается и выполняется. Ну так и что экономичнее?

    Ответить
  3. AlexGr

    Попробовал вывести последнее статус сообщение с twitter и получил вот такое:
    [img]http://clip2net.com/clip/m74668/1313998877-clip-11kb.png[/img]

    Из-за чего так получилось?

    Ответить