2013-12-14 3 views
1

나는 "가장 인기있는"기능을 Tumblr 블로그에 추가하는 임무를 맡았습니다. 근본적으로, 가장 인기있는 버튼을 클릭하면 인기가 높은 순서대로 단일 게시물 또는 게시물 목록을 표시해야합니다. 인기는 게시물에있는 "메모"의 수를 기반으로 계산됩니다.Tumblr 블로그에서 가장 인기있는 게시물 표시

아무에게도이 문제를 해결하는 가장 좋은 방법에 대한 제안이 있습니까? http://www.tumblr.com/docs/en/custom_themes#search에서 테마 사용자 정의로 구운 것을 찾을 수 없습니다. API 경로가 이러한 목표를 달성하는 유일한 방법일까요?

답변

1

글쎄, 나는 Tumblr의 전문가가 아니지만, 내가 개발중인 프로젝트를 위해 API와 공정한 몫을했습니다. 내 경험에 의하면, API를 가져와야 의 모든 게시물 수를 건 남았습니다. 내가 아는 주제를 사용하여 API 키가없는 페이지의 순서를 정할 수 있습니다.하지만 자바 스크립트 플러그인을 사용하거나 Tumblr API 만 사용해야합니다 (놀랍도록 사용하기 쉽습니다).

From 잠시 방금 문제를 생각해 보니 각 게시물 (CSS로 숨겨져 있는지 여부는 사용자에 따라 다름)에 NoteCount을 넣은 다음 API의 notes_info을 사용하여 모든 숫자를 얻은 다음 비교할 수 있습니다. 그런 다음 배열에 노트 수에 따라 원하는 게시물을 얼마나 많이 저장하고 원하는 페이지에서 해당 배열을 사용하십시오. 그것은 많은 작업처럼 보이지만, 나는 당신이

편집

문제를 조금 조사 후 그것을 할 수있는 방법을 다른 모르겠어요, 그 노트 카운트가 일관된 기능에 대한 거리가 멀다 발견 텀블러. 모든 노트 카운트가 공유하거나 주위의 텍스트가 일관된 클래스는 없습니다. 그것은 당신이 개별 블로그 단위로해야 할 것 같습니다. 당신이 게시물에 대한 HTML을 얻으면, 스크립트 또는 API를 통해, 당신은 감지 할 정규식을 사용하여 다음과 유사한 기능을 실행할 수있는 나의 마음에 드는 한 게시물을 사용하여 메모 수

var posts = document.querySelectorAll('.post'), // Get all posts (*most* blogs have this, not all) 
    noteExpr = /with ([0-9]+) notes/, // Get any numbers between "with " and " notes" 
    noteCounts = []; 

// Creates an array filled with all of the note counts 
for(var i = 0; i < posts.length; i++) { 
    noteCounts.push(noteExpr.exec(posts[i].innerHTML)[1]); 
} 
// Do something with noteCounts 

Demo, 블로그

내가 보는 사이트 사용하여 좀 더 예 MotionAddicts :

<div class="notecount">Notes: 218</div> 사용 01,231,927에 사용 />([^>]+) notes/

<a href="noteCountUrl.com">58 notes</a>의 경우를 854,

방법 API를 사용하지 않고, 심지어 그때는 확인이 아니에요하는 단점이 그들이 형식에 차이가있는 경우 각각의 블로그에 맞게 사용자 정의 할 수 있습니다,하지만 내가 알고있는 유일한 방법입니다 더 좋은 방법

기타 정보

:

Studiomoh 비슷한 플러그인을했지만, 그것은 단지 사진

Example of how to include a NoteCount

012 작동

관련 문제