Используйте Tumblr API в Tumblr

Я везде искал этот ответ - я представлял, что это будет просто, учитывая все сложные вещи, прочитанные об API Tumblr в моих бесконечных поисках Google.

Все, что я хочу сделать, это отобразить в маленьком поле на моей индексной странице tumblr общее количество сообщений.

например Всего сообщений: 689

Я прочитал десятки вопросов о переполнении стека о tumblr api, а также множество вопросов по квору. Но ни у кого нет ответа.

Некоторые содержат такой код, как:

<div>Note Total</div>
<script type="text/javascript" src="http://{name}.tumblr.com/api/read/json"></script>
<script type="text/javascript">
 var msg =tumblr_api_read;
 var obj = jQuery.parseJSON(JSON.stringify(msg));
 $('#NoteTotal').append("<br/><br/>" + "this site as " + obj['posts-total'] +" Total         posts.");
</script>

но когда я помещаю это в свой html, ничего не появляется. Я экспериментировал с множеством других кодов, но ничего не появляется, и я не нашел руководств, даже в документации API tumblr, чтобы показать мне, как это сделать. Единственное, что мне удалось сделать, это вытащить свой аватар, поместив http://api.tumblr.com/v2/blog/david.tumblr.com/avatar/512 в

<img src"">

но даже это было моей собственной работой, ни одна статья не говорила мне, что я должен был поместить его в тег изображения, чтобы он отображался, поэтому я думаю, что есть такой же простой способ получить API общего количества сообщений для отображения, возможно, кто-то здесь может мне помочь.

благодаря.


person Seth-77    schedule 20.04.2013    source источник


Ответы (2)


Это также будет работать:

<script type="text/javascript" src="http://[yourblogname].tumblr.com/api/read/json"></script>
<script type="text/javascript">
var posts = tumblr_api_read['posts-total'] // total posts
var totalposts = "<b>Total posts:</b> ";
document.write(totalposts)
document.write(posts)
</script>

Замените [yourblogname] на свой блог.

person Vincent Lee    schedule 23.02.2015

Не забудьте проверить консоль JavaScript на наличие ошибок. Тогда вы получите сообщение об ошибке вместо «ничего не появляется». Вот как открыть консоль JavaScript в Chrome.

Кроме того, то, как вы использовали #NoteTotal, предполагает, что вы на самом деле не знаете, как работают jQuery и селекторы элементов. Краткое введение: #something выбирает элемент с идентификатором something, например, <div id="something"></div>.

Более того, ваш код выше, вероятно, не работает в вашей теме, потому что он зависит от библиотеки JavaScript jQuery и что ваша тема не загружает jQuery, или потому что вы вставили код до загрузки jQuery.

Fix (Оказывается, коду даже не нужен jQuery!):

<div id="note-total">Note Total</div>
<script type="text/javascript" src="http://{name}.tumblr.com/api/read/json"></script>
<script type="text/javascript">
    $('#note-total').append("<br/><br/>" + "this site has total " + tumblr_api_read['posts-total'] + " posts.");
</script>

Если это сработает, я настоятельно рекомендую вам взглянуть на то, почему это так. Если это не работает, возможно, дайте ссылку на ваш блог, где это не работает?

person interestinglythere    schedule 20.04.2013
comment
Спасибо за исправленный JS, все заработало! Я не знаю, что я делал не так раньше, но код, который вы дали, похоже, работает. Я поэкспериментирую с этим и постараюсь расширить свои знания по этому вопросу. Когда я наберу 15 очков репутации, я вернусь и проголосую за вас. - person Seth-77; 20.04.2013
comment
Ладно, рад помочь! Что касается того, почему ваш код не работал, я попытался объяснить это в своем ответе выше. Если у вас есть какие-либо вопросы, ответьте или свяжитесь со мной напрямую (подсказка: Google). - person interestinglythere; 21.04.2013