캐시 된 Wordpress 사이트에 동적 콘텐츠를 표시하는 가장 좋은 방법은 무엇입니까?


14

WordPress 테마 / 사이트에서 더 많은 정적 페이지를 제공 할 수 있도록 캐시 플러그인 중 하나를 사용하고 싶습니다. 이것은 분명히 WordPress 테마 / 사이트에 대해 수행 할 수있는 최고의 성능 업그레이드입니다.

내 테마에는 도약을 정적 / 캐시 페이지로 만드는 것을 방해했던 몇 가지 동적 요소가 있습니다.

아래에서 이러한 문제를 간략하게 설명하고 지금까지 생각한 각 문제를 해결할 수있는 방법을 제공합니다.

이 게시물의 목표는 내가 설명하는 문제를 처리하기 위해 더 나은 아이디어 / 방법을 얻거나 적어도 올바른 길을 가고 있다는 확신을 얻는 것입니다. 나는 12-13 년 이상의 PHP 베테랑이지만 지난 1-2 년 동안 WordPress 만 사용 해 왔으며 지금까지는 실제로 그 기능에 깊은 감명을 받았습니다.

좋아, 지금까지 캐시 된 페이지로 변환 할 때 생각한 문제는 ...


단일 게시물 페이지

  1. 뷰 카운터 문제 -게시물 페이지에서 "보기 / 히트 카운터"에 대한 카운트 값을 가져 와서 사용자가 볼 수있는 게시물 뷰에 대한 아이디어를 제공하는 기능이 있습니다. 이들은 고유 한 방문자가 아니라 단순한 방문 횟수 카운터입니다. 나는이 값들에 대해 별도의 MySQL 테이블을 만들었지 만 여전히 그 값을 계속할지 아니면 메타 필드를 사용하도록 전환할지 결정하려고합니다. 페이지보기에서 데이터베이스 값은 각 페이지로드시 페치되어 +1 씩 증가합니다. (관리자보기는 추가되지 않습니다.) 그러면 값이 페이지에 다음 형식으로 표시됩니다.988 Views

    Views Counter Possible Solution -Ajax를 사용 하여이 값 / 기능을 실행할 수 있습니다. 새로운 캐시 / 정적 페이지가로드되면 Javascript는 Ajax를 사용하여 해당 페이지의 Views 카운터를 요청하고 업데이트 할 수 있습니다. 이 소리가 이와 같은 최상의 솔루션처럼 보입니까?

  2. 게시물 댓글 문제 -기본 WordPress 댓글 시스템을 사용하여 게시물 에 새 댓글을 추가 할 때마다 해당 게시물을 다시 작성 하려면 캐시 된 / 정적 페이지가 필요합니다 ! 내가 본 것에서 내가 본 캐싱 플러그인에는 옵션을 통해 새 주석을 게시 할 때마다 페이지를 다시 만들 수 있습니다. 이것은 종이에는 좋지만, 많은 사용자가 같은 시간에 같은 기사에 대해 댓글을 달고있을 수있는 트래픽이 많거나 활동적인 사이트에서 악몽이라고 상상할 수 있습니다 (모두 테스트되지 않았으므로 알 수 없음)

    댓글 게시 가능 솔루션 -댓글 문제에 대한 해결책으로, 캐시 플러그인을 설정하여 각 새 댓글에 대해 캐시 된 / 정적 페이지를 다시 작성하는 솔루션을 언급했습니다. 나의 관심사는 이것이 장기적으로 얼마나 잘 작동하는지에 대한 것이 아니다. 이제 점점 더 많이 사용되는 다른 솔루션은 Disqus Comments 또는 유사한 솔루션과 같은 Javascript 솔루션을 사용하는 것입니다. 오랫동안 모든 의견이 내 의견 시스템에 대해 타사에 의존하지 않기를 원했기 때문에 오랫동안 이것에 반대했습니다. 나는 여전히이 문제에 대해 울타리에 있지만 내 사이트에서 Disqus 의견을 사용하도록 전환했으며 지금까지 꽤 잘 작동하고 있습니다. 그래도 다른 가능한 솔루션에 개방되어 있습니까? 아니면 이것이 정말로 갈 길이라고 생각합니까?

사이트 전체 사이드 바

  1. 사이드 바 최근 기사 문제 -사이드 바에 사이트의 모든 페이지에 사이트 전체에 표시되는 탭이 있습니다. 탭 중 하나는 사이트의 모든 페이지에 표시되므로 블로그에서 가장 최근 10 개의 게시물을로드합니다. 새 기사 / 게시물이 추가되면이 "가장 최근 게시물 목록"에 새 게시물이 추가되도록 사이트의 모든 캐시 된 / 정적 페이지를 다시 작성해야합니다.

    사이드 바 최근 기사 가능한 해결책 -다시 한 번 나는 좋은 해결책을 생각해 냈다고 생각합니다. Javascript 및 Ajax를 사용하여이 컨텐츠를 캐시 된 / 정적 페이지에로드 할 수 있으므로 모든 컨텐츠를 자주 다시 빌드 할 필요는 없지만 최신 게시물을 계속 표시 할 수 있습니다.

    이것이 좋은 해결책처럼 들립니까? 또는 더 중요한 것은이 문제에 대한 또 다른 더 나은 대안 솔루션을 생각할 수 있습니까?


내 손을 아직 더럽 히지 않고 테마를 캐시 / 정적 친화적으로 변환 할 때 지금까지 볼 수있는 모든 가능한 문제입니다.


최신 정보

방금 생각해야 할 또 다른 문제를 생각했습니다. 해당 페이지의 게시물 목록에 맞는 게시물을 추가 할 때마다 모든 태그 / 카테고리 및 사용자 페이지를 업데이트해야합니다. 나는 이것이 이미 캐싱 플러그인의 기능이어야한다고 가정합니다.


1
모든 요청이 조회 카운터에 올바른 이유는 무엇입니까? 캐시 업데이트 전에 5-10 개의보기가 누락 된 경우 어떻게됩니까?
Ünsal Korkmaz

답변:


2

그래서 많은 하위 질문이 있습니다. 각각의 문제를 해결하려고 노력할 것입니다.

Views Counter Problem-Ajax를 사용 하여이 값 / 기능을 실행할 수 있습니다. 새로운 캐시 / 정적 페이지가로드되면 Javascript는 Ajax를 사용하여 해당 페이지의 Views 카운터를 요청하고 업데이트 할 수 있습니다.

완전히 동의 : 추가 혜택 : "중요한"컨텐츠 로딩이 완료되면 ajax를 통해로드하는 것이 좋습니다. 페이지 로딩 시간을 줄이기 위해 가능한 모든 것을하십시오. 나는 이것에 Ajax와 함께 갈 것이다.

게시물 댓글 문제

나는 이것이 모두 큰 문제가 될지 의심한다. 그러나 다시 : 아약스. "기본"컨텐츠와 별도로 주석을로드하십시오. 새 댓글을 정기적으로 푸시하도록하십시오 (Stackoverflow처럼 twitter.com과 마찬가지로 사용자에게 경고하고 댓글 스트림을 새로 고치기 위해 클릭을 기다리십시오).

사이트 전체 사이드 바

다른 플러그인 인 WP Widget Cache 를 사용하면 사이드 바의 각 위젯에 대한 캐싱 시간을 설정할 수 있으며 일반적인 캐싱 플러그인과 잘 작동합니다. 귀하의 경우 해당 위젯에 대해 캐싱을하지 않으려면 "0"을 설정하거나 캐싱을 전혀하지 않는 것보다 "10 분"을 설정하십시오.


1

w3 총 캐시를 사용하는 경우 사이드 바와 같은 특정 페이지가 캐시되지 않도록 제외 할 수 있습니다.

WordPress 관리> 성능> 페이지 캐시로 이동하여이 페이지를 캐시 하지 않음 섹션을 변경하십시오.

페이지를 캐시하지 마십시오. W3 Total Cache
이 예는 테마의 사이드 바 파일이 캐시에서 제외됨을 보여줍니다.

캐시 된 페이지에서 더 짧은 만료 시간 (예 : 5 분 또는 15 분)을 설정할 수도 있습니다. 캐시 된 페이지는 방문자가 처음이고 세션 쿠키가없는 사람에게 가장 영향을줍니다. '가장 많이 요청 된'캐시 된 페이지보기가 처음으로 표시되면 익명 방문자입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.