2010-01-07 4 views
2

플러그인의 핵심 파일을 수정하지 않고 WordPress 플러그인이 생성하는 마크 업을 수정하는 '좋은 실습'방법이 있습니까? 예상 한 문제는 플러그인을 업데이트 할 때 수정 한 마크 업을 덮어 쓴다는 것입니다.WordPress 플러그인 마크 업 수정하기

드루팔 (Drupal에는 템플릿 대체가 있지만, 비슷한 연습을하기에는 WordPress에 대해 충분히 알지 못합니다.

어떤 도움이 필요합니까?

답변

0

플러그인을 허용하려면 플러그인 자체를 작성해야합니다 (아래 참조). 이를 수행 할 수있는 몇 가지 방법이 있습니다. 플러그인에서 임의의 위치 (예 : "uploads/myplugin")에서 가져 오는 템플릿 파일을 찾을 수 있습니다. HTML을 설정으로 데이터베이스에 저장할 수 있습니다. 플러그인은 출력을 변경하는 외부 호출 (예 : 별도의 플러그인 또는 테마의 functions.php)을 허용하기 위해 apply_filter 훅 (WordPress 자체가 훅을 사용하는 것처럼)으로 작성 될 수 있습니다. 나는이 모든 방법을 사용했습니다.

다른 사람의 플러그인 출력을 변경하는 것에 대해 이야기하고 있다면 위의 플러그인 중 하나를 구현하도록 요청할 수 있습니다. 자바 스크립트를 사용하여 DOM을 조작 할 수 있습니다.

0

질문에 대한 답변은 후크 및 템플릿입니다. 운이 좋으면 플러그인은 템플릿을 사용하여 출력물을 사용하고 테마를 확인하여 오버라이드했는지 여부를 확인하거나 출력을 수정할 수있는 필터 후크가있을 수 있습니다. 운이 좋지 않다면 플러그인 작성자가 당신을 위해 플러그인을 추가 할 수 없으면 좀 더 창의적으로 접근해야합니다. 플러그인이 결정하고, 다른 결과를 반환하도록 변경하는 워드 프레스에

  • 훅 쿼리합니다.
  • WordPress get_option() 함수에 연결하여 즉시 플러그인 설정을 변경합니다.
  • 을 페이지 콘텐츠에 연결하고 preg_replace()를 사용하여 HTML을 해킹합니다.
  • 페이지 생성 초기에 ob_start()를 호출하여 페이지 출력을 버퍼링하고 wp_footer를 연결하여 ob_end_clean()을 호출하고 preg_replace()를 사용하여 HTML을 해킹합니다.

그냥 몇 가지 아이디어 :

을 분명히, 그것은에 대해 함께 보다 플러그인을 일을하는 것이 가장 좋습니다. 플러그인이 템플릿을 사용하는지 여부를 확인하고 그렇지 않으면 apply_filter() 및 do_action()에 대한 호출을 검색해야합니다. 그러나 때로는 필요가 필요합니다!