플러그인을 수정하는 가장 좋은 방법은 무엇입니까? 큰 플러그인 내에서 한두 가지 기능을 약간 변경하고 싶을 때가 많습니다. 이 작업은 쉽게 수행되지만 주석을 사용하여 변경 사항을 표시하고 업데이트 후 플러그인을 다시 수정해야합니다. 이상적으로는 테마와 자식 테마와 마찬가지로 플러그인을 그대로두고 다른 곳에서 변경하고 싶습니다. 부모 플러그인이 필요한 플러그인을 만들 수 있습니까?
플러그인을 수정하는 가장 좋은 방법은 무엇입니까? 큰 플러그인 내에서 한두 가지 기능을 약간 변경하고 싶을 때가 많습니다. 이 작업은 쉽게 수행되지만 주석을 사용하여 변경 사항을 표시하고 업데이트 후 플러그인을 다시 수정해야합니다. 이상적으로는 테마와 자식 테마와 마찬가지로 플러그인을 그대로두고 다른 곳에서 변경하고 싶습니다. 부모 플러그인이 필요한 플러그인을 만들 수 있습니까?
답변:
IMHO의 가장 좋은 방법은 변경 사항을 유지하기 위해 플러그인을 포크하거나 플러그인 개발자에게 패치를 제출하여 변경 사항을 원래 플러그인의 일부로 만드는 것입니다.
"자식 플러그인"을 만드는 것은 쉽지 않습니다. "자식 테마"개념 은 테마 기능 (및 실제로 는 부모와 자식 모두 의 파일이로드 되어 자식 또는 부모에서 부적절하게 코딩 된 파일에 문제 가 발생 함) 외에도 사용되는 템플리트 파일에 적용됩니다. 테마).functions.php
functions.php
"올바른"방법은 분명히 플러그인에 달려 있습니다. 일부 플러그인은 다른 플러그인보다 편집하기가 쉽지만 대부분의 플러그인은 실제로 다른 플러그인으로 수정할 수 있습니다.
예를 들어, 플러그인에 액션을 사용하여 WordPress에 연결된 함수가있는 경우 remove_action을 사용하여 해당 함수의 후크를 해제 한 다음 다른 대체 함수를 추가하는 다른 플러그인을 만드는 것이 간단합니다. 이런 종류의 방법을 사용하면 원래 플러그인을 수정하지 않고도 플러그인의 개별 기능을 사용자가 수정 한 버전으로 바꿀 수 있습니다.
동일한 개념은 필터와 함께 작동합니다.
가장 좋은 방법은 그것을 복제하고 헤더에서 플러그인 이름을 변경하고 디렉토리 이름을 변경하는 것입니다. 이렇게하면 원본을 설치했지만 활성화 할 수 없으므로 업데이트가 릴리스 될 때 경고 메시지가 계속 표시됩니다.
<?php
/*
Plugin Name: Name Of The Plugin
Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates
Description: A brief description of the Plugin.
Version: The Plugin's Version Number, e.g.: 1.0
Author: Name Of The Plugin Author
Author URI: http://URI_Of_The_Plugin_Author
License: A "Slug" license name e.g. GPL2
*/
?>
플러그인이 Git의 분산 특성으로 인해 Git 소스 제어하에있는 경우 비교적 쉽지만 많은 WordPress 플러그인 (및 공식 저장소의 모든 플러그인)이 Subversion에 있습니다. 플러그인을 실제로 수정해야하는 경우 벤더 브랜치 와 svn_load_dirs.php를 사용 하지만, Subversion과의 호환성 수준이 상당히 높아야합니다.
플러그인에 저장소가 없으면 Git 저장소로 직접 전환하고 새 버전을 수동으로 적용하는 것이 좋습니다.
결국, 버전 제어 시스템은 새로운 업스트림 버전에 변경 사항을 다시 적용 할 수있는 유일한 방법입니다.
Annika Backstrom의 답변에 동의 하지만 선호하는 솔루션을 공유하고 싶습니다.
대부분의 플러그인은 svn에 있으므로 git-svn이라는 도구를 사용하여 git mirror를 만듭니다.
그런 다음 지점을 만들고 변경 사항을 커밋합니다.
플러그인이 업스트림으로 업데이트되면 svn 저장소에서 가져 와서 내 사용자 지정 분기로 병합합니다.