Szukam sposobu, aby dodać nowy rodzaj kontroli do dostosowanego panelu podglądu na żywo . Widziałem, jak dodawać nowe sekcje do panelu za pomocą
add_action( 'customize_register'...
Kontrola, którą chcę wdrożyć, to inny rodzaj próbnika kolorów. W poprzednim poście widzimy, jak rozszerzyć podstawowe klasy, aby dodać widżety, ale brakuje mi tutaj haka, który pozwoli mi przenieść mój obiekt w zakres - WP_Customize_Palette_Control. W
Tutaj możesz zobaczyć początki kodu . Ten kod znajduje się w functions.php
pliku mojego motywu.
Dziękuję za wszelką pomoc. Obrabować
Właśnie zaktualizowałem kod. Teraz muszę require_once
wprowadzić klasy. Więc teraz nie mam błędów PHP, ale mój nowy kontrolny HTML nie pojawia się.
<?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' );
theme-development
theme-customizer
Obrabować
źródło
źródło
Odpowiedzi:
Przykład i klasa użycia
Możesz zobaczyć na moim obecnym temacie, jak można to wykorzystać. Możesz także skorzystać z klasy. Zobacz tę klasę w Github i sprawdź, czy to
functions.php
obejmuje.Start i init
Możesz zarejestrować własne ustawienia dostosowywania motywu za pomocą
customize_register
haka:Użycie w temacie:
Użyj go, jak w poniższym przykładzie ↓:
Korekty
Możesz także zmienić kontrolę:
Domyślny typ kontrolny to
text
. Tworzy formant pola tekstowego. Innym typem kontrolnym jestdropdown-pages
tworzenie listy rozwijanej stron WordPress.Ale to nie wszystko. Jest ich jeszcze kilka, ale ponieważ są tak niestandardowe, że deklaruje się je inaczej.
Ten korzysta z OOP:
Dodatkowe uwagi:
WP_Customize_Upload_Control
- To daje ci pole do przesyłania plików. Jednak prawdopodobnie nie użyjesz tego bezpośrednio, będziesz chciał rozszerzyć go na inne rzeczy ... na przykład:WP_Customize_Image_Control
- Daje to selektor obrazów i pole do przesyłania. Rozszerza kontroler wysyłania. Możesz zobaczyć to w akcji na niestandardowym kawałku tła, gdzie użytkownik może przesłać nowy plik, który będzie obrazem tła.WP_Customize_Header_Image_Control
- Ze względu na zmianę rozmiaru nagłówka wymaga on trochę specjalnej obsługi i wyświetlania, więcWP_Customize_Header_Image_Control
rozszerzaWP_Customize_Image_Control
aby dodać tę funkcjonalność. Możesz zobaczyć to w akcji na niestandardowym nagłówku, gdzie użytkownik może przesłać nowy plik, który będzie obrazem nagłówka.Więcej informacji na temat „Dostosowywania motywów” można znaleźć na blogu ottos .
Aktualizacja 11/06/2012
Przykład na żywo dla możliwości odczytu i więcej przykładów, zobacz otwarte repozytorium dla źródła i doku.
Aktualizacja 15.01.2013
Stworzyliśmy repo na github z niestandardową klasą, aby z niego korzystać, łatwo i gotowe. Może możesz go użyć lub rozwinąć swoje pomysły i rozwiązania.
źródło
Ok, oto jak to zrobić. Rozdziel swoje klasy kontrolne na jeden lub więcej nowych plików.
Masz funkcję lub metodę uzależnioną od customize_register, prawda? W tej funkcji lub metodzie wymagają raz nowe pliki tuż przed dodaniem niestandardowych formantów. Wtedy PHP nie będzie narzekać na przedefiniowanie klas.
Uwaga: To nie zadziała po wyjęciu z pudełka, ale pokazuje lewę.
źródło
Nigdy nie korzystasz z klasy. Spróbuj przekazać nową instancję swojej klasy do metody add_control:
Nie sądzę też, aby WP wiedziała, że nazwa opcji dla twojego ustawienia jest częścią tablicy. Może lepiej mieć
themename_theme_options_color_scheme
zamiastthemename_theme_options[color_scheme]
.Klasa, którą rozszerzasz, należy do kontrolki przesyłania obrazu. Jeśli tworzysz próbnik kolorów, prawdopodobnie powinieneś rozszerzyć klasę WP_Customize_Control .
źródło
Dla kompletności: przykład dodawania pola liczbowego do Dostosowywania motywu.
źródło
number
jakotype
domyślną Kontrolę i użyćinput_attrs
do przekazaniastep
itp.Myślę, że musisz dodać ukośnik odwrotny przed WP_Customize. Tak będzie
, Ponieważ ukośnik odwrotny zakładał, że WP_Customize_Image_Control nie pochodzi z tej samej przestrzeni nazw
Daj mi znać, czy to pomogło
źródło