Minimum WordPress ortamını yükleyin


12

WP'den ayrı olan web sitem için kendi yükleme hizmetimi yaptım, ancak düşük seviye db işlevleri ve kullanıcı doğrulaması sağlamak için WP kullanıyor. Bunu yapmak için, ana betiğime (Uploadify) wp-load.php'yi dahil ediyorum, ancak bunu yapmak sunucunun belleğini gereksiz bileşenlerle dolduruyor gibi görünüyor. Bu sayede, betiğimde yüklü bir WP eklentisine işaret eden bir hata görüyorum.

Yalnızca çekirdek WP bileşenlerini nasıl yükleyebilir ve eklentileri yoksayabilirim? Bu mümkün mü?


Yanıtlar:


9

Eklentileri devre dışı bırakmak, birçok avantajı kaybettiğiniz anlamına gelir.

Daha da ileri gidip yayınları ve bağlantıları vb.

İşte yapılabilecek bazı şeyler

Kısa Başlatma

Bunu wp-config.php dosyasına koyarak:

define( 'SHORTINIT', TRUE );

Veya wordpress'e yüklemeden önce bir yerde tanımlamak, yükleme işlemini azaltmalı ve minimal temel işlevlere geri çekmelidir.

İkincil hafif kurulumlar

Yalnızca istediğiniz eklentiler ve temalarla (varsa) ikinci bir wordpress yüklemesi kurun. Ardından wp-config.php dosyasını aynı wp-içerik dizinini ve veritabanı değerlerini kullanacak şekilde yapılandırın.

Backpress

WordPress, diğerleri arasında orijinal BBpress ve glotpress BackPress kütüphanesi etrafında inşa edilmiştir. İşinizi yapmak için WordPress yerine bunu kullanabilirsiniz, ancak çok sayıda API ve özellik eksik veya yeniden uygulama / bağlantıya ihtiyaç duyabilir

Seçenek tabloları

Ayrıca, WordPress'in sorguları azaltmak için tüm seçenekler tablosunu belleğe yüklediğini de unutmayın, eğer herhangi bir büyük değeri kaydederseniz performans üzerinde etkisi olacaktır.

Erken çıkış

Ayrıca WordPress yükleme işleminde önceki işlevlere bağlanmayı ve WordPress bitmeden önce PHP işleminden çıkmayı deneyebilirsiniz, ancak bunun ne kadar güvenli olduğu konusunda tavsiyede bulunamam.

Eklentileri seçici olarak yükleme

Eklentileri seçici olarak yüklemekle ilgili bu makale de var , ancak wordpress çekirdek dosyalarına kesmek gerekiyor


+1 Hiç "İkincil hafif kurulumları" denediniz mi?
kaiser

Benzer şeyleri yaptım, ancak bu amaç için asla, çoğu kullanım durumu çoklu site tarafından daha iyi sunulacaktı. Temelde ben bu yüzden içerik paylaşmak böylece birlikte çalışan bir geliştirme yükleme olabilir kullanın
Tom J Nowell

8

BackPress kullanın , ancak const ile varsayılan bir yükleme ve daha küçük bir kaynak kullandığım küçük gelişmeler var.

bakın wp-settings.php

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

Consort SHORTINIT öğesini true değerine ayarlayın ve wp-config.phphızlı koşuyu görün. define( 'SHORTINIT', TRUE );

Aldığınız dosyalar şunlardır:

// 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

Yapmak için is_user_logged_in()ve current_user_can()iş, ben benzer bir cevap buldum burada comparsion olarak, burada cevapları maçları (yorum yapamam):

define('SHORTINIT', true)+ require('wp-load.php')+ Tuşlarını manuel olarak kullanma şunları içerir:

Pageload: 1.05 sek - dahil edilen dosyalar: 43 dosya

Karşılaştırma: SADECE Kullanma require('wp-load.php'):

Pageload: 1.35 sek - dahil dosyalar: 419 dosya

Zaman farkı (0,3 sek) kurulumlardan ve PHP motorlarından farklı olabilir, ancak bir sayfa yükünde birçok isteği doğrularken, işler eklenir! / @ Anna Ericson

WP kurulu dir için göreli bir çağrı kullanmak iyi bir fikirdi. Wordpress özel eklentisi "ROOT" gibi:

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

Sonra benim eklenti index.php içinde:

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' );

Bundan sonra kullanıcı doğrulaması benim için çalışıyor. Orijinal koddaki @Anna Ericson son kelimeleri sayesinde:

Diğer görevler için, bir veya iki istekte çalışırken, gerekli diğer dosyaları izlemek 0,3 sek değerinde olmayabilir . SHORTINIT Sabit ve manuel dağınıklığı atlayın .


1
Bu şimdiye kadarki en temiz yoldur. Kurulumumuzda kısıtlı görüntüleri yükleyen ajax çağrılarında iyi çalışıyor.
Jonas Lundman

@cavameta Woocommerce'i SHORTINIT ile uyandırmak için nasıl alabilirim?
webmastx

2

Denedin define('SHORTINIT', true);mi Kendim test etmedim, ancak özellikle istediğiniz tek şey veritabanıyla uğraşmaksa, yeterli işlevselliği korurken WP çekirdeğinin çok az yönünü yüklemek gibi görünüyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.