최소 워드 프레스 환경로드


12

WP와 별 개인 웹 사이트에 대한 자체 업로드 서비스를 만들었지 만 WP를 사용하여 낮은 수준의 DB 기능과 사용자 확인을 제공합니다. 그렇게하기 위해 주 스크립트 (Uploadify)에 wp-load.php를 포함 시키지만 서버 메모리를 불필요한 구성 요소로 채우는 것처럼 보입니다. 덕분에 스크립트에 설치된 WP 플러그인을 가리키는 오류가 표시됩니다.

핵심 WP 구성 요소 만로드하고 플러그인을 무시하려면 어떻게해야합니까? 이것이 가능합니까?


1
BackPress를 확인하십시오 .
soulseekah

답변:


9

플러그인을 비활성화하면 많은 장점을 잃게됩니다.

더 나아가서 게시물과 링크 등을 제거하는 워드 프레스 배포판이 있지만 항상 워드 프레스 코어보다 뒤쳐져 서 오래 생존하지 못하는 경향이 있습니다.

수행 할 수있는 몇 가지 사항은 다음과 같습니다.

짧은 초기화

이것을 wp-config.php에 넣으십시오.

define( 'SHORTINIT', TRUE );

또는 워드 프레스로로드하기 전에 어딘가에 정의하면로드 프로세스를 줄이고 최소한의 핵심 기능으로 되돌려 야합니다.

보조 경량 설치

원하는 플러그인과 테마 만 있으면 두 번째 워드 프레스 설치를 설정하십시오. 그런 다음 동일한 wp-content 디렉토리 및 데이터베이스 값을 사용하도록 wp-config.php를 구성하십시오.

역압

원본 BBpress 및 glotpress 인 WordPress는 BackPress 라이브러리 주위에 구축됩니다. 수많은 API 및 기능이 없거나 재 구현 / 이동이 필요할 수 있지만 WordPress 대신 이것을 사용하여 작업을 수행 할 수 있습니다.

옵션 테이블

또한 WordPress는 전체 옵션 테이블을 메모리에로드하여 쿼리를 줄입니다. 큰 값을 저장하면 성능에 영향을 미칩니다.

일찍 나가기

WordPress로드 프로세스에서 이전 기능에 연결하고 WordPress가 완료되기 전에 PHP 프로세스를 종료 할 수도 있지만 이것이 얼마나 안전한지 조언 할 수는 없습니다.

선택적으로 플러그인로드

플러그인을 선택적으로로드하는 방법에 대한이 기사도 있지만 워드 프레스 코어 파일에 대한 해킹이 필요합니다


+1 "2 차 경량 설치"를 사용해 본 적이 있습니까?
카이저

나는 이런 목적으로 결코 유사한 일을하지는 않았지만 대부분의 사용 사례는 멀티 사이트에서 더 잘 제공됩니다. 주로 사용하여 개발 설치를 실행하여 컨텐츠를 공유 할 수 있도록합니다.
Tom J Nowell

8

BackPress 사용 하지만 작은 개발이 있습니다. 기본 설치와 const를 통해 더 작은 소스를 사용합니다.

에 참조 wp-settings.php

// Stop most of WordPress from being loaded if we just want the basics.
if ( SHORTINIT )
    return false;

에서 const SHORTINIT을 true로 설정하고 wp-config.php빠른 실행을 확인하십시오. define( 'SHORTINIT', TRUE );

이들은 당신이 얻는 파일입니다 :

// All are located in ABSPATH.WPINC
'/load.php'
'/default-constants.php'
'/version.php'
'/compat.php'
'/functions.php'
'/class-wp.php'
'/class-wp-error.php'
'/plugin.php'
'/default-filters.php'
'/pomo/mo.php'

// Only Multisite
'/ms-blogs.php'
'/ms-settings.php'

6

제작 is_user_logged_in()current_user_can()작업을 위해 비슷한 답변을 여기 에서 찾았 습니다. (Cant comment) 비교는 다음과 같이 답변과 일치합니다.

define('SHORTINIT', true)+ require('wp-load.php')+를 수동으로 사용하면 다음이 포함됩니다.

페이지로드 : 1.05 sek- 포함 된 파일 : 43 파일

비교 : ONLY require('wp-load.php') :

페이지로드 : 1.35 sek- 포함 된 파일 : 419 파일

시차 (0.3 sek)는 설치 및 PHP 엔진과 다를 수 있지만 한 페이지로드에서 많은 요청의 유효성을 검사하는 동안 추가됩니다! 안나 에릭슨

WP installed dir에 대한 상대 호출을 사용하는 것이 좋습니다. Wordpress 사용자 정의 플러그인 "ROOT"에서

$wordpress = '../../../wp-load.php';

그런 다음 내 플러그인 index.php 내부 :

define('SHORTINIT', true);
include_once $wordpress;

require_once ( ABSPATH . WPINC . '/class-wp-user.php' );
require_once ( ABSPATH . WPINC . '/class-wp-roles.php' );
require_once ( ABSPATH . WPINC . '/class-wp-role.php' );
require_once ( ABSPATH . WPINC . '/class-wp-session-tokens.php' );
require_once ( ABSPATH . WPINC . '/class-wp-user-meta-session-tokens.php' );
require_once ( ABSPATH . WPINC . '/formatting.php' );
require_once ( ABSPATH . WPINC . '/capabilities.php' );
//require_once ( ABSPATH . WPINC . '/query.php' ); // - might be useful
require_once ( ABSPATH . WPINC . '/user.php' );
require_once ( ABSPATH . WPINC . '/meta.php' );

wp_cookie_constants();

require_once ( ABSPATH . WPINC . '/vars.php' );
require_once ( ABSPATH . WPINC . '/kses.php' );
require_once ( ABSPATH . WPINC . '/rest-api.php' );
require_once ( ABSPATH . WPINC . '/pluggable.php' );

그 후, 사용자 유효성 검사가 나를 위해 일하고 있습니다. 원본 코드의 @Anna Ericson 최종 단어 덕분에 :

하나 또는 두 개의 요청에서 실행되는 다른 작업의 경우 필요한 다른 파일을 추적하는 것은 0.3 sek 가치가 없을 수 있습니다 . SHORTINIT 상수 및 수동 혼란을 건너 뜁니다 .


1
이것은 지금까지 가장 깨끗한 방법입니다. 우리 설치에 저장된 이미지를로드하는 아약스 호출에서 잘 작동합니다.
Jonas Lundman

@cavameta SHORTINIT으로 Woocommerce를 가져 오는 방법은 무엇입니까?
webmastx

2

시도 했습니까 define('SHORTINIT', true);? 나는 그것을 직접 테스트하지는 않았지만, 특히 원하는 모든 것이 데이터베이스를 다루는 경우 충분한 기능을 유지하면서 WP 코어의 측면을 거의로드하지 않는 것 같습니다.

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