Cara menyesuaikan plugin sambil mempertahankan kemampuan untuk meningkatkan

8

Saat ini saya sedang mengerjakan pembaruan besar ke salah satu plugin WordPress saya.

Plugin ini memungkinkan pengguna memilih dari beberapa skin yang tersedia. Cukup sering saya diminta untuk membuat skin custom. Untuk mencegah agar kulit ini tidak dihapus saat pemutakhiran, saya harus menggunakan pengait WordPress untuk menonaktifkan pembaruan otomatis untuk plugin. Ini jelas tidak ideal karena saya ingin mereka masih dapat memperbarui plugin. Masalahnya adalah cara WordPress menangani pembaruan - hanya menghapus folder plugin dan menginstal versi baru. Dengan demikian menghapus file yang sebenarnya bukan bagian dari versi lama.

Saat ini satu-satunya cara saya dapat mengatasinya adalah memiliki dua folder skin - satu di folder plugin dan satu di folder upload - apakah ini benar-benar satu-satunya cara saya bisa menawarkan ini kepada pengguna saya?

Daniel Chatfield
sumber

Jawaban:

4

Banyak plugin digunakan /wp-content/custom-plugin-folder/untuk menyimpan data plugin yang disesuaikan (WPTouch datang ke pikiran).

Cukup gunakan konstanta WP_CONTENT_URLdan WP_CONTENT_DIR Dokumen untuk memeriksa keberadaan folder Anda dan mengambil skin yang tersedia.

Artikel berikut, meskipun tidak terkait langsung dengan Pertanyaan ini, menjelaskan pentingnya plugin / tema untuk mencari terjemahan terlebih dahulu di wp-content/languagesfolder sebelum memuat .mofile paketnya sendiri . Ini layak dibaca dan mudah-mudahan Anda akan menerapkan konsep ini dalam rilis Anda berikutnya :)

Memuat file bahasa WordPress dengan cara yang benar yang ingin saya tunjukkan yang penting untuk memuat file bahasa pengguna khusus dari WP_LANG_DIR sebelum Anda memuat file bahasa yang dikirimkan dengan plugin . Ketika banyak file-file dimuat untuk domain yang sama, terjemahan yang ditemukan pertama kali akan digunakan. Dengan cara ini file bahasa yang disediakan oleh plugin akan berfungsi sebagai fallback untuk string yang tidak diterjemahkan oleh pengguna.
http://www.geertdedeckere.be/

brasofilo
sumber
7

Cara lainnya adalah membuat orang menambahkan sub-plugin mereka sendiri. Sebagai contoh, kode di plugin inti Anda yang dapat dikuliti dapat berupa sesuatu seperti:

function get_available_skins() {
    $skins[] = '/includes/default-skin.css';
    $skins[] = '/includes/2012-skin.css';

    return apply_filters( 'get_available_skins', $skins );
}

Kemudian, pengguna dapat membuat plugin khusus yang berada di samping Anda (diaktifkan secara terpisah sehingga tidak akan mengganggu pembaruan Anda) yang melakukan hal berikut:

add_filter( 'get_available_skins', 'my_custom_skin' );
function my_custom_skin( $skins ) {
    $skins[] = '/my-custom-skin.css';

    return $skins;
}

Ini adalah cara yang persis sama dengan WordPress menggunakan kait untuk membuat dirinya dapat diperluas. Jangan menemukan kembali roda.

(Jelas, saya tidak tahu plugin apa yang Anda kerjakan, seperti apa tampilan skin kustom, atau bagaimana Anda memiliki kode, jadi Anda harus menggunakan kode di atas hanya sebagai model untuk bagaimana Anda dapat refactor Anda kode sendiri.)

EAMann
sumber