Saya mencari cara untuk menambahkan jenis kontrol baru ke panel pratinjau siaran langsung yang dapat disesuaikan . Saya telah melihat cara menambahkan bagian baru ke panel menggunakan
add_action( 'customize_register'...
Kontrol yang ingin saya terapkan adalah pemilih warna yang berbeda. Dalam posting sebelumnya , kita melihat bagaimana memperluas kelas inti untuk menambahkan widget, tetapi yang saya tidak miliki di sini adalah sebuah kait yang akan memungkinkan saya untuk membawa objek saya ke ruang lingkup - WP_Customize_Palette_Control. Di
Anda dapat melihat awal kode di sini . Kode ini ada di functions.php
file tema saya.
Terima kasih atas bantuannya. rampok
Baru saja memperbarui kodenya. Sekarang saya harus require_once
membawa masuk kelas. Jadi sekarang saya tidak memiliki kesalahan PHP tetapi kontrol HTML baru saya tidak muncul.
<?php
require_once( ABSPATH . WPINC . '/class-wp-customize-setting.php' );
require_once( ABSPATH . WPINC . '/class-wp-customize-section.php' );
require_once( ABSPATH . WPINC . '/class-wp-customize-control.php' );
class WP_Customize_Palette_Control extends WP_Customize_Image_Control {
public $type = 'palette';
public $removed = '';
public $context;
public function enqueue() {
//wp_enqueue_script( 'wp-plupload' );
}
public function to_json() {
parent::to_json();
$this->json['removed'] = $this->removed;
if ( $this->context )
$this->json['context'] = $this->context;
}
public function render_content() {
?>
<label>
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
<div>
<a href="#" class="button-secondary upload"><?php _e( 'Upload' ); ?></a>
<a href="#" class="remove"><?php _e( 'Remove' ); ?></a>
</div>
</label>
<?php
}
}
//new WP_Customize_Palette_Control();
//add_action('customize_controls_init', 'WP_Customize_Palette_Control');
// add an option to the customize panel
function sci_customize_controls_init($wp_customize) {
$wp_customize->add_section( 'themename_color_scheme', array(
'title' => __( 'Color Scheme', 'themename' ),
'priority' => 35,
) );
$wp_customize->add_setting( 'themename_theme_options[color_scheme]', array(
'default' => 'some-default-value',
'type' => 'option',
'capability' => 'edit_theme_options',
) );
$wp_customize->add_control( 'themename_color_scheme', array(
'label' => __( 'Color Scheme', 'themename' ),
'section' => 'themename_color_scheme',
'settings' => 'themename_theme_options[color_scheme]',
'type' => 'palette',
'choices' => array(
'value1' => 'Choice 1',
'value2' => 'Choice 2',
'value3' => 'Choice 3',
),
) );
}
add_action( 'customize_register', 'sci_customize_controls_init' );
Jawaban:
Contoh dan kelas untuk penggunaan
Anda dapat melihat pada tema saya saat ini, bagaimana mungkin untuk menggunakan ini. Anda juga dapat menggunakan kelas. Lihat kelas ini di Github dan periksa
functions.php
untuk menyertakan ini.Mulai & init
Anda dapat mendaftarkan pengaturan khusus Anda untuk penyesuai tema melalui
customize_register
hook:Penggunaan dalam Tema:
Gunakan itu, seperti dalam contoh di bawah ini ↓:
Penyesuaian
Anda juga dapat mengubah kontrol:
Tipe kontrol default adalah
text
. Ini menciptakan kontrol kotak teks. Tipe kontrol lain adalahdropdown-pages
, yang membuat daftar dropdown dari Halaman WordPress.Tapi itu belum semuanya. Sebenarnya ada beberapa lagi, tetapi karena mereka begitu adat, mereka dinyatakan berbeda.
Yang ini memanfaatkan OOP:
Catatan tambahan:
WP_Customize_Upload_Control
- Ini memberi Anda kotak unggah untuk file. Namun, Anda mungkin tidak akan menggunakan ini secara langsung, Anda ingin memperpanjangnya untuk hal-hal lain ... seperti:WP_Customize_Image_Control
- Ini memberi Anda pemetik gambar dan kotak pengunggah. Itu memperpanjang controller unggahan. Anda dapat melihatnya beraksi di bagian latar belakang khusus, tempat pengguna dapat mengunggah file baru menjadi gambar latar.WP_Customize_Header_Image_Control
- Karena tindakan mengubah ukuran potongan tajuk, perlu sedikit penanganan dan tampilan khusus, sehinggaWP_Customize_Header_Image_Control
memperluasWP_Customize_Image_Control
untuk menambahkan fungsionalitas itu. Anda dapat melihatnya beraksi di bagian tajuk khusus, tempat pengguna dapat mengunggah file baru menjadi gambar tajuk.Anda dapat menemukan lebih banyak tentang "Penyesuai Tema" di ottos blog .
Pembaruan 11/06/2012
Contoh Langsung untuk kemungkinan membaca dan lebih banyak contoh, lihat repo terbuka untuk sumber dan doku.
Perbarui 01/15/2013
Kami telah membuat repo di github dengan kelas khusus untuk menggunakannya, mudah dan siap. Mungkin Anda hanya bisa menggunakannya atau maju dengan ide dan solusi Anda.
sumber
Ok, begini caranya. Pisahkan kelas kontrol Anda ke satu atau lebih file baru.
Anda memiliki fungsi atau metode yang terkait dengan customize_register, bukan? Dalam fungsi atau metode itu perlu sekali file baru Anda sebelum menambahkan kontrol kustom Anda. Maka PHP tidak akan mengeluh tentang mendefinisikan ulang kelas.
Catatan: Ini tidak akan berhasil di luar kotak, tetapi menunjukkan triknya.
sumber
Anda tidak pernah menggunakan kelas Anda. Coba lewati instance baru dari kelas Anda ke metode add_control:
Juga, saya tidak berpikir WP tahu bahwa nama opsi untuk pengaturan Anda adalah bagian dari array. Mungkin lebih baik memilikinya
themename_theme_options_color_scheme
daripadathemename_theme_options[color_scheme]
.Kelas ekstensi Anda menjadi milik kontrol unggah gambar. Jika Anda membuat pemilih warna, Anda mungkin harus memperluas kelas WP_Customize_Control .
sumber
Hanya untuk kelengkapan: Contoh tentang cara menambahkan bidang angka ke Penyesuai Tema.
sumber
number
sebagaitype
untuk Kontrol default, dan gunakaninput_attrs
untuk lulusstep
, dllSaya pikir Anda harus menambahkan backslash sebelum WP_Customize. Jadi itu akan terjadi
, Karena backslash mengasumsikan bahwa WP_Customize_Image_Control bukan dari Namespace yang sama
Beri tahu saya jika itu membantu
sumber