programing

Wordpress 플러그인 - 자체 호스팅 업데이트

codeshow 2023. 10. 29. 20:05
반응형

Wordpress 플러그인 - 자체 호스팅 업데이트

서버에서 플러그인 버전을 확인하고 있지만 업데이트가 필요한 워드프레스 플러그인을 개발하고 있습니다.제가 개발한 여러 플러그인들은 새로운 버전을 확인하기 위해 정확히 동일한 서버를 사용합니다.문제는 모든 플러그인에 업데이트가 필요하고 세부 정보 보기를 클릭하면 플러그인 중 하나에 업데이트에 대한 세부 정보(버전, 설명 등)가 표시되지만 다른 플러그인에는 정보가 표시되지 않는다는 것입니다.디버깅을 좀 해보니 서버가 확실히 데이터를 반환하고 있는 것을 알 수 있습니다.

제 질문은 plugins_api 필터를 다른 플러그인과 충돌하지 않고 여러 번 적용하려면 어떻게 해야 합니까?

당신의 관찰이 옳습니다.그것은 명백하지 않습니다.Brad and Ozh (플러그인 개발) 책까지.Wrox)는 267페이지의 "당신만의 API 저장소 만들기" 장에 있는 예제의 오류를 포함합니다.당신처럼 대체 API에서 플러그인 두 개로 문제를 찾는 데 시간을 소비했습니다.

해결책:WP 필터의 첫 번째 파라미터는 필터에 전달된 원래 값입니다.필터(대체 API를 사용하여 플러그인별로 나열됨)를 연결하려면...첫번째 줄은 다음과 같습니다.

function xiliw_altapi_information( $false, $action, $args ) {
    $plugin_slug = plugin_basename( __FILE__ );
        // Check if this plugins API is about this plugin
        if( $args->slug != $plugin_slug ) {
            return $false; // var to conserve the value of previous filter of plugins list in alternate api. fixes book error not val false
        }

        // POST data to send to your API
        $args = array(
            'action' => 'plugin_information',
            'plugin_name' => $plugin_slug,
            'version' => $transient->checked[$plugin_slug],
            'registration' => $this->registration
        );//../..

이 테스트를 수행하면 후크 목록이 호출될 때마다 한 개(해당 플러그인)만 정답을 제시하여 스플래시 윈도우에 대한 정보를 표시합니다.

시간이 된다면 이 대체 강력한 API를 관리하기 위한 클래스와 -private-plugin에 추가하는 방법에 대한 좀 더 완벽한 기사를 곧 발표할 것입니다.

언급URL : https://stackoverflow.com/questions/7074616/wordpress-plugin-self-hosted-update

반응형