bestsource

플러그인 업데이트 시 워드프레스 플러그인에 대한 변경사항이 손실되지 않도록 하는 방법?

bestsource 2023. 10. 21. 10:36
반응형

플러그인 업데이트 시 워드프레스 플러그인에 대한 변경사항이 손실되지 않도록 하는 방법?

메인 플러그인 *.php 파일을 실제로 다른 곳으로 이동하여 변경하고 플러그인을 업데이트할 경우 안전하게 사용할 수 있다는 내용을 읽은 적이 있습니다.구글을 해봤는데 아무것도 안 보이네요.결과가 좋은 구글 페이지면 충분합니다.

저는 방금 제 플러그인 2개의 레이아웃이 변경되어 제 요구를 수용하는 상황을 경험했는데 다시는 이런 일이 발생하지 않도록 하고 싶습니다.메인 파일을 다른 위치에 두는 것 외에 CSS와 JS 파일을 따라 이동할 수 있는 방법이 있습니까?

Concrete5 CMS에서는 애드온의 블록 안에 새 폴더를 생성하여(WP 플러그인으로 간주될 수 있음), 그 안에 메인 파일, CSS 및 JS 파일의 복사본을 만든 다음 단순히 편집하고 해당 블록에서 사용 중인 페이지 위치에 대한 템플릿을 선택할 수 있는 좋은 방법이 있습니다.

워드프레스에는 그런 게 없는 것 같은데 얼마나 가까이 갈 수 있나요?

업데이트: 파일의 새 인스턴스를 만든 후 테마 디렉터리로 이동하는 방법에 대한 조언을 적용한 위치를 찾았습니다.문제의 플러그인은 HL-Twitter였습니다.플러그인 파일은 다음과 같습니다.

admin.php
archive.php
functions.php
hl_twitter.php
hl_twitter_archive.php
hl_twitter_widget.php
import.php
widget.php

이제 hl_twitter_widget의 상위 내용(댓글)입니다.php:

Widget Theme for HL Twitter
To change this theme, copy hl_twitter_widget.php
to your current theme folder, do not edit this
file directly.

Available Properties:
$before_widget
$after_widget
$before_title
$after_title
$widget_title
$show_avatars
$show_powered_by
$num_tweets: how many tweets to show
$tweets: array of $tweet
$tweet: object representing a tweet
$tweet->twitter_tweet_id
$tweet->tweet
$tweet->lat
$tweet->lon
$tweet->created
$tweet->reply_tweet_id
$tweet->reply_screen_name
$tweet->source
$tweet->screen_name
$tweet->name
$tweet->avatar
$user: represents the Twitter user (ONLY SET IF SHOWING A SINGLE USERS TWEETS!)
$user->twitter_user_id
$user->screen_name
$user->name
$user->num_friends
$user->num_followers
$user->num_tweets
$user->registered
$user->url
$user->description
$user->location
$user->avatar       

그래서 나는 메인 파일(이 경우 hl_twitter.php)을 복사하는 것에 대해 잘못했지만, 여전히 - 이것은 내가 플러그인 디렉토리 밖에서 파일을 편집할 수 있게 했고 시스템은 어떻게든 존재를 확인하고 존재하는 경우 선택합니다.이 동작이 워드프레스에서 기본적으로 지원되는 것이거나 플러그인 자체에 통합된 것이라면?

테마를 가지고 있는 워드프레스는 "어린이 테마"라는 개념을 가지고 있는데, 이는 바로 다음과 같은 것을 가능하게 합니다: 변경되는 경우를 대비하여 변경사항을 주요 테마와 분리하여 유지하는 것입니다.

저는 아직 플러그인으로 이것을 할 방법을 찾지 못했습니다.

제가 직접 몇 가지 전술을 쓰고 있습니다.

  • 저는 플러그인 버전을 99.9와 같이 매우 높은 숫자로 바꿉니다.이렇게 하면 워드프레스는 플러그인을 업데이트하지 않습니다.
  • 플러그인을 버전 컨트롤에 저장합니다(git을 사용하지만 상관 없음). 이를 통해 플러그인을 업데이트하고 'diff' 도구를 실행하고 어떤 변경 사항이 발생했는지 확인할 수 있습니다.만약 당신이 싫다면, 당신이 쓴 나쁜 코드인 것처럼 되돌리기만 하면 됩니다.하지만 이 방법은 약간의 기술이 필요합니다.

수정된 서드파티 플러그인의 부품과 업데이트된 버전을 동시에 실행하는 것을 말씀하시는 건가요?

그건 불가능합니다."내 변경사항을 보존하고 새 버전으로 자동 전송"하는 마법 같은 방법은 없습니다.여기서 가는 방법은 편집된 버전과 업데이트 사이에 차이를 두고 실제 소스 파일의 변경 사항을 통합하는 것입니다.

결론적으로 타사 플러그인을 수동으로 편집하는 경우 업데이트가 수행되면 수동 검토(및 재작업)를 받게 됩니다.그렇기 때문에 타사 플러그인을 광범위하게 수정하는 것은 일반적으로 좋지 않습니다.

사실 그래요!어떤 방법이 있습니다.수정할 플러그인의 원래 액션/필터를 제거한 다음 변경된 액션/필터를 추가해야 합니다.

원하는 플러그인이 OOP에서 코딩된 경우에도 클래스 전체를 상속하고 원하는 함수를 다시 쓸 수 있습니다(oh sorry: "methods". 우리는 OOP에 대해 이야기하고 있습니다; ).위와 같이 상속된 클래스를 인스턴스화하고 휴식을 취합니다.

어쩌면 더 좋은 방법이 있을지도 몰라요!저는 원래 클래스가 로드되지도 않고 변경된 클래스가 로드되지 않도록 이미 방법을 찾고 있지만 저는 존 카맥이 아닙니다.

언급URL : https://stackoverflow.com/questions/10960212/how-to-make-sure-changes-to-a-wordpress-plugin-wont-be-lost-on-plugin-update

반응형