title: Umożliwienie użytkownikowi dynamicznego tworzenia pól za pomocą interfejsu Settings API

text:
Utworzyłem stronę ustawień, korzystając z interfejsu Settings API, postępując zgodnie z tym samouczkiem. Teraz chcę mieć przycisk, który pozwala użytkownikom dynamicznie dodawać pola, podobnie jak to się robi w tym drugim. Nie chcę próbować „scalać” tych dwóch rzeczy razem. Musi być na to odpowiedni sposób. Czy ktoś może mi podpowiedzieć, jak to osiągnąć? Znalazłem to już we wtyczkach Pippina, gdzie tworzy on tablicę dla swoich pól ustawień i wyświetla je za pomocą pętli foreach. Ale nie jestem pewien, jak to może mi pomóc. /** * Ta funkcja wprowadza opcje motywu do menu „Wygląd” oraz do menu * najwyższego poziomu „Motyw piaskownicy”. */ function sandbox_example_theme_menu() { add_theme_page( 'Motyw piaskownicy', // Tytuł, który ma być wyświetlany w oknie przeglądarki dla tej strony. 'Motyw piaskownicy', // Tekst, który ma być wyświetlany dla tej pozycji menu 'administrator', / / Którytyp użytkowników, którzy mogą zobaczyć tę pozycję menu 'sandbox_theme_options', // Unikalny identyfikator - czyli ślimak - dla tej pozycji menu 'sandbox_theme_display' // Nazwa funkcji do wywołania podczas renderowania strony tego menu ); add_menu_page( 'Motyw piaskownicy', // Wartość używana do wypełnienia paska tytułu przeglądarki, gdy strona menu jest aktywna 'Motyw piaskownicy', // Tekst menu na pasku bocznym administratora 'administrator', // Jakie role są dostępne dostęp do menu 'sandbox_theme_menu', // Identyfikator używany do powiązania elementów podmenu z tym menu 'sandbox_theme_display' // Funkcja wywołania zwrotnego używana do renderowania tego menu ); add_submenu_page( 'sandbox_theme_menu', // Identyfikator strony menu najwyższego poziomu, do której należy ten element podmenu __( 'Display Options', 'sandbox' ), // Wartość używana do wypełnienia paska tytułu przeglądarki, gdy aktywna jest strona menu __( 'Opcje wyświetlania', 'sandbox' ), // Etykieta tego elementu podmenu wyświetlana w menu 'administrator', // Jakie role mają dostęp do tej pozycji podmenu 'sandbox_theme_display_options', // Identyfikator używany do reprezentowania tej pozycji podmenu 'sandbox_theme_display' // Funkcja wywołania zwrotnego używana do renderowania opcji dla tej pozycji podmenu ); add_submenu_page( 'menu_motywu_piaskownicy', __( 'Opcje społecznościowe', 'Opcje społecznościowe' ), __( 'Opcje społecznościowe', 'Piaskownica' ), 'Administrator', 'Opcje_motywu_piaskownicy', create_function( null, 'sandbox_opcje_społeczne(" "); ' ) ); add_submenu_page( 'menu_motywu_piaskownicy', __( 'Przykłady danych wejściowych', 'piaskownica'), __( 'Przykłady wejściowe', 'piaskownica' ), 'administrator', 'przykłady_wejścia_motywu_piaskownicy', create_function( null, 'wyświetlacz_motywu_piaskownicy( "przykłady_wejścia" );' ) ); } // koniec sandbox_example_theme_menu add_action( 'admin_menu', 'sandbox_example_theme_menu' ); /** * Renderuje prostą stronę do wyświetlenia dla menu motywu zdefiniowanego powyżej. */ function sandbox_theme_display( $active_tab = '' ) { ?>

<?php _e( 'Opcje motywu piaskownicy', 'piaskownica' ); ?>
 <?php settings_errors(); ?> <?php if( isset( $_GET[ 'tab' ] ) ) { $active_tab = $_GET[ 'tab' ]; } else if( $active_tab == 'social_options' ) { $active_tab = 'social_options'; } else if( $active_tab == 'przykłady_wejść' ) { $aktywna_tab = 'przykłady_wejść'; } else { $active_tab = 'opcje_wyświetlania'; } // end if/else ?>
 <a href="?page=sandbox_theme_options&tab=display_options" class="nav-tab <?php echo $active_tab == 'display_options' ?'nav-tab-active' : ''; ?>"><?php _e( 'Opcje wyświetlania', 'piaskownica' ); ?> <a href="?page=sandbox_theme_options&tab=social_options" class="nav-tab <?php echo $active_tab == 'social_options' ? 'nav-tab-active' : ''; ?>" ><?php _e( 'Opcje społecznościowe', 'piaskownica' ); ?> <a href="?page=sandbox_theme_options&tab=input_examples" class="nav-tab <?php echo $active_tab == 'input_examples' ? 'nav-tab-active' : ''; ?>" ><?php _e( 'Przykłady danych wejściowych', 'piaskownica' ); ?>
 <form metoda="post" action="options.php"> <?php if( $active_tab == 'display_options') { settings_fields('sandbox_theme_display_options'); do_settings_sections( 'sandbox_theme_display_options' ); } elseif( $active_tab == 'social_options' ) { settings_fields( 'sandbox_theme_social_options' ); do_settings_sections( 'sandbox_theme_social_options' ); } else { settings_fields( 'sandbox_theme_input_examples' ); do_settings_sections( 'przykłady_wejścia_motywu_piaskownicy' ); } // koniec if/else submit_button(); ?> </form>
 <?php } // end sandbox_theme_display /* -------------------- -------------------------------------------------- -- * * Ustawienie rejestracji * -------------------------------------------- ------------------------------ */ /** * Zapewnia wartości domyślne dla Opcji społecznościowych. */ function sandbox_theme_default_social_options() { $defaults = array( 'twitter' => '', 'facebook' => '', 'googleplus' => '', ); return apply_filters( 'sandbox_theme_default_social_options', $defaults ); } // end sandbox_theme_default_social_options /** * Zapewnia wartości domyślne dla Opcji wyświetlania. */ function sandbox_theme_default_display_options() { $defaults = array( 'show_header' => '', 'show_content' => '', 'show_footer' => '', ); return apply_filters( 'sandbox_theme_default_display_options', $defaults ); } // end sandbox_theme_default_display_options /** * Zapewnia wartości domyślne dla opcji wprowadzania. */ funkcja sandbox_theme_default_input_options() { $defaults = array( 'input_example' => '', 'textarea_example' => '', 'checkbox_example' => '', 'radio_example' => '', 'time_options' => 'default' ) ; return apply_filters( 'sandbox_theme_default_input_options', $defaults ); } // end sandbox_theme_default_input_options /** * Inicjuje stronę opcji wyświetlania motywu, rejestrując sekcje, * pola i ustawienia. * * Ta funkcja jest zarejestrowana z hakiem 'admin_init'. */ function sandbox_initialize_theme_options() { // Jeśli opcje motywu nie istnieją, utwórz je. if( false == get_option( 'sandbox_theme_display_options' ) ) { add_option( 'sandbox_theme_display_options', apply_filters( 'sandbox_theme_default_display_options', sandbox_theme_default_display_options() ) ); } // koniec jeśli // Najpierw się rejestrujemyer sekcji. Jest to konieczne, ponieważ wszystkie przyszłe opcje muszą należeć do sekcji add_settings_section( 'general_settings_section', // identyfikator używany do identyfikacji tej sekcji i za pomocą którego mają być rejestrowane opcje __( 'Opcje wyświetlania', 'sandbox' ), // Tytuł do wyświetlenia strona administracyjna 'sandbox_general_options_callback', // Wywołanie zwrotne używane do renderowania opisu sekcji 'sandbox_theme_display_options' // Strona, na której należy dodać tę sekcję opcji ); // Następnie wprowadzimy pola do przełączania widoczności elementów treści. add_settings_field( 'show_header', // Identyfikator używany do identyfikacji pola w całym motywie __( 'Header', 'sandbox' ), // Etykieta po lewej stronie elementu interfejsu opcji 'sandbox_toggle_header_callback', // Nazwa funkcja odpowiedzialna za renderowanie option interface 'sandbox_theme_display_options', // Strona, na której zostanie wyświetlona ta opcja 'general_settings_section', // Nazwa sekcji, do której należy to pole array( // Tablica argumentów przekazywanych do wywołania zwrotnego. W tym przypadku , tylko opis. __( 'Włącz to ustawienie, aby wyświetlić nagłówek.', 'piaskownica' ), ) ); add_settings_field( 'show_content', __( 'Content', 'sandbox' ), 'sandbox_toggle_content_callback', 'sandbox_theme_display_options', 'general_settings_section', array( __( 'Aktywuj to ustawienie, aby wyświetlić zawartość)and.', ', ' ); add_settings_field( 'show_footer',__( 'Stopka', 'sandbox' ), 'sandbox_toggle_footer_callback', 'sandbox_theme_display_options', 'general_settings_section', array( __( 'Włącz to ustawienie, aby wyświetlić stopkę.', 'sandbox' ), ) ); // Na koniec rejestrujemy pola w WordPress register_setting( 'sandbox_theme_display_options', 'sandbox_theme_display_options' ); } // koniec sandbox_initialize_theme_options add_action( 'admin_init', 'sandbox_initialize_theme_options' ); /** * Inicjuje opcje społecznościowe motywu, rejestrując sekcje, * pola i ustawienia. * * Ta funkcja jest zarejestrowana z hakiem 'admin_init'. */ function sandbox_theme_intialize_social_options() { if( false == get_option( 'sandbox_theme_social_options' ) ) {add_option( 'sandbox_theme_social_options', apply_filters( 'sandbox_theme_default_social_options', sandbox_theme_default_social_options() ) ); } // koniec jeśli add_settings_section( 'social_settings_section', // identyfikator używany do identyfikacji tej sekcji i za pomocą którego można zarejestrować opcje __( 'Opcje społecznościowe', 'sandbox' ), // Tytuł wyświetlany na stronie administracyjnej 'sandbox_social_options_callback' , // Wywołanie zwrotne używane do renderowania opisu sekcji 'sandbox_theme_social_options' // Strona, na której należy dodać tę sekcję opcji ); add_settings_field( 'twitter', 'Twitter', 'sandbox_twitter_callback', 'sandbox_theme_social_options', 'social_settings_section' ); add_settings_field( 'facebook',„Facebook”, „sandbox_facebook_callback”, „sandbox_theme_social_options”, „social_settings_section” ); add_settings_field( 'googleplus', 'Google+', 'sandbox_googleplus_callback', 'sandbox_theme_social_options', 'social_settings_section' ); register_setting( 'sandbox_theme_social_options', 'sandbox_theme_social_options', 'sandbox_theme_sanitize_social_options' ); } // koniec sandbox_theme_intialize_social_options add_action( 'admin_init', 'sandbox_theme_intialize_social_options' ); /** * Inicjuje przykład wprowadzania motywu, rejestrując sekcje, * pola i ustawienia. Ta konkretna grupa opcji służy do demonstracji * walidacji i sanityzacji. ** Ta funkcja jest zarejestrowana z hakiem 'admin_init'. */ function sandbox_theme_initialize_input_examples() { if( false == get_option( 'sandbox_theme_input_examples' ) ) { add_option( 'sandbox_theme_input_examples', apply_filters( 'sandbox_theme_default_input_options_);() sandbox } // koniec jeśli add_settings_section( 'input_examples_section', __( 'Input Przykłady', 'sandbox' ), 'sandbox_input_examples_callback', 'sandbox_theme_input_examples' ); add_settings_field( 'Element wejściowy', __( 'Element wejściowy', 'piaskownica' ), 'sandbox_input_element_callback', 'sandbox_theme_input_examples' 'input_examples_section' ); add_settings_field( 'Element obszaru tekstowego',__( 'Element obszaru tekstowego', 'piaskownica' ), 'skrzynka_tekstowa_element_oddzwaniania', 'przykłady_przykładu_piaskownicy', 'sekcja_przykładów_wejść' ); add_settings_field( 'Element pola wyboru', __( 'Element pola wyboru', 'piaskownica' ), 'sandbox_checkbox_element_callback', 'sandbox_theme_input_examples' 'input_examples_section' ); add_settings_field( 'Elementy przycisków radiowych', __( 'Elementy przycisków radiowych', 'piaskownica' ), 'sandbox_radio_element_callback', 'sandbox_theme_input_examples', 'input_examples_section' ); add_settings_field( 'Wybierz element', __( 'Wybierz element', 'piaskownica' ), 'sandbox_select_element_callback', 'sandbox_theme_input_examples', 'input_examples_section'); register_setting( 'przykłady_wejścia_motywu_piaskownicy', 'przykłady_wejścia_motywu_piaskownicy', 'przykłady_wejścia_motywu_piaskownicy' ); } // koniec sandbox_theme_initialize_input_examples add_action( 'admin_init', 'sandbox_theme_initialize_input_examples' ); /* ------------------------------------------------ ------------------------ * * Sekcja Wywołania zwrotne * ---------- -------------------------------------------------- - */ /** * Ta funkcja zapewnia prosty opis strony Opcje ogólne. * * Jest wywoływana z funkcji 'sandbox_initialize_theme_options' przez przekazanie jako parametr * w funkcji add_settings_section. */ function sandbox_general_options_callback() { echo '
' . __( 'Wybierz, które obszary treści chcesz wyświetlić.', 'sandbox' ) . '
'; } // koniec sandbox_general_options_callback /** * Ta funkcjaon zawiera prosty opis strony Opcje społecznościowe. * * Jest wywoływana z funkcji 'sandbox_theme_intialize_social_options' przez przekazanie jako parametr * w funkcji add_settings_section. */ function sandbox_social_options_callback() { echo '
' . __( 'Podaj adres URL do sieci społecznościowych, które chcesz wyświetlić.', 'sandbox' ) . '
'; } // end sandbox_general_options_callback /** * Ta funkcja udostępnia prosty opis strony Przykłady danych wejściowych. * * Jest wywoływana z funkcji 'sandbox_theme_intialize_input_examples_options' przez przekazanie jako parametr * w funkcji add_settings_section. */ function sandbox_input_examples_callback() { echo '
' . __( 'Zawiera przykłady pięciu podstawowych typów elementów.', 'sandbox' ) . '
'; } // koniec sandbox_general_options_callback /* ------------------------------------------- ------------------------------ * *Pole wywołania zwrotne * ----------------------------------------------- ------------------------- */ /** * Ta funkcja renderuje elementy interfejsu do przełączania widoczności elementu nagłówka. * * Przyjmuje tablicę lub argumenty i oczekuje, że pierwszy element tablicy będzie opisem * wyświetlanym obok pola wyboru. */ function sandbox_toggle_header_callback($args) { // Najpierw czytamy kolekcję opcji $options = get_option('sandbox_theme_display_options'); // Następnie aktualizujemy atrybut name, aby uzyskać dostęp do identyfikatora tego elementu w kontekście tablicy opcji wyświetlania // Uzyskujemy również dostęp do elementu show_header kolekcji options w wywołaniu funkcji pomocniczej check() $html = '<input type="pole wyboru" id="show_header" name="sandbox_theme_display_options[show_header]" value="1" ' . zaznaczone( 1, isset( $options['show_header']) ? $options['show_header'] : 0, false) . '/>'; // Tutaj weźmiemy pierwszy argument tablicy i dodamy go do etykiety obok pola wyboru $html .= ' ' . $args[0] . ''; echo $html; } // zakończenie funkcji sandbox_toggle_header_callback sandbox_toggle_content_callback($args) { $options = get_option('sandbox_theme_display_options'); $html = '<input type="pole wyboru" id="show_content" name="sandbox_theme_display_options[show_content]" value="1" ' . zaznaczone( 1, isset( $options['show_content']) ? $options['show_content'] : 0, false ). '/>'; $html .= ' ' . $args[0] . ''; echo $html; } // zakończenie funkcji sandbox_toggle_content_callback sandbox_toggle_footer_callback($args) { $options = get_option('sandbox_theme_display_options'); $html = '<input type="pole wyboru" id="show_footer" name="sandbox_theme_display_options[show_footer]" value="1" ' . check( 1, isset( $options['show_footer'] ) ? $options['show_footer'] : 0, false ) '/>'; $html .= ' ' . $args[0] . ''; echo $html; } // end sandbox_toggle_footer_callback function sandbox_twitter_callback() { // Najpierw czytamy kolekcję opcji społecznościowych $options = get_option ( 'sandbox_theme_social_options' ); // Następnie musimy upewnić się, że element jest zdefiniowany w opcjach. Jeśli nie, ustawimy pusty ciąg. $url = ''; if( isset( $options['twitter' ] ) ) { $url = esc_url( $options['twitter'] ); } // koniec, jeśli // renderowanie echa wyjściowego '<input type="text" id="twitter" name="sandbox_theme_social_options[twitter]" wartość="' . $url . '" />'; } // zakończenie funkcji sandbox_twitter_callback sandbox_facebook_callback() { $options = get_option( 'sandbox_theme_social_oopcje” ); $url = ''; if( isset( $opcje['facebook']) ) { $url = esc_url( $opcje['facebook'] ); } // end if // Renderuj dane wyjściowe echo '<input type="text" id="facebook" name="sandbox_theme_social_options[facebook]" value="' . $url . '" />'; } // zakończenie funkcji sandbox_facebook_callback sandbox_googleplus_callback() { $options = get_option( 'sandbox_theme_social_options' ); $url = ''; if( isset( $options['googleplus'] ) ) { $url = esc_url( $options['googleplus'] ); } // end if // Renderuj dane wyjściowe echo '<input type="text" id="googleplus" name="sandbox_theme_social_options[googleplus]" value="' . $url . '" />'; } // zakończenie funkcji sandbox_googleplus_callback sandbox_input_element_callback() { $options = get_option( 'sandbox_theme_input_examples' ); // Renderuj echo wyjściowe '<input type="tekst" id="przykład_wejściowy" name="sandbox_theme_przykłady_wejściowe[przykład_wejściowy]" wartość="' . $opcje['przykład_wejściowy'] . '" />'; } // zakończenie funkcji sandbox_input_element_callback sandbox_textarea_element_callback() { $options = get_option( 'sandbox_theme_input_examples' ); // Renderuj dane wyjściowe echo '<textarea id="textarea_example" name="sandbox_theme_input_examples[textarea_example]" rows="5" cols="50">' . $options['textarea_example'] . '</textarea>'; } // zakończenie funkcji sandbox_textarea_element_callback sandbox_checkbox_element_callback() { $options = get_option( 'sandbox_theme_input_examples' ); $html = '<input type="checkbox" id="checkbox_example" name="sandbox_theme_input_examples[checkbox_example]" value="1"' . check( 1, $options['checkbox_example'], false ) . '/>'; $html .= ' '; $html .= 'To jest przykład pola wyboru';echo $html; } // zakończenie funkcji sandbox_checkbox_element_callback sandbox_radio_element_callback() { $options = get_option( 'sandbox_theme_input_examples' ); $html = '<input type="radio" id="radio_example_one" name="sandbox_theme_input_examples[radio_example]" value="1"' . zaznaczone( 1, $options['przykład_radia'], fałsz ) . '/>'; $html .= ' '; $html .= 'Opcja pierwsza'; $html .= ' '; $html .= '<input type="radio" id="radio_example_two" name="sandbox_theme_input_examples[radio_example]" value="2"' . zaznaczone( 2, $options['przykład_radia'], fałsz ) . '/>'; $html .= ' '; $html .= 'Opcja druga'; echo $html; } // zakończenie funkcji sandbox_radio_element_callback sandbox_select_element_callback() { $options = get_option( 'sandbox_theme_input_examples' ); $html = '<select id="opcje_czasu" name="sandbox_theme_input_examples[time_options]">'; $html .= '<option value="default">' . __( 'Wybierz opcję czasu...', 'piaskownica' ) . '</option>'; $html .= '<option value="nigdy"' . wybrane( $options['time_options'], 'nigdy', fałsz) . '>' . __( 'Nigdy', 'piaskownica' ) . '</option>'; $html .= '<option value="czasami"' . wybrane( $options['time_options'], 'czasami', false) . '>' . __( 'Czasami', 'piaskownica' ) . '</option>'; $html .= '<option value="zawsze"' . wybrane( $options['time_options'], 'zawsze', false) . '>' . __( 'Zawsze', 'piaskownica' ) . '</option>'; $html .= '</select>'; echo $html; } // koniec sandbox_radio_element_callback /* ------------------------------------------- ----------------------------- * * Ustawianie wywołań zwrotnych * ---------------- -------------------------------------------------- ------ */ /** * Odwołanie odkażania dla opcji społecznościowych.Ponieważ każda z opcji społecznościowych to dane wejściowe tekstowe, * ta funkcja przechodzi przez opcję przychodzącą i usuwa wszystkie tagi i ukośniki z wartości * przed jej serializacją. * * @params $input Nieoczyszczony zbiór opcji. * * @returns Zbiór oczyszczonych wartości. */ function sandbox_theme_sanitize_social_options( $input ) { // Zdefiniuj tablicę dla zaktualizowanych opcji $output = array(); // Pętla przez każdą z opcji oczyszczających dane foreach( $input as $key => $val ) { if( isset ( $input[$key] ) ) { $output[$key] = esc_url_raw( strip_tags( stripslashes( $wejście[$klucz] ) ) ); } // koniec if } // koniec foreach // Zwróć nową kolekcję return apply_filters( 'sandbox_theme_sanitize_social_options', $output, $input ); } // zakończenie funkcji sandbox_theme_sanitize_social_options sandbox_theme_validate_input_examples( $input ) { // Utwórz naszą tablicę do przechowywania walidowanych opcji $output = array(); // Przeprowadź pętlę przez każdą z przychodzących opcji foreach( $input as $key => $value ) { // Sprawdź, czy bieżąca opcja ma wartość. Jeśli tak, przetwórz go. if( isset( $input[$key] ) ) { // Usuń wszystkie znaczniki HTML i PHP i prawidłowo obsługuj łańcuchy w cudzysłowie $output[$key] = strip_tags( stripslashes( $input[ $key ] ) ); } // end if } // end foreach // Zwróć tablicę przetwarzającą dodatkowe funkcje przefiltrowane przez tę akcję return apply_filters( 'sandbox_theme_validate_input_examples', $output, $input ); } // koniec sandbox_theme_validate_input_examples ?>


title: Czy wyświetlić nazwę taksonomii nadrzędnej i wyświetlić pod nią taksonomie podrzędne?

text:
Mam następującą strukturę taksonomii: * Rich Media * * przygotowanie kursu * * moduły demonstracyjne * Konfiguracja Moodle * * ponowne nauczanie starego kursu * * nauczanie nowego kursu Chcę wyświetlić nazwę podatku nadrzędnego i opis podatku podrzędnego (nie nazwę ). Opisy podatków dla dzieci będą linkować do archiwów podatkowych. To jest to, co do tej pory zhakowałem, ale chciałbym uniknąć konieczności używania wielu bloków tego rodzaju - każdy z innym $term_id. Czy jest na to bardziej elegancki sposób, aby jakiekolwiek przyszłe zmiany nie wymagały ręcznego dodawania kolejnego bloku? Każda pomoc jest mile widziana.

<?php $term = get_term_by('slug', 'rich-media', 'przygotowanie do nauczania'); echo $term->nazwa; ?>
 <?php $term_id = 249; $taxonomy_name = 'przygotowanie do nauczania'; $termchildren = get_term_children( $term_id, $taxonomy_name ); echo '
'; foreach ( $termchildren as $child ) { $term = get_term_by( 'id', $child, $taxonomy_name ); echo '
name, $taxonomy_name) . '">' . $term->opis . '
'; } echo '
'; ?>


title: Galeria NextGEN - Jak: wyświetlać tylko pełny rozmiar i tylko pierwszy obraz posta?

text: Używam Galerii NextGEN jako pewnego rodzaju zamiennika dla standardowej funkcji galerii Wordpress. Stworzyłem niestandardowy typ postu, który ma pokazywać tylko obrazy jak na wystawie. Podczas przesyłania zmieniam rozmiar obrazów, aby wszystkie miały te same wymiary. Kiedy wstawiam galerię do tego typu postu za pomocą shortcode, otrzymuję stronę z miniaturkami połączonymi z obrazami w pełnym rozmiarze (zmiany rozmiaru). To, czego chcę, to _brak miniatur_, chcę bezpośrednio wyświetlać obrazy w pełnym rozmiarze. Jak mam to zrobic? Oczywiście mógłbym po prostu zmienić rozmiar miniatury, aby pasował do pełnego rozmiaru, ale nie wydaje mi się to dobrą praktyką. _Również:_ Czy można pobrać tylko pierwsze zdjęcie z każdej galerii i wyświetlić je? Jeśli tak to jak?


title: Czy istnieje sposób na wyświetlanie ukrytych / niewidocznych znaków w edytorze takim jak ENTER i LINEFEED?

text: Szukam dodatku do Wordpressa lub sposobu na pokazanie niewidocznych znaków podczas edycji. Wyraźne, aby uniknąć problemów i spacji z wysuwem karetki powrotnej. ![tutaj podaj opis obrazu](http://i.stack.imgur.com/09KFv.png)


title: Niestandardowe pole meta nie działa z qTranslate

text: Korzystam z najnowszego WordPressa i qTranslate. Zrobiłem stronę, która włącza niektóre niestandardowe pola, które działają poprawnie. qTranslate włącza języki takie jak karty podczas edycji strony. Ale tak się nie dzieje w moich niestandardowych polach meta. Jakiś sposób na kontrolowanie języka na tych polach? Byłoby świetnie, gdyby istniał jakiś detektor zdarzeń JavaScript, który powiedziałby mi, że użytkownik zmienił kartę języka lub coś takiego. Czytałem o umieszczaniu jak <!--:ca-->CA<!--:--><!--:es-->ES<!--:--><!--:en--> EN<!--:--> wewnątrz pola meta, ale ponieważ będzie to używane przez użytkownika końcowego i jestem pewien, że nie zrozumie, co to oznacza i jak z niego korzystać. Potrzebuję innego pola meta dla różnych języków. Jakieś pomysły? Po drugie próbuję tego: <?php _e('Opublikowane', 'Iris'); ?> Ale kiedy zmieniam język strony (qTranslate ?lang=dk / ?lang=en) nigdy nie tłumaczy słowa. Zawsze jakoś zostaje po angielsku. Próbowałem tego i to działa: <?php echo _e("<!--:dk-->Udgivet<!--:en-->Opublikowane"); ?> Ale tak naprawdę nie korzysta z biblioteki językowej i miałem nadzieję, że jest na to sposób :)


title: Zaznacz wyniki wyszukiwania w Function.php

text: Znalazłem tę funkcję w sieci. Umieściłem to w moim pliku funkcji niestandardowych oddzielnie od functions.php. function highlight_search_term($text){ if(is_search()){ $keys = implode('|', explode(' ', get_search_query())); $text = preg_replace('/(' . $klawisze .')/iu', '\1', $text); } return $text; } add_filter('the_excerpt', 'highlight_search_term'); add_filter('the_title', 'highlight_search_term'); Działa dobrze, z wyjątkiem tego, że zmienia link Czytaj więcej. Najechanie kursorem na ten link pokazuje: http://www.mysite.com/%3span%20classs= Po usunięciu linku nie ma to wpływu. Co jest z tym nie tak? Użyłem z nim następującego CSS: .search-term { background: yellow; }


title: Podświetlanie pozycji menu według nazwy posta

text: Z pomocą kilku użytkowników moje ostatnie dwa pytania dotyczyły podświetlenia niestandardowego elementu menu za pomocą jego identyfikatora. Teraz próbuję połączyć kod następujących dwóch funkcji, aby działał według nazwy posta: Dodaj podświetlenie do nowej pozycji menu panelu administracyjnego add_action( 'admin_menu', 'create_menu' ); add_action( 'admin_head-post.php', 'wpse_58567_highlight_menu_item' ); function create_menu() { $settings_page = add_menu_page( 'Edit_Post_69', 'Edit_Post_69', 'add_users', '/post.php?post=69&action=edit', '', get_stylesheet_directory_uri() . '/editcon.png', 2 ); } funkcja wpse_58567_highlight_menu_item() { global $post; if( 69 != $post->ID ) return; ?> <script type="text/javascript"> jQuery(document).ready( function($) { $('#toplevel_page_post-post-69-action-edit').removeClass('wp-not-current-submenu ').addClass('current'); $('#toplevel_page_post-post-69-action-edit').find('a:last').addClass('current'); }); </script> <?php } i.... Konwertuj nazwę posta na identyfikator posta $post = get_page_by_title( $post_name, OBJECT, 'post' ); echo $post->ID; Teraz próbuję je połączyć, abym mógł podać nazwę posta zamiast identyfikatora posta, czy ktoś może wskazać mi właściwy kierunek?


title: Dodawanie niestandardowych pól (post meta) przed/podczas wp_insert_post()

text: Nasza baza kodu ma mnóstwo logiki, która jest wykonywana podczas wstawiania/tworzenia posta. Jednak część tej logiki zależy od niestandardowej meta postu. Jedyny znany mi sposób dodania meta postu do nowego postu jest taki: $post_id = wp_insert_post($post_obj); add_post_meta($post_id, 'klucz', "wartość"); Oznacza to jednak, że meta postu nie jest obecna, gdy występują zaczepy podczas wstawiania posta. Czy istnieje sposób na skonfigurowanie lub dołączenie meta postu jako części `$post_obj`? Próbowałem wymyślić nowe właściwości obiektu post za pomocą `$post_obj->custom_key = 'value'`, ale nie wyglądało na to, że tak naprawdę trafił do bazy danych. Jedyne, o czym mogę pomyśleć, to przejąć istniejącą właściwość obiektu post, którego nie używam, na przykład `menu_order` i przechowywać tam pewne informacje. To brzydki hack.


title: Dodaj atrybut kategorii do niestandardowego krótkiego kodu ostatniego posta

text:
Mam niedawny krótki kod do wyświetlenia niestandardowego posta. Jak dotąd wszystko działa dobrze. Chciałbym jednak dodać atrybut category, aby móc określić, którą kategorię wyświetlić. Mój działający kod wygląda następująco: function my_recent_posts_shortcode2( $atts ) { extract( shortcode_atts( array( 'limit' => 7, 'type' => 'g1_event'), $atts ) ); globalny $paged; $q = new WP_Query( array ( 'posts_per_page' => $limit, 'post_type' => $type, "orderby" => 'meta_value', "meta_key" => 'evt_start_date', "order" => 'ASC' , 'stronicowany' => $stronicowany ) ); $list = '
'; while ( $q->have_posts() ) { $q->the_post(); //dla tego posta pobierz niestandardowe pole "event_date", które powinno być w formacie rrrr-mm-dd i wyświetlane jako miesiąc, dzień //2011-02-22 będzie wyświetlany jako 22 lutego $evt_start_date = get_post_meta($post-> identyfikator, „evt_start_date”, prawda); $evt_start_date = get_post_meta($post->ID, 'evt_start_date', true); if ($evt_start_date) { echo 'Data wydarzenia to '. date('F j', strtotime($evt_start_date)); } $lista .= '
' . '' . pobierz_tytuł() . '' . „
”. get_post_meta( get_the_ID(), 'evt_start_date', true ) . ' @ ' . get_post_meta( get_the_ID(), 'evt_location', true ) . '
'; } wp_reset_query(); return $lista . '
'; } add_shortcode( 'ostatnie-wydarzenia', 'my_recent_posts_shortcode2' ); W tej chwili umieszczam krótki kod za pomocą: `[recent-events][/recent-events]` Chciałbym móc określić identyfikator kategorii: `[recent-events cat="62"][/recent-events] ` Mam nadzieję, że to jasne, dziękuję.


title: Przeglądarka przekierowana na adres URL wordpress z numerem portu z poprzedniej sesji tunelu SSH

text: Skonfigurowałem instancję Apache na moim serwerze ubuntu w mojej wewnętrznej sieci domowej. Jego adres wewnętrzny to `192.168.1.70`. Kiedy odwiedzam `http://192.168.1.70` otrzymuję standardowe "To działa!" strona Apache. Do celów testowych umieściłem stronę informacyjną php (`info.php`) w `/var/www`. Kiedy odwiedzam `http://192.168.1.70/info.php` widzę standardową wersję PHP + stronę informacyjną. Skonfigurowałem również wordpress w `/var/www/wordpress` oraz inny `info.php` w tym samym katalogu. Kiedy odwiedzam `http://192.168.1.70/wordpress/info.php` otrzymuję tę samą stronę PHP, co powyżej, co jest w porządku. Ale kiedy odwiedzam `http://192.168.1.70/wordpress`, zamiast strony głównej wordpress, widzę, że moja przeglądarka jest przekierowywana na to: `http://192.168.1.70:9980/wordpress` i wyświetla " nie można połączyć się z błędem 192.168.1.70:9980". Skąd wziął się ten magiczny numer portu? Pozwól, że pomogę z pewnym kontekstem. Wcześniej dzisiaj zarządzałem zdalnie moim serwerem ubuntu z pracy poprzez `ssh`-ing za pomocą następującego polecenia: `ssh -p ssh_port -L 9980:localhost:80 nazwa_użytkownika@serwer` w celu przetestowania go lokalnie przy użyciu adres URL `http://localhost:9980/wordpress`, ponieważ komputer, którego używałem, nie pozwalał mi na przekazywanie portów < 1024. Zawartość `/etc/apache2/ports.conf` to: NameVirtualHost *:80 Słuchaj 80 Dlaczego moja przeglądarka jest przekierowywana na `http://192.168.1.70:9980/wordpress`? Dlaczego używany jest port 9980 i skąd on pochodzi? Czy ktoś może pomóc? Dzięki Edytuj: Właśnie zrestartowałem router w domu, ale problem nadal występuje. Edycja: Dane wyjściowe `curl -I http://192.168.1.70` to: HTTP/1.1 200 OK Data: Czw, 09 Sty 2014 02:06:51 GMT Serwer: Apache/2.2.22 (Ubuntu) Ostatnia modyfikacja : Środa, 08 Sty 2014 18:05:15 GMT ETag: "a39cd-b1-4ef7955bf7f23" Zakresy akceptacji: bajty Długość treści: 177 Vary: Zaakceptuj-Kodowanie Content-Type: text/html X-Pad: unikaj błędu przeglądarki Edycja: Wyjście `curl -I http://192.168.1.70/wordpress/info.php` to: HTTP/1.1 200 OK Data: Czw, 09 Sty 2014 02:08:04 GMT Serwer: Apache/2.2.22 (Ubuntu) X-Powered-By: PHP/5.3.10-1ubuntu3.9 Zmienianie: Accept-Encoding Content-Type: text/html Edycja: Wyjście `curl -I http://192.168.1.70/wordpress/` to: HTTP/1.1 301 Przeniesione na stałe Data: Czw, 09 Sty 2014 18:51:51 GMT Serwer: Apache/2.2.22 (Ubuntu) X-Powered-By: PHP/5.3.10-1ubuntu3.9 X-Pingback: http://localhost:9980/wordpress/xmlrpc.php Lokalizacja: http://192.168.1.70:9980/wordpress/ Różne: Accept-Encoding Content-Type: text/html; zestaw znaków=UTF-8


title: Ustawienia API z niestandardowym ograniczeniem menu typu post

text: Stworzyłem niestandardowe menu typu postu za pomocą `register_post_type`. Chcę dodać podmenu ustawień z wieloma opcjami, w tym dodatkowym przyciskiem „Dodaj opcję do listy wyboru”. Problem: podczas używania ustawień api każdy `<form>` chce `action="options.php"`. Ale to kończy się przekierowaniem na adres edit.php wymaganym, gdy podmenu zostanie dodane do niestandardowego menu typu post. Oznacza to, że `$_POST` jest tracony do czasu, gdy kod wróci do strony opcji - więc nie ma możliwości sprawdzenia, czy te dodatkowe przyciski zostały naciśnięte. Nieużywanie options.php dla <form> kieruje zgłoszenia bezpośrednio do edit.php, gdzie umiera z opcją uprawnień. Wolałbym nie używać JavaScript do wypełniania tych dynamicznych ustawień. Czy jest jakiś sposób na ominięcie ustawień API i `options.php` i pobranie bezpośrednio pliku edit.php, ale bez awarii uprawnień? Przyjrzałem się kodowi źródłowemu, a także mnóstwu wtyczek z niestandardowym typem postu i stroną ustawień, ale WSZYSTKIE używają interfejsu API ustawień za pośrednictwem `options.php` - i to wyklucza uzyskanie alternatywnego przycisku przesyłania, kliknij z powrotem do kodu ustawień. W tym przypadku jest to poważne ograniczenie w interfejsie Settings API, ponieważ przekierowanie na końcu traci `$_POST`.


title: Galeria dynamiczna

text:
Tworzę witrynę jednostronicową, a to oznacza, że wszystkie linki muszą dynamicznie wywoływać treść posta. Znalazłem ten samouczek i z pomocą kilku osób ze StackOverflow udało mi się stworzyć strony, które to robią. Ale nowe wyzwanie pojawiło się, gdy musiałem stworzyć zestaw dynamicznych galerii na stronie. Oto, co musi się wydarzyć: jest lista tytułów postów z galeriami w każdym z nich. Po kliknięciu jednego z linków post z miniaturami powinien pojawić się tuż pod nim. Udało mi się to zrobić całkiem dobrze, ale po kliknięciu miniatury większa wersja powinna pojawić się z boku. Zastosowałem ten sam kod, ale to po prostu nie działa! Oto kod, który mam do tej pory: * index.php (sekcja galerii) have_posts()) : $recent->the_post();?>

Galeria
  <?php $args = array('post_type'=>'galeria'); $mojeposty = get_posts( $args ); foreach ( $myposts jako $post ): setup_postdata( $post ); ?>
 <a href="<?php the_permalink(); ?>"><?php the_title(); ?>
 <?php endforeach; wp_reset_postdata();?>

 * thumbnails.php (wyświetlanie miniatur. Praca.) $(document).ready(function() { var hash = window.location.hash.substr(1); var href = $ ('#galerias li a').each(function(){ var href = $(this).attr('href'); if(hash==href.substr(0,href.length)){ var aCarregar = 'hash+.html #itens'; $('#thumbnails').load(aCarregar) } }); $('#galerias li a').click(function() { var aCarregar = $(this).attr( 'href')+' #itens'; $('#thumbnails').hide('fast',carregarConteudo); $('#carregando').remove(); $('#thumbnails ').append('Carregando...'); $('#carregando').fadeIn('normal'); window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length); function carregarConteudo () { $('#thumbnails').load(aCarregar,'',mostrarNovoConteudo); } function mostrarNovoConteudo () { $('#thumbnails').show('normal',esconderCarregando); } function esconderCarregando () { $('#carregando').fadeOut('normal'); } zwróć fałsz; }); }); galeria.php (dodano miniatury, aby wyświetlić obraz. Nie działa) $(document).ready(function() { var hash = window.location.hash.substr(1); var href = $('#itens a') .each(function(){ var href = $(this).attr('href'); if(hash==href.substr(0,href.length)){ var aCarregar = 'hash+.html #conteudo-galeria '; $('#conteudo-galeria').load(aCarregar) } }); $('#itens a').click(function() { var aCarregar = $(this).attr('href')+ ' #conteudo-galeria'; $('#conteudo-galeria').hide('fast',carregarConteudo); $('#carregando').remove(); $('#atracoes').append('Carregando...'); $('#carregando').fadeIn('normal'); window.location.hash = $(this).attr('href') .substr(0,$(this).attr('href').length); function carregarConteudo () { $('#conteudo-galeria').load(aCarregar,'',mostrarNovoConteudo); } function mostrarNovoC onteudo () { $('#conteudo-galeria').show('normal',esconderCarregando); } function esconderCarregando () { $('#carregando').fadeOut('normal'); } zwróć fałsz; }); }); iamge.php (strona obrazu z galerii) <?php get_header(); ?>

 <?php if (have_posts()): while ( have_posts() : the_post(); ?>  <?php if ( wp_attachment_is_image( $post->id ) ) : $att_image = wp_get_attachment_image_src( $post->id, "full"); ?> <img src="<?php echo $att_image[0];?>" width="<?php echo $att_image[1];?>" height="<?php echo $att_image[2];? >" alt="<?php $post->post_excerpt; ?>" /> <?php else : ?> <a href="<?php echo wp_get_attachment_url($post->ID) ?>" title="< ?php echo wp_specialchars( get_the_title($post->ID), 1 ) ?>"><?php echo basename($post->guid) ?> <?php endif; ?>  <?php endwhile; ?> <?php jeszcze: ?> <?php endif; ?>

  <?php get_footer(); ?> Wow, to było długo. dziękuję, jeśli miałeś cierpliwość, by podążać aż tutaj. Obecnie, jeśli kliknę w miniaturkę, przenoszę się do image.php. PS: Js powinien również działać w historii, ale tak nie jest. W tej chwili nie jest to priorytetem, ale jeśli i tak wiecie, jak to naprawić, będzie to bardzo mile widziane.


title: wp_set_object_terms nie działa w functions.php z niestandardową taksonomią

text: Używam niestandardowych pól z niestandardową taksonomią... I muszę przypisać nowy post do niestandardowej kategorii. Jak wiesz, domyślny wp_insert_post nie działa z „post_category” z niestandardowymi postami. Więc musimy przypisać za pomocą wp_set_object_terms. Ale jest duży problem, gdy wstawię np. w pliku function.php ten kod: wp_set_object_terms($post_ID, array(1,5), 'custom_cat_taxonomy') w ogóle nie działa, a błąd to: Obiekt WP_Error ( [błędy ] => Tablica ( [invalid_taxonomy] => kiedy wstawiam ten kod np. w single.php to działa i przypisuje kategorię do postu. jakieś pomysły jak to rozwiązać ?


title: WP Query wielokrotnego wyboru formularz - pomoc meta_query

text:
Tworzę filtr wielokrotny - tak jak w przypadku, gdybym chciał, mógłbym filtrować według wszystkich opcji, tj. Warunki, kalorie i cena w moim przypadku. Mam problem z argumentami zapytania meta. Obecnie mogę wyszukiwać indywidualnie według terminów lub kalorii i mnożyć przez terminy i kalorie oraz terminy, kalorie i cenę razem, ale sama cena nie wpływa na wyniki wyszukiwania? Wybierz: <form action="/?page_id=5" method="post"> <?php // Ustaw zmienne min/max z danymi wejściowymi posta $min = $_POST['min']; // Zbierz wartość minimalną i ustaw na var $max = $_POST['max']; // Zbierz maksymalną wartość i ustaw ją na var // Ustaw zmienną filtra z danymi wejściowymi po terminie $product_filter = $_POST['product_terms']; $cal_filter = $_POST['product_cal']; // Ustaw parametry/argumenty terminu $args = array( 'orderby' => 'name', 'order' => 'ASC', 'hide_empty' => false, 'parent' => 0, ); // Pobierz warunki za pomocą naszych argumentów $shop_terms = get_terms('shop', $args); echo '<select name="product_terms[]" multiple>'; // Ustaw zmienną jako tablicę $all_product_terms = array(); foreach($shop_terms as $shop_term){ // Ustaw wszystkie warunki na naszą tablicę $all_product_terms[] = $shop_term->name; echo '<option value="'.$shop_term->nazwa.'">'.$shop_term->nazwa.'</option>'; } echo '</select>'; $all_product_cal = tablica(); $post_args = array( 'post_type' => 'shop_post', 'order' => 'ASC', 'posts_per_page' => -1, ); $posts = get_posts($post_args); echo '<select name="product_cal[]" multiple>'; foreach ($posts as $post){ $keys = get_post_meta( $post->ID, 'calories' ); // sprawdź, czy niestandardowe pole ma wartość $all_product_cal[] = $keys[0]; if( ! empty( $keys ) ) { echo '<wartość opcji="'.$keys[0].'">'.$keys[0].' cal</option>'; } } echo 'Od: £ <input id="shop1" type="text" name="min">'; echo 'Do: £ <input id="shop2" type="text" name="max">'; echo '</select>'; echo '<input type="prześlij" value="go">'; ?> </form> Edycja: Dodano kompletny kod poniżej Isset i nowe WP_Query: $final_product_term = isset($_POST['product_terms']) ? $product_filter : $all_product_terms; $final_product_cal = isset($_POST['product_cal']) ? $cal_filter : $all_product_cal; $min_value = isset($_POST['min']) ? $min : '1'; $max_value = isset($_POST['max']) ? $maks : '100000'; $args = array( 'post_type' => 'shop_post', 'order' => 'ASC', 'post_status' => 'any', 'orderby' => 'name', 'tax_query' => array( array( 'taxonomy' => 'shop', 'field' => 'slug', 'terms' => $final_product_term ) ), 'meta_query' => array( 'relation' => 'OR', array( 'key' = > 'calories', 'value' => $final_product_cal, ), array( 'key' => 'price', 'value' => array($min_value, $max_value), 'type' => 'numeric', ' porównaj' => 'POMIĘDZY' )) ); $shop_posts = nowe WP_Query($args); if($shop_posts->have_posts()) : while($shop_posts->have_posts()) : $shop_posts->the_post(); $met = get_post_meta( $post->ID, 'cena'); foreach($ spełnione jako $klucz => $wal ); echo '
'; echo '
'; echo get_the_post_thumbnail($post->ID, 'blog-cat'); echo '
'. get_the_title($post->ID).'
'; echo '
£'. $wartość'
'; echo '
'; echo '
'; Domyślne zapytanie przy ładowaniu strony: WP_Query Object ( [query] => Array ( [post_type] => shop_post [order] => ASC [post_status] => any [orderby] => name [tax_query] => Array ( [0] => Tablica ( [taksonomia] => sklep [pole] => ślimak [warunki] => Tablica ( [0] => Piłka [1] => Batony [2] => Ciastka [3] => Frytki [4] => Krakersy [5] => Chipsy [6] => Krówka [7] => Granola )) ) [spełnione a_zapytanie] => Tablica ( [relacja] => LUB [0] => Tablica ( [klucz] => kalorie [wartość] => Tablica ( [0] => 1 [1] => 66 [2] => 56 [3] => 99 [4] => 70 [5] => 34 [6] => 50 [7] => 44 ) ) [1] => Tablica ( [klucz] => cena [wartość] => Tablica ( [0] => 1 [1] => 100000 ) [typ] => numeryczny [porównaj] => MIĘDZY ) ) )


title: Jakie są różnice między „Najnowszymi postami” a „Stroną statyczną”?

text: WordPress ma opcję wyboru „Najnowsze posty” i „Strona statyczna” w „Ustawieniach” w panelu administracyjnym. Moje pytania: 1. Jaki szablon strony jest ładowany w każdym z tych trybów? 2. Dlaczego `paged` przestaje działać, a `page` zaczyna działać, gdy wybieram "Strona statyczna" - `paged` działa, jednak gdy tworzę nowy szablon strony z nowym WP Query, a `page` nie działa (jest to o WP Query - myślę, że wszyscy wiedzą o czym mówię - to paginacja). 3. Wygląda na to, że `get_post_meta($post->ID, "my_custom_field_name", true)` przestaje działać, gdy wybieram niestandardowy szablon strony jako "Strona statyczna", ale to samo działa, gdy używam go przez standardową "Wyświetl stronę" w Panel administracyjny (jeszcze nie próbowałem `global $post`). 4. Myślę, że wszystkie moje powyższe pytania dotyczą tego, co dostaje się do `$wp_query` i `$post` w każdym z tych trybów. Po prostu nie rozumiem tych dwóch opcji :) Czy ktoś może udzielić mi wskazówek lub zasobów, dzięki którym mógłbym dowiedzieć się więcej na ten temat?


title: Edycja zmiennych w niestandardowym adresie URL

text: Mam istniejącą stronę w niestandardowym motywie, która oczekuje adresu URL w postaci: `/story?user=1`, ale chciałbym móc używać również lepszych adresów URL, np.: `/story/username`. Próbowałem dodać regułę przepisywania w functions.php, jak poniżej, która zabiera mnie w pół drogi, pozwalając na adresy URL takie jak `/story/1`: function my_custom_url() { add_rewrite_rule('story/([^/]+) /?','index.php?pagename=story&user=$matches[1]','top'); } add_action( 'init', 'my_custom_url' ); Jednak nadal chciałbym używać nazwy użytkownika w adresie URL. Aby to umożliwić, spodziewałem się zmienić regułę przepisywania na następującą: add_rewrite_rule('story/([^/]+)/?','index.php?pagename=story&user='.get_user_id($matches[1]) ,'Top'); Gdzie `get_user_id()` jest funkcją, która zwraca identyfikator dla określonej nazwy użytkownika, ale wydaje się, że nie działa (jak przetestowano we wtyczce Rewrite Analyzer). Ta odpowiedź skierowała mnie w stronę haka `parse_query`, więc spróbowałem czegoś takiego (wraz z oryginalną regułą przepisywania): function my_query_var() { if ($user = get_query_var('user')) { $id = get_user_id($ użytkownik); globalne $wp_query; $wp_query->set('użytkownik',$id); } } add_action('parse_query','my_query_var'); Jednak to też nie działa; Rewrite Analyzer pokazuje, że część adresu URL 'user' pozostaje ustawiona na to, co zostało wpisane po 'story' w pasku adresu, a nie na wynik `get_user_id()`. Jakieś pomysły, co powinienem zrobić zamiast tego? Dziękuję! **Edit** Zapewne warto wspomnieć, że rejestruję zmienną `user` w następujący sposób: function register_query_var($query_vars) { $query_vars[] = 'user'; zwróć $query_vars; } add_filter('query_vars','register_query_var');


title: Jak mogę zautomatyzować ten proces?

text: Mam stronę Piekarnia. Za każdym razem, gdy dodaję stronę podrzędną, taką jak ciasta, chcę dodać tytuł strony „ciasta” do niestandardowej taksonomii. Chcę również dodać tę stronę podrzędną do menu, które wyświetla te strony podrzędne. Dowiedziałem się, że muszę podpiąć się pod `nowa_strona`. Czyli coś takiego, function($page_id){ sprawdź, czy ta strona jest typem strony, a parent_page to ID strony piekarni Jeśli tak, dodaj tę stronę do menu, które wyświetla strony podrzędne. Przypuszczam, że potrzebuję identyfikatora menu, ale nie wiem, jak go znaleźć, nawet go na stałe zakodować. Na koniec chcę dodać tytuł tej strony do niestandardowej taksonomii. }      Możesz pomóc?


title: Uzyskaj nazwę kategorii w zapytaniu

text:
Mam kategorię nadrzędną, Gra (identyfikator kota 42), a w niej niektóre kategorie potomne: Acrade, Causaul. Po użyciu pętli, aby uzyskać tytuł posta, chcę mieć nazwę kategorii podrzędnej. Ale mój kod nie działa: <?php $args = array( 'cat' => 42, 'posts_per_page' => 12, 'post__in' => get_option( 'sticky_posts' ), ); // Zapytanie $the_query = new WP_Query( $args ); $categories = get_the_category($post->ID); // Pętla while ( $the_query->have_posts() ): $the_query->the_post(); ?> <?php /* if post ma miniaturkę */ if ( ( function_exists('has_post_thumbnail')) && ( has_post_thumbnail() ) ) { ?>
 <a href="<?php the_permalink(); ? >" rel="zakładka" title="Stały link: <?php the_title(); ?>"><?php the_post_thumbnail('app_icon', array('title' => get_the_title())); ?>
 <a href="<?php echo get_permalink() ?>" rel="zakładka" title="Stały link: <?php the_title(); ?>" ><?php tytuł_(); ?>
 <?php echo $categories ?>
 <?php } /* koniec jeśli post ma miniaturkę */ endwhile; // Zresetuj dane posta wp_reset_postdata(); ?>


title: Resetowanie hasła — wyłączone dla kont LDAP

text: Używam wtyczki wpDirAuth, aby umożliwić logowanie LDAP i automatyczne tworzenie kont. Jednym z problemów, na które natknąłem się, jest to, że użytkownicy LDAP mogą nadal prosić o zresetowanie hasła. Otrzymują wiadomość e-mail z linkiem, ale link mówi, że klucz jest nieprawidłowy. Więc dobrze, że nie próbuje zmienić ich hasła. Chciałbym jednak uniemożliwić im wysyłanie wiadomości e-mail, a zamiast tego wiadomość o treści „Przepraszamy, hasła do konta nie można zmienić na tej stronie. Prosimy o kontakt z działem obsługi IT” po przesłaniu formularza. Czy po przesłaniu formularza mogę użyć haka, aby sprawdzić, czy konto jest z LDAP (mógłbym sprawdzić firmowy adres e-mail, aby zidentyfikować konta LDAP) i zwrócić komunikat o błędzie?


title: Wstaw komentarz i nadal korzystaj z moderacji

text: Mam niestandardowy formularz komentarza, który wstawia komentarz poza pętlą i stosuje go do wpisu. Staram się, aby nadal używał kontroli moderacji, zanim oznaczy ją jako „Zatwierdź”. Czy istnieje sposób na wykorzystanie narzędzi do moderacji za pomocą wp_insert_comment? Chcę zapobiec pojawianiu się komentarzy zawierających nieodpowiednie słowa w kanale komentarzy. Oto mój kod: add_action( 'wp_ajax_create_comment', 'create_comment' ); function create_comment(){ $postID = $_POST['postID']; $commentAuthName = $_POST['nazwa_autora']; $commentAuth = $_POST['identyfikator autora']; $commentContent = $_POST['commentContent']; $commentParent = $_POST['commentParent']; if(pusty($rodzickomentarza)){ $Rodzickomentarzu = 0; } $czas = current_time('mysql'); $data = array( 'comment_post_ID' => $postID, 'comment_content' => $commentContent, 'comment_parent' => $commentParent, 'comment_date' => $time, 'comment_approved' => 1, 'user_id' => $ commentAuth, 'comment_author' => $commentAuthName, 'comment_author_IP' => $_SERVER['REMOTE_ADDR'], 'comment_agent' => $_SERVER['HTTP_USER_AGENT'], ); $commentID = wp_insert_comment($dane); print_r($identyfikator komentarza); umierać(); } **Dodaje dodatkowe wyjaśnienie: Chcę automatycznie publikować i wyświetlać treści, które nie są oflagowane na podstawie kluczy moderacji. Te, które są oznaczone, należy przesłać do kolejki moderacji.


title: Porządkować według wartości meta lub daty?

text: Masz niestandardowe pole o nazwie „Data rozpoczęcia”, ale dotyczy tylko kilku zdarzeń. Zastanawiałem się, czy nie jest ustawiony dla postu, którego mógłbym użyć `post_date` do wygenerowania listy postów? // jeśli meta_key _postmeta.startDate nie jest ustawiony, pobierz resztę przez posts.post_date query_posts( array( array( 'posts_per_page' => 10, 'meta_key' => 'startDate', 'meta_value' => date('Y-m- d'), 'meta_compare' => '<', 'orderby' => 'meta_value', 'order' => 'ASC' ), array( 'meta_key' => 'post_date', 'meta_value' => date( 'Y-m-d'), 'meta_compare' => '<' ) ) );


title: Jeśli usunę bazę kategorii z moich adresów URL, jak trudne będzie wycofanie?

text: Ostatnim razem, gdy zadałem pytanie, które wymagało odpowiedzi na opinię, otrzymałem wątpliwą odznakę Tumbleweed. Obawiam się dodania do mojej kolekcji, ale zaczynam :) Rozważam napisanie w moim motywie opcji, która zmusiłaby wszystkie strony i posty do rozszerzenia .html, a wszystkie strony docelowe kategorii miały adresy URL bez bazy kategorii imię w nich. Z tego powodu chciałbym uzyskać opinie na temat możliwości przełączania się między moją niestandardową strukturą adresu URL a domyślną strukturą WordPressa na wypadek, gdyby właściciel witryny chciał wrócić po zmianie na nową strukturę. W nowej strukturze strona docelowa kategorii byłaby adresowana bez nazwy bazowej kategorii w adresie URL, tak jak: site.com/blue-widgets Normalnie byłoby to napisane: site.com/category/blue-widgets A żeby to zadziałało, Wymagam również, aby wszystkie posty i strony kończyły się rozszerzeniem takim jak .html, aby odróżnić kategorie od postów o tej samej nazwie. Na przykład site.com/blue-widgets.html


title: Jak wyświetlić ostatni post na każdej stronie MU wordpress na stronie głównej?

text: właściwie prowadzę witrynę wordpress MU i każda witryna ma swoje „życie”, ale teraz chciałbym pokazać ostatnie X postów każdego bloga z mojej sieci na stronie głównej. Wiem, jak to zrobić za pomocą Feeds i wtyczki o nazwie FeedPress, ale jest to „brudny” sposób na zrobienie tego. Czy jest ktoś, kto wie, jak to zrobić? Proszę o instrukcje krok po kroku Nie jestem Noobem, ale.... nawet programistą. Dziękuję wszystkim!


title: Aktualizacja z wersji 2.9.4 do 3.0.xi z niestandardowym motywem

text: Mam stronę, w której motyw jest BARDZO niestandardowy i nie mogę już współpracować z deweloperem. Czy powinienem się martwić, że motyw nie działa już w 3.0.4. a jeśli tak, jaki jest dla mnie najłatwiejszy sposób przetestowania mojego motywu przed aktualizacją? Dzięki Eric


title: Lokalizacja wtyczki

text:
Właśnie zbudowałem swoją pierwszą wtyczkę do wp i nawet jeśli nie jest to świetna "poezja kodu" ;) działa tak, jak powinna. Jest to wtyczka, która przekształca domyślną galerię wp za pomocą wtyczki jquery GalleryView 3.0 (http://spaceforaname.com/galleryview). Jedyne czego nie jestem w stanie zrobić to lokalizacja. Lokalizacja dla tej wtyczki oznacza przetłumaczenie interfejsu administratora, w którym ktoś może skonfigurować opcje wtyczki jquery, aby zmienić wygląd wynikowej galerii. Próbowałem śledzić miliony samouczków obecnych w sieci, czytałem wiele postów o tym problemie na forach i postępowałem zgodnie z wytycznymi kodeksu… ale wciąż bez powodzenia. Oto co zrobiłem: 1. Każda linia tekstu jest wewnątrz funkcji gettext ( `__` i `_e` ) 2. Używając poedit stworzyłem plik `.po` i `.mo` skanujący katalog wtyczek (wszystko poszło ok), potem dodałem tłumaczenia do tego pliku. 3. Nazwałem plik `.po` w ten sposób `NAZWA-WTYCZKI-it_IT.po` (plik `.mo` został wygenerowany o tej samej nazwie) 4. Umieściłem pliki tłumaczeń wewnątrz folder wtyczek `/languages` (nazwa folderu jest taka sama jak w przypadku wtyczki i plików tłumaczeń) 5. Następnie spróbowałem dodać funkcję `load_plugin_textdomain` w głównym pliku wtyczki. Próbowałem, bo nie ma sposobu, żeby to zadziałało. Jedyną rzeczą, co do której nie jestem pewien, jest fakt, że stworzony przeze mnie plugin nie znajduje się pod klasą + konstruktor... tylko dlatego, że nadal nie jestem tak dobry w kodowaniu. Umieściłem `load_plugin_textdomain` wewnątrz `add_action` na init, tak: add_action('init', 'gw_load_translation_file'); function gw_load_translation_file() { // ścieżka względna do WP_PLUGIN_DIR, gdzie będą znajdować się pliki tłumaczeń: $plugin_path = dirname(plugin_basename( __FILE__) .'/języki' ); load_plugin_textdomain( 'widok-galerii-dla-wordpress', fałsz, $ścieżka_wtyczek ); } Powyższe wiersze nie są wewnątrz logiki, są po prostu w głównym pliku wtyczki, o tak. To jest przykład mojego użycia funkcji gettext:
<?php _e('Opcje panelu', 'gallery-widok-for-wordpress') ?>
 Czego nie zrozumiałem?


title: jak mogę połączyć się ze stroną podmenu administratora wtyczki po przetworzeniu formuły?

text: Mam wtyczkę z 3 podmenu_stronami. Na jednej stronie znajduje się formuła (w jednej jakiś tekst, a w drugiej lista pozycji). kiedy prześlę formularz, nastąpi przetwarzanie. potem nie chcę wracać do strony formularza, ale powłoka WP przekierowuje mnie do jednej z innych podmenu_stron (w tym przypadku listy). jak mogę to osiągnąć? add_menu_page( 'strona główna page1', '0', 'manage_options', 'mg-pi', 'mg_backend'); add_submenu_page( 'mg-pi', 'lista czegoś', '0', 'opcje_zarządzania', 'mg-pi-sub-list', 'mg_list'); add_submenu_page( 'mg-pi', 'create', '0', 'manage_options', 'mg-pi-sub-create', 'mg_new_item'); więc w `mg_new_item()` jest przetwarzanie, a następnie przekierowanie powłoki do `mg_list()`. ale jeśli wykonam wywołanie php do `mg_list()` adres URL nadal będzie adresem `mg_new_item()`. Wiem, że mógłbym zrobić kilka `header("Lokalizacja: adres-url-listy-zakodowanej na stałe");`, ale szukam wspólnego sposobu na WordPress, z ogólnym generowaniem adresów URL.


title: Wyświetl post według taksonomii i potomka taksonomii, jeśli istnieją

text: Mam zarejestrowaną taksonomię o nazwie Typy, która jest hierarchiczna i działa. Przykładem kategorii będzie Hotel w Wielkiej Brytanii -1 gwiazdka -2 gwiazdki -3 gwiazdki Hotel w Hiszpanii -1 gwiazdka -2 gwiazdki -3 gwiazdki itp. Mam problem ze znalezieniem właściwego sposobu wyświetlania mojej strony (niestandardowy post Hotel). Potrzebuję kodu do wyświetlania hoteli według taksonomii tylko wtedy, gdy istnieje jakaś pomoc? KOD AKTUALIZACJI $taxonomy2 = 'typ-zakwaterowania'; $termsacc = get_terms("accomodation-type",array('orderby' => 'slug', 'order' => 'ASC')); foreach ($termsacc as $termaccomodation) { //Tutaj przechodzę przez mój typ konta podatkowego //i sprawdzam, czy jest jakiś post z kraju $termcountry->name (uzyskanie tej wartości wyższej) $query = new WP_Query(array ('post_type' => 'accomodation', 'orderby'=> $termaccomodation->name,'order' => 'DESC','accomodation-type' =>$termaccomodation->name, 'country' =>$termcountry ->nazwa,'posts_per_page' => 48)); i pętla.... `


title: Czy mogę zainstalować Analytics przed podjęciem decyzji o motywie?

text: Nie zdecydowałem jeszcze, jaki motyw umieścić na mojej witrynie WordPress. Ale chcę mieć Google Analytics w witrynie. Czy przed zainstalowaniem Google Analytics na stronie muszę zdecydować się na motyw? tj. czy kod Google Analytics trafia do pliku, który jest specyficzny dla motywu lub zmienia się wraz ze zmienionym motywem? Dziękuję


title: Napraw niestandardowe stronicowanie zapytań bez zmiany ustawień postów na stronie w całej witrynie

text: Wiele osób zgłasza problemy z paginacją niestandardowych zapytań lub niestandardowych archiwów postów: url/page/2 generuje błąd 404, mimo że cała konfiguracja jest prawidłowa. Wiele osób dowiaduje się, że dzieje się tak, ponieważ liczba posts_per_page ich niestandardowej pętli jest mniejsza niż maksymalna liczba postów na stronę w ustawieniach administratora, które naprawiają, zmieniając Ustawienia » Czytanie » „Strony bloga wyświetlają co najwyżej: ____ postów” na 1 . To działa w mojej sytuacji, ale zdecydowanie wolałbym to zmienić tylko dla tego konkretnego zapytania niestandardowego, a nie dla całej witryny. czy to możliwe? Odpowiednie WP_Query to: $paged = (get_query_var('paged')) ? get_query_var('stronicowane') : 1; $wp_query = new WP_Query( array( 'post_type' => 'publication', 'posts_per_page' => 5, 'paged'=>$paged));


title: Jaka jest różnica między get_the_time a get_the_date?

text: Obie funkcje zwracają datę i godzinę. Jaka jest między nimi różnica? Masz jakiś przykład? Dziękuję.


title: add_rewrite_rule: $matches var nie jest zastępowana przez przechwyconą wartość

text: Chcę uzyskać dostęp do pliku wtyczki (po kliknięciu `<a>`) bez ujawniania aktualnej ścieżki do pliku. Używam następującej reguły przepisywania: add_rewrite_rule( 'continue/([0-9]+)/?$', 'wp-content/plugins/my-plugin/continue.php?where=$matches[1]', 'Top' ); Żądanie jest przekierowywane do `continue.php`, ale zawsze otrzymuję `$_GET['where']=$matches[1]` zamiast `$_GET['where']=123` wewnątrz continue.php. Powinien zostać zastąpiony jakąś liczbą. Chcę czegoś podobnego do tej **Aktualizacji** Próbowałem Monkeyman Rewrite Analyzer, ale moja reguła się w nim nie wyświetla. Dlaczego więc przekierowuję mnie na właściwą stronę? np. dla `continue/2` ma następujące wyjście: `(.+?)(/[0-9]+)?/?$ nazwa strony: kontynuuj strona: /2`


title: Edycja pulpitu Wordpress

text: Prawie edytowałem pulpit Wordpress, ale teraz jestem zdezorientowany z paskiem bocznym Nie mogę znaleźć strony, na której wygląd, posty, komentarze, ustawienia itp. Czy ktoś może wiedzieć, gdzie mogę znaleźć kody tego paska bocznego


title: Arkusz stylów nie jest ładowany?

text: Umieściłem link do dodatkowego arkusza stylów w moim nagłówku: <link rel='stylesheet' href='<?php echo get_bloginfo('template_url'); ?>/woo.css' type='text/css'/> Co działa dobrze na moim lokalnym komputerze, ale na moim serwerze pomostowym CSS nie jest stosowany. Kiedy przeglądam źródło i podążam za linkiem do arkusza stylów, ładuje się dobrze, więc wiem, że link nie jest uszkodzony. Ale z jakiegoś powodu ten arkusz stylów nie jest stosowany do strony. Sprawdziłem uprawnienia, są 644. Jestem zakłopotany. Nigdy wcześniej to się nie zdarzyło. Korzystanie z WooCommerce z motywem potomnym Rockwell.


title: Czego powinienem użyć zamiast WP_CONTENT_DIR i WP_PLUGIN_DIR?

text: Dokumentacja WordPressa dotycząca określania katalogów wtyczek i zawartości stwierdza, że: > WordPress używa następujących stałych przy określaniu ścieżki do > katalogów zawartości i wtyczek. **Nie powinny być używane bezpośrednio przez > wtyczki lub motywy** , ale są wymienione tutaj dla kompletności. Dalej wymienia się `WP_CONTENT_DIR` i `WP_PLUGIN_DIR` wśród stałych, których twórcy motywów i wtyczek nie powinni używać, prawdopodobnie z tego powodu: > WordPress pozwala użytkownikom na umieszczenie ich katalogu wp-content gdziekolwiek > chcą, więc nigdy nie należy zakładać, że wtyczki będą znajdować się w wp-content/plugins, > lub przesłane pliki będą znajdować się w wp-content/uploads, lub motywy będą w wp- > content/themes. Mark Jaquith również komentuje tutaj, że te stałe nie powinny być używane: > Nie używaj WP_PLUGIN_URL lub WP_PLUGIN_DIR — wtyczki mogą nie znajdować się w katalogu > plugins. **Więc jaki jest akceptowany sposób odwoływania się do pełnej ścieżki do folderów wtyczek, wp-content i motywów bez używania tych stałych?** Jako prosty przykład, aby wyświetlić pełną ścieżkę wszystkich zainstalowanych wtyczek, mogę zrobić to: <?php $plugins = get_plugins(); foreach ($plugins as $file => $szczegóły) { echo WP_PLUGIN_DIR . '/' . $plik . '<br>'; } Co daje taką listę: /var/www/wp-content/plugins/akismet/akismet.php /var/www/wp-content/plugins/debug-bar/debug-bar.php /var/www/wp -content/plugins/hello.php (Mogę chcieć to zrobić, jeśli pisałem wtyczkę pozwalającą użytkownikowi na selektywne archiwizowanie wtyczek w ramach kopii zapasowej witryny, na przykład.) Jeśli użycie `WP_PLUGIN_DIR` jest nieprawidłowe, co jest sugerowana alternatywa? Nie ma odpowiednika `wp_upload_dir()` dla wtyczek, motywów i folderu wp-content, które mogę znaleźć, co sprawia, że odwoływanie się do potencjalnie wędrownych katalogów głównych motywów i wtyczek jest problematyczne.


title: Jak działa motyw potomny?

text: Stworzyłem motyw potomny i zainstalowałem go, ale nie wiem, jak to dokładnie działa! Na przykład w motywie nadrzędnym mam poniższy kod: .header { margin-top: 10px; margines-dolny: 10px; szerokość: 300px; wysokość: 150px; tło: białe; szerokość obramowania: 5px; } I nie chcę uwzględniać szerokości: 300px; , tło i szerokość obramowania (ponieważ nie chcę tła i obramowania) i zmień "margin-top: 10px;" do "górnego marginesu: 15px;" w motywie potomnym. Więc normalnie w motywie potomnym miałbym: .header { margin-top: 15px; margines-dolny: 10px; wysokość: 150px; } Chodzi o to, że jeśli to zrobię, WordPress automatycznie sprawdzi najpierw `style.css` motywu potomnego, a następnie `style.css` motywu nadrzędnego. Więc wykona brakujący kod (szerokość: 300px; , tło i szerokość obramowania). Co powinienem zrobić? Jestem trochę zmieszany. Czy muszę usunąć każdą niechcianą linię z motywu nadrzędnego? Ale jeśli zrobię to po aktualizacji, doda to ponownie.


title: Jak dodać Ajax do domyślnego kalendarza widżetów, aby wspierać ładowanie następnego/poprzedniego miesiąca?

text: Chcę dostosować lub zastąpić domyślny kalendarz, podobny do domyślnego widżetu, ale z ładowaniem następnego i poprzedniego miesiąca Ajax. Idealnie chciałbym móc to zrobić (czerwone kropki to daty z postami): > ![przykład](http://is.gd/8mvxuv) Lewa i prawa część to podgląd następnego i poprzedniego miesiąca. Ale to będzie trochę trudne do zrobienia. Wystarczy prosty kalendarz WordPress z Ajaxem next/previous i linkiem do dni zawierających posty. Może istnieje sposób (sztuczka?) na dodanie miesięcy ładowania Ajax do domyślnego widżetu kalendarza. Domyślny jest prosty i doskonały, ale tej funkcji brakuje. Jak mogłem to zrobić?


title: Zezwalaj na kropkę w permalinkach wordpress (tylko dla kategorii)

text: Używam nazw domen jako kategorii. Na przykład mam nazwę kategorii „google.com”, ale wordpress konwertuje kropkę z myślnikiem w permalinkach. Czy ktoś może mi powiedzieć, jak zezwolić na kropkę w kategorii permalink?


title: Oczyszczanie tagów skryptu

text: Chcę wyczyścić tagi `<script>` generowane przez WordPress, aby uzyskać więcej semantycznych danych wyjściowych dla HTML5. Możesz już to zrobić dla tagów `<style>` używając tego kodu dołączonego do filtra `style_loader_tag`: //wyczyść domyślne tagi stylu WordPress add_filter('style_loader_tag', 'clean_style_tag'); function clean_style_tag($input) { preg_match_all("!<link rel='stylesheet'\s?(id='[^']+')?\s+href='(.*)' type='text/css ' media='(.*)' />!", $input, $matches); //wyświetlaj media tylko wtedy, gdy są drukowane $media = $matches[3][0] === 'print' ? ' media="drukuj"' : ''; return '<link rel="stylesheet" href="' . $matches[2][0] . '"' . $media . '>' . "\n"; } Ale nie ma jeszcze odpowiednika `script_loader_tag` w rdzeniu. Zostało to zaproponowane w przeszłości, ale na razie potrzebujemy obejścia. Zacząłem szukać w `/wp-includes/class.wp-scripts.php` w `function do_item( $handle, $group = false )` wokół linii 79, która zawiera wyjście skryptu (w szczególności `linie 117-120` ), ale mam problem ze znalezieniem odpowiedniego filtra, którego można by tu użyć.


title: Wyszukiwanie wielu kategorii

text: Staram się stworzyć funkcję wyszukiwania, która umożliwi użytkownikom wpisanie wyszukiwanego terminu i wybranie kilku kategorii. Skrypt dobrze przeszukuje jedną kategorię, ale kiedy dodaję więcej niż jedną, trafiam na przeszkodę. Mój kod wygląda następująco: <form method="get" id="searchform" action="<?php echo home_url(); ?>"> <input type="text" onclick="this.value=''; " onfocus="this.select()" onblur="this.value=!this.value?'Search...':this.value;" value="Szukaj..." name="s" id="s" /> <input type="ukryty" name="post_type" value="product" /> <?php wp_dropdown_categories('taxonomy=product_cat&id=make&child_of =15&show_option_all=Wybierz Utwórz...'); ?> <?php wp_dropdown_categories('taxonomy=product_cat&id=model&child_of=21&show_option_all=Wybierz model...'); ?> <input type="submit" id="searchsubmit" value="Search" /> </form> Podczas wyszukiwania odkryłem: Wordpress Multiple Category Search, który wydaje się robić dokładnie to, czego chcę ... jednak Nie jestem pewien, jak uwzględnić tę sugestię. Jestem prawie pewien, że dodasz następujące elementy do swojego pliku funkcji: add_action( 'parse_request', 'category_search_logic', 11 ); function category_search_logic( $query ) { if ( ! isset( $query->query_vars[ 'cat' ] ) ) return $query; // podziel zapytanie cat na spację, aby uzyskać identyfikatory oddzielone znakiem '+' w adresie URL $cats = explode( ' ', $query->query_vars[ 'cat' ] ); if ( count( $cats ) > 1 ) { unset( $query->query_vars[ 'kot' ] ); $zapytanie->zapytanie_zmienne[ 'kategoria__i' ] = $koty; } return $zapytanie; } Ale jak włączyć to do formularza wyszukiwania? Jestem pewien, że to coś prostego, ale się zgubiłem... ktoś ma jakieś pomysły? Dzięki, Josh


title: post__in nie działa z pre_get_posts, ale post__not_in działa

text: Mam ustawienia akcji na `pre_get_posts`, na których chciałbym użyć `post__in`. Jako test użyłem następującego kodu: $query->set('post__not_in', array(74485,1528,71460)); To działa, całkowita liczba postów jest zmniejszona o te 3. Jednak co zrobić, jeśli chcę użyć `post__in` do zwrócenia tych 3 postów? Próbowałem: $query->set('post__in', array(74485,1528,71460)); Ale to nie zadziałało. Pomyślałem, że może to dlatego, że `post__not_in` jest już używany (jak mówi kodeks, `post__in` i `post__not_in` nie mogą być używane razem. Spróbowałem więc: $query->set('post__not_in', ''); $query->set('post__in', array(74485,1528,71460));Ale to nadal nie działa.Proszę o pomoc?Dzięki


title: Jak zbudować bazę filmów za pomocą wordpressa?

text: Szukam wtyczki do zbudowania bazy danych filmów, takiej jak Popcritics. Wtyczka umożliwiłaby mi dodawanie niestandardowych informacji (takich jak CustomPress) o filmie. Ostatecznie wtyczka może pozwolić użytkownikom na rejestrację w celu zapisywania ulubionych filmów. Czy znasz jednego?


title: uporządkować według drugiego słowa w tytule?

text: Jako tytuły postów mam pełne imiona i nazwiska i chcę je uporządkować według nazwiska. Jak mogę to zrobić z wordpressem? w PHP wyglądałoby to tak: - SELECT * from posts ORDER BY SUBSTR(LTRIM(post_title), LOCATE(' ',LTRIM(post_title))) aktualny kod pobierający kategorię osób to; $args = array( 'posts_per_page'=>50, 'cat'=> '39,-41', 'orderby'=>'title', 'order'=>'ASC', ); zapytanie_posty($args); jak mogę uzyskać drugą kolejność słów? najlepiej, Dan.


title: Chroń HTML w komentarzu

text: W systemie komentarzy wordpress działa HTML. Chcę chronić wstawianie kodu HTML w systemie komentarzy wordpress.


title: Zaplanuj publikowanie postów z dat/godzin wstępnie ustawionych przez administratora

text: Mam wieloautorską stronę o baseballu. Chcę, aby autorzy mogli zaplanować publikację postów w jednym z czterech wybranych razy dziennie. Jest to ważne, ponieważ niektórzy autorzy piszą podsumowania gier, a automatyczne publikowanie podsumowania gry po uruchomieniu kolejnej gry jest całkiem bezwartościowe. Szukam wtyczki do zarządzania tym. Dzięki badaniom znalazłem kilka wtyczek, które wybiorą czas między zestawem czasów ustawionych przez administratora, ale szukam czegoś, w którym administrator może ustawić kalendarz dni / godzin (lub zakres czasu), aby umożliwić post do opublikowania i ustal maksymalną liczbę postów za każdym razem, gdy Autor pisze swój post, a następnie otrzymuje wybór dat/godzin, aby zaplanować opublikowanie posta. Jak wspomniałem, istnieją podobne wtyczki, ale żadna z nich nie pozwala administratorom na ustawianie konkretnych godzin. Czy ktoś wie o wtyczce lub innej metodzie? Wtyczka nie musi być darmowa. # Aktualizacja za pomocą "Wizji" **Ustawienia administratora** : Ustaw daty dozwolone dla publikacji postów. Ustaw czasy dozwolone na publikowanie postów. Ustaw liczbę postów, które mogą zostać zaplanowane do opublikowania za każdym razem (jeśli liczba w harmonogramie została osiągnięta na slot, nie zostanie ona pokazana autorowi). **Opcje planowania autora** : brak przycisku „Opublikuj”. Musisz wybrać dzień tygodnia, aby opublikować post >> Musisz wybrać z dostępnych godzin, aby opublikować post.


title: Zwracanie wyników wyszukiwania według trafności, w tym niestandardowe typy postów

text: Domyślna konfiguracja wyszukiwania WordPress nie działa w przypadku konfiguracji mojej witryny. Mam dwa niestandardowe typy postów („gatunek”, „glosariusz”), które chciałbym wyszukać, a także standardowy typ „post”. Typ postu „gatunek” (który będę nazywał „profilami gatunkowymi”) składa się z wielu pól „meta”, w tym „rodzaj” i „gatunek” (dwa stopnie taksonomiczne, które są powszechnie używane do identyfikacji gatunki ryb). „Tytuł” profilu gatunku to jego nazwa naukowa ( _Genus species_ ) oraz wszelkie nienaukowe nazwy pospolite, jakie może mieć. Typowy post `species` (profil AKA) będzie wyglądał tak: > `http://www.seriouslyfish.com/species/puntius-sahyadriensis/` WSTAWIĆ `wp_postmeta` (`meta_id`, `post_id`, `meta_key `, `meta_value`) WARTOŚCI (104395, 2288, 'rodzaj', 'Puntius'), (104396, 2288, 'gatunek', 'sahyadriensis'), ( 104397, 2288, 'rodzina', 'Cyprinidae'), (104398, 2288, 'nazwy_pospolite', ''), (104399, 2288, 'dystrybucja', 'Endemiczny do strumieni Yenny dorzecze w pobliżu miasta Mahabaleshwar w paśmie górskim Ghaty Zachodnie, dystrykt Satara, stan Maharashtra , Indie.'), (104400, 2288, 'habitat', 'The rzeka  Yenna przepływa przez bujny, wiecznie zielony las, co oznacza, że górskie strumienie, w których można znaleźć ryby, są prawdopodobnie zacienione przez baldachim lasu i gęste marginalna roślinność. Podłoże powinny składać się z głazów, mniejszych kamieni, piasek lub żwir z zatopionymi korzeniami drzew na obrzeżach i cichszymi obszarami, w których gromadzą się opadłe gałęzie i ściółka. Podobnie jak w przypadku podobnych członków rodzaju prawdopodobnie zbierze się on w backwater lub głębsze obszary o mniejszym przepływie'), (104402, 2288, 'max_size', 'Około 2,75"/7cm.'), (104403, 2288, 'aquarium_size', 'Jest to aktywny gatunki i zbiornik o wymiarach co najmniej 36" x 12" x 12"/90 cm x 30 cm x 30 cm/85 litrów jest potrzebny do pomieszczenia grupy'), (104404, 2288, 'konserwacja', 'Wybór wystroju jest nie tak krytyczna jak jakość wody i ilość zapewnionej przestrzeni do pływania, sugerujemy trzymanie jej w przestronnym, dobrze obsadzonym roślinamiakwarium lub alternatywnie wyglądałby świetnie w konfiguracji zaprojektowanej do przypominają płynącą rzekę z podłoże skał o różnej wielkości i żwir i kilka dużych, noszonych przez wodę głazów. Można by również zbudować kolektor rzeczny, aby zapewnić naturalistyczny jednokierunkowy przepływ. czołg można dodatkowo wyposażyć w gałęzie i wodne dla wartości estetycznych. Podczas gdy zdecydowana większość roślin gatunki nie będą się rozwijać w takich warunkach możliwe jest m.in. wytrzymały gatunki, takie jak paproć Java, Bolbitis lub Anubias gatunki, które można hodować wraz z dekorem. Podobnie jak wiele innych gatunki ="/glossary/s/species" rel="/glossary/s/species?hover=true">gatunki pochodzące z nieskazitelnych środowisk naturalnych nie toleruje gromadzenia organiczne odpady i wymagają nieskazitelnej wody przez cały czas, aby się rozwijać.'), (104405, 2288, „Chemia_wody”, „Temperatura: Preferuje nieco chłodne warunki w zakresie 20–24 ° C/68–75 ° C. Wiadomo, że wyższe temperatury stymulują tarło zn powiązany wzrost agresji u mężczyzn.\r\n\r\npH: 6,8 - 7,8\r\n\r\nTwardość: 5 - 15°H '), (104406, 2288, 'diet', 'Prawdopodobnie żywią się małymi bezkręgowcami, glony i inne zooplankton w naturze. akwarium akceptuje suszoną żywność odpowiedniej wielkości, ale nie należy je karmić wyłącznie nimi. Codzienne posiłki składające się z małych żywych i mrożonych potraw, takie jak  Rozwielitka, Artemia  i tym podobne przyniosą najlepsze ubarwienie i zachęcą ryby do wejścia w stan rozrodczy”.), (104407, 2288, 'behaviour', 'Nie jest agresywną rybą, ale najlepiej trzymaj ją w towarzystwie innych żyjących na wzgórzach gatunki, takie jak Danio, Devario, inne małe Puntius, Garra i bocje balitorydowe. To powiedziawszy, pod warunkiem spełnienia wymagań dotyczących tlenu i temperatury, można go mieszać z najbardziej spokojnymi rybami, które są zbyt duże, aby można je było uznać za pokarm. A biotop-style społeczność oparta na gatunkach ze wzgórz Ghaty Zachodnie również zrobiłyby ciekawy projekt z włóknem Puntiusosus, str. fasciatus, str. narayani, str. ticto, Barilius bakeri, B. canarensis, Devario aequipinnatus, D. malabaricus, Rasbora daniconius, Laubuca laubuca, Nemacheilus rupelli, Mesonemacheilus triangularis oraz M. guentheri wśród licznychodpowiednie gatunki dostępne w handlu czasami.\r\n\ r\nZ natury jest to gatunek i naprawdę powinno być trzymane w grupie co najmniej 8-10 okazów. Utrzymanie go w przyzwoitych ilościach nie tylko sprawi, że ryby będą mniej nerwowe, ale zaowocuje bardziej efektywnym, naturalnie wyglądającym pokazem, jednocześnie pozwalając osobnikom na wytchnienie od energicznych samców alfa. Samce będą również prezentować swoje najlepsze kolory i interesujące zachowania, rywalizując ze sobą o uwagę kobiet. Zwłaszcza osobnik dominujący w danej grupie będzie miał oszałamiające ubarwienie.'), (104408, 2288, 'dymorfizm', 'Samiec jest zauważalnie szczuplejszy i jaśniejszy niż samica, zwłaszcza gdy ryby są w tarło. Przede wszystkim zabarwienie ciała jest bardziej intensywne, <a class="link_glossary" href="/glossary/v/ventral" rel="/glossary/v/ventral?hover=true Wokół brzuszne zakończone są białymi, inne bardziej czerwone i wystające gruźlicy. true">pysk i głowa w dojrzałych okazach .'), (104409, 2288, 'reproduction', 'Nie jesteśmy pewni, czy zostało wyhodowane w hobby, chociaż z pewnością powinno to być możliwe. Jak większość karpiowatych, ten gatunek to jajko-rozproszenie, ciągły spawn, który nie wykazuje opieka rodzicielska. Oznacza to, że gdy ryby są w dobrym stanie, odradzają się często i w dobrze wyposażonym dojrzałym akwarium możliwe jest, że niewielka liczba fry może zacząć pojawiać się bez interwencji człowieka.\r\n\r\nJeśli jednak chcesz zwiększyć wydajność fry wymagane jest nieco bardziej kontrolowane podejście, które sugerujemy który okazał się skuteczny dla podobnych członków rodzaju jako punkt wyjścia . Dorosła grupa może nadalbyć kondycjonowane razem, ale jeden lub więcej małych, powiedzmy 18" x 10" x 10"/45cm x 25cm x 25cm/29,5 litrowe pojemniki również powinny być ustawione i napełnione do połowy wodą. Powinny one być bardzo słabo oświetlone za pomocą base pozostawione nagie lub pokryte jakimś rodzajem siatki o wystarczająco dużym stopniu, aby wszelkie jaja, które nie przylegają do rośliny, mogły przejść ale na tyle małe, że dorośli nie mogą ich dosięgnąć. Szeroko dostępna plastikowa „trawa”-type, która działa bardzo dobrze. Przyzwoitej wielkości kępa mchu jawajskiego lub innej drobnolistnej rośliny należy również dodać, wypełniając być może połowę dostępnej przestrzeni. Woda powinna być około neutral pH, gH <8, z lekko podwyższoną temperaturą 75 - 80°F. Mały, zasilany powietrzem filtr gąbkowy bardzo bulgoczący delikatnie to wszystko, co jest potrzebne do filtracji.\r\n\r\nKiedy dorosłe ryby są dobrze odżywione, a samice wydają się pełne jaj, pojedynczy pair należy następnie wprowadzić do każdego kontenera. Jeśli warunki im odpowiadają, powinni odradzać się następnego ranka. Pamiętaj, aby zapewnić kobiecie dużo osłony, ponieważ samiec może być dość agresywny w pogoni za nią. W niektórych przypadkach może nawet wymagać przerwyf po odradzaniu w zbiornik, w którym nie ma żadnych samców.\r\n\r\nDorośli zjedzą jajka dać szansę i należy je usunąć, gdy tylko zostaną zauważone. Inkubacja w jajach Puntius zależy w pewnym stopniu od temperatury, ale zwykle trwa od 20 do 48 godzin, a młode pływają swobodnie 24 do 48 godzin później. Pożywienie początkowe powinno być Paramecium lub podobnym, wprowadzając  Artemia nauplii i/lub < class="link_glossary" href="/glossary/m/microworm" rel="/glossary/m/microworm?hover=true">microworm po frytki są wystarczająco duże, aby je zaakceptować.'), (104410, 2288, 'misc_notes', 'Ten piękny gatunki nie jest często widywane w hobby, prawdopodobnie ze względu na jego ograniczoną dystrybucję i ma tendencję do osiągania stosunkowo wysokiej ceny, gdy jest dostępna. w sprzedaży pod nazwami handlowymi ''Maharaja'' lub ''Khavli'' barb .\r\n\r\nrodzaj Puntius jest obecnie postrzegany jako coś w rodzaju catch-all dla ponad 100 gatunki małych ryb karpiowatych. Większość ekspertów zgadza się, że pełny rewizja jest wymagana, z prawdopodobnym wynikiem, że człowieky gatunki zostaną umieszczone w nowym lub innym genera. Opisując rodzaj w 1822 roku, Hamilton zidentyfikował następujące cechy: „brak lub obecność tylko szczękowej lub rostral i szczękowe brzany; dorsal fin z ostatnią prosty promień ząbkowany lub cały, promienie rozgałęzione zwykle 8; analna płetwy z ostatnim simple ray cały, promienie rozgałęzione zwykle 5; wiersz boczny kompletny lub niekompletny, lateral-line skale 17-36 w rzędzie; głowicowy skórna brodawki minuta lub brak; zęby gardła w 3 rzędach, zwykle 2,3,5/5,3,2; wzór kolorystyczny niezwykle zmienny." Wszystkie gatunki znajdujące się obecnie w rodzaje to rodzimy dla Azji Południowo-Wschodniej, Indii i Sri Lanki.\r\n\r\nInnym głównym źródłem nieporozumień związanych z Puntiusem jest to, że niektórzy autorzy nie rozpoznają wszystkich członków gatunki jako takie, raczej podążając za Walterem Rainbothem (1996) i preferując umieszczenie niektórych w alternatywie rodzaj Systomus. Rainboth zaproponował, aby Systomus powinien zostać przywrócony (po raz pierwszy został wzniesiony w XIX wieku) jako ważny rodzaj ze względu na fakt, że w obecnym stanie Puntius wydaje się stanowić polifiletyczne, tj. nie wszyscy jego członkowie wydają się pochodzić od tego samego wspólnego przodka. Cechy charakterystyczne Systomus gatunki są (według Rainbotha) ząbkowane (w porównaniu z gładkim w Puntius) grzbietowy kręgosłup, obecność 2 lub 4 sztang (w porównaniu z zawsze 2) i mniej niż 12 skrzelowce (w porównaniu z 12-20). SF wstępnie wymienia wszystkie gatunki jako Puntius obecnie.'), (167927, 2288, 'etymologia', ' '), (104421, 2288, 'attached_media', 'a:4:{i:0;s:5:"22881";i:1;s:5:"22882";i:2;s:5: "22883";i:3;s:5:"22884";}'), (150578, 2288, 'odniesienia', 'a:2:{i:0;a:5:{s:13:"ref_doc_title ";s:67:"Struktura zbiorowiska ryb strumieniowych w Ghatach Zachodnich (Indie).";s:12:"ref_pub_year";s:0:"";s:13:"ref_page_nums";s:5:"1-31.";s:14:"ref_publishers";s:17:"Hydrobiologia 430";s:11:"ref_authors";s:19:"Arunachalam M. 2000";}i:1;a:5 :{s:13:"ref_doc_title";s:0:"";s:12:"ref_pub_year";s:0:"";s:13:"ref_page_nums";s:0:"";s:14 :"ref_publishers";s:16:"www.fishbase.org";s:11:"ref_authors";s:0:"";}}'), (167925, 2288, '_edit_lock', '1341244017:4 '), (167928, 2288, 'species_author', 'Silas'), (167929, 2288, 'rok_opisany', '1953'), (167930, 2288, 'beginner_suitability', '3'), (167931, 2288, 'type_of_fish', '2') WSTAWIĆ `wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`, `post_excerpt`, `post_status`, `comment_status`, `ping_status`, `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type `, `comment_count`) WARTOŚCI (2288, 4, '2013-03-13 13:24:32', '2012-03-13 13:24:32', '', 'Puntius sahyadriensis', 'Ten piękny gatuneknie jest często widywany w hobby, prawdopodobnie ze względu na jego ograniczoną dystrybucję i ma tendencję do osiągania stosunkowo wysokiej ceny, gdy jest dostępny. Można go zobaczyć w sprzedaży pod nazwami handlowymi "Maharaja" lub "Khavli". Większość ekspertów zgadza się, że wymagana jest pełna rewizja, z prawdopodobnym wynikiem, że wiele gatunków zostanie umieszczonych w nowych lub di...”, „opublikuj”, „otwarte”, „otwarte”, „”, „puntius-sahyadriensis”, '', '', '2012-07-02 16:48:43', '2012-07-02 15:48:43', '', 0, 'http://www.seriouslyfish.com/?post_type =gatunek&p=2288', 0, 'gatunek', '', 0); Jeśli to możliwe, chciałbym je uporządkować w ten sposób: * Jeśli użytkownik szuka gatunku ryby, np. `Satanoperca daemon`, powinien on zostać zwrócony jako pierwszy (ta informacja jest `tytułem` postu typu `species`, a także znaleźć w towarzyszących polach meta `genus` i `species` dla tego typu postu). * Jeślinapisano artykuł na temat tego gatunku, należy go zwrócić poniżej samego gatunku. * Jeśli ten gatunek ryb jest wymieniony w profilach innych gatunków, należy je podać poniżej samego gatunku i załączonych artykułów. * Jeśli użytkownik wyszukuje rodzaj ryb, np. „Satanoperca”, jako pierwsze powinny pojawić się artykuły odnoszące się do rodzaju „Satanoperca”. * Wyniki dotyczące gatunku powinny następnie pojawić się w porządku alfabetycznym zgodnie z „gatunkiem”, tj. „Satanoperca daemon”, następnie „Satanoperca leucosticta” itp. pod artykułami pisanymi na temat rodzaju. W przeciwnym razie wyniki powinny być wyświetlane według trafności, ważone według tytułu (powiedzmy 5); treść posta (2); tagi (0,5). Czy to w ogóle możliwe? Zainstalowałem wtyczkę Relevanssi, która wydaje się robić większość tego, czego potrzebuję, ale po jej zainstalowaniu, ustawieniu opcji i zindeksowaniu, wyszukanie `Betta splendens` zwraca profil gatunku ostatni pod `Amica splendens` i kilka innych gatunek. Z góry dziękuję,


title: chcę przepisać mój niestandardowy adres URL wtyczki

text: Pracuję nad wtyczką wordpress. i mam taki formularz $action_url = WP_PLUGIN_URL .'/demo-url-rewrite/include/test.php'; <form action="<?php echo $action_url; ?>" method="get" name="f1"> Nazwa : <input type="text" name="name" id="name" value=""> <br /> <input type="submit" name="b1" value="Save"> </form> gdy użytkownik prześle formularz i zostanie wykonana akcja chcę ten adres URL :: http://mysite.com/Projects /demos/demo-url-rewrite/client/pranav-gandhi/ zamiast tego adresu URL :: http://mysite.com/Projects/demos/demo-url-rewrite/wp-content/plugins/demo-url-rewrite /include/test.php?name=Pranav+Gandhi&b1=Zapisz więc Jak mogę nadpisać adres URL funkcją worpress. dzięki.


title: zaloguj się do wordpress za pomocą zmiennych Get zamiast Post

text: Używam swish-e do indeksowania mojej firmowej witryny i dokumentów. Problem polega na tym, że muszę zalogować się do wordpress za pomocą zmiennych pobierania. Logowanie do Wordpressa używa zmiennej post, ale muszę zalogować się za pomocą zmiennych GET > http://mysite.com/wp-login.php?log=username&pwd=password Jest na to prosty sposób? Nie mam nic przeciwko zmianie podstawowych plików, czy nie ma innej opcji. Rzuciłem okiem na wp-login.php, ale nie mam pojęcia, jak to zrobić. Pozdrowienia


title: Błąd wtyczki Image Slider/ suwaka s3 w WP

text: Używam Wordpress w wersji 2.8 _(Nie można uaktualnić tam, gdzie pracuję)_ ; i użyłem motywu „Emerald Stretch” jako podstawowej struktury kości tego, co rozwijam. _(Który ostatecznie będzie responsywnym motywem wordpress, używającym zapytań o media css3 i obracającym się banerem jquery pod nagłówkiem, a najlepiej bym mógł użyć tego)_ Pierwsza rzecz to wersja, której używam; Wiem - nie mam opcji, więc gdyby były różne odpowiedzi, to byłoby super. Chcę zaimplementować pokaz slajdów podobny do; http://www.serie3.info/s3slider/demonstration.html w przykładzie nr 2 w łączu. Znalazłem więc wtyczkę _serie3_ slider _(Na stronie głównej wtyczki jest napisane, że jest zgodna z WP 2.0.2)_, której zamierzałem użyć; po zainstalowaniu i przejściu do jego menu w celu wgrania pierwszego obrazu - pojawia się poniższy błąd; " **Ostrzeżenie: uprawnienia do katalogu /data/24/1/0/139/1815302/user/1967139/htdocs/wp-content/plugins/s3slider-plugin/files/ są nieprawidłowe. Ustaw je na 777, aby były w stanie wgrywać pliki."** Strona domowa wtyczki: http://wordpress.org/extend/plugins/s3slider-plugin/ Jak mogę to naprawić - żeby zadziałało? ..a jeśli nie, to jakieś sugestie gdzie mogę zacząć implementować jego kod od zera? Zacząłem próbować zaimplementować go w header.php, ale po podglądzie się tam nie renderował? _**To, co aktualnie posiadam, znajduje się pod adresem; www.o s m p r o d u k t i o n.com_**


title: Wiele do wielu relacji między dwoma niestandardowymi typami postów

text: Jak utworzyć relację wiele do wielu między dwoma niestandardowymi typami postów? Podaj typ A i typ B, chciałbym móc pokazać wszystkie B, które odnoszą się do danego A i wszystkie A, które odnoszą się do danego B.


title: WP-PageNavi nie działa na niestandardowym szablonie strony

text:
to jest mój kod w szablonie strony niestandardowej <?php query_posts('showposts=8'); ?> <?php $liczba = 1; if (have_posts()) : while (have_posts()) : the_post(); if($count == 1) : ?> & to jest kod wp_pagenavi
 <?php if (function_exists('wp_pagenavi')) wp_pagenavi(); else { ?><?php } ?>

 wyświetlają się numery stron, ale nawigacja nie działa


title: Czy można uporządkować posty według dwóch metawartości?

text: Mam nadzieję, że to dość proste pytanie! Czy można zamawiać posty na froncie mojej instalacji WP według **dwóch** meta wartości? Mam metaklucz o nazwie „rodzaj” i drugi o nazwie „gatunek”. Chciałbym najpierw posortować według „rodzaju” (ASC), a następnie „gatunku” (ASC). Z góry dziękuję,


title: Warunki WordPress nie działają

text:
Cześć Buduję akordeon jquery, który działa dobrze na mojej stronie. Jednak teraz próbuję wprowadzić warunkowe, aby włączyć je tylko na postach i stronach, jednak to nie działa, wydaje się, że warunki warunkowe nie wykrywają, że jest to strona. Kod znajduje się tutaj: http://pastebin.com/9anYAKa1 function faq_start_shortcode( $atts, $content = null ) { return '
'; } function faq_question_shortcode( $atts, $content = null ) { return '
' . $treść . '
'; } function faq_answer_shortcode( $atts, $content = null ) { return '
' . $treść . '
'; } function faq_end_shortcode( $atts, $content = null ) { return '
'; } if ( is_single() || is_page() ) { add_shortcode('faqstart', 'faq_start_shortcode'); add_shortcode('pytanie', 'faq_question_shortcode'); add_shortcode('answer', 'faq_answer_shortcode'); add_shortcode('faqend', 'faq_end_shortcode'); }


title: Nadpisywanie arkusza stylów w motywie Child

text: Oto mój problem: mam dwa arkusze stylów w moim motywie potomnym: style.css i style-premium.css (który zawiera tylko zmodyfikowany CSS). Moje posty używają jednego z tych arkuszy stylów w zależności od ich kategorii. Chcę, aby style-premium.css przesłonił style.css w taki sam sposób, w jaki arkusz stylów motywu podrzędnego zastępuje jeden z motywu nadrzędnego (dodaj modyfikacje, ale zachowuje niezmodyfikowany CSS). Nie wiem, czy to coś zmienia, ale style.css zawiera również tylko zmodyfikowany CSS (wszystkie pozostałe CSS z motywu nadrzędnego są importowane przez @import). Nie wiem, czy to jasne (angielski nie jest moim językiem ojczystym...). Jeśli masz pytania, które mogą mi pomóc, po prostu zapytaj! Mam nadzieję, że możesz pomóc...! :)


title: Przekazywanie imion i nazwisk użytkowników z zewnętrznej bazy danych do imion i nazwisk użytkowników WordPress za pomocą zmiennych sesji?

text: To może być trochę zawiłe, ale oto jest. Nie pozwalam użytkownikom rejestrować się w WordPressie, aby uzyskać dostęp do mojej witryny członkowskiej. Mam skonfigurowany zewnętrzny system rejestracji/logowania i chcę nadal go używać do rejestracji nowego użytkownika i logowania się po stronie członka. Używam krótkiego kodu WordPressa umieszczonego w różnych obszarach mojego własnego kodu HTML i działa wspaniale. Wadą, którą zauważyłem, jest to, że wtyczki (a konkretnie WP-Polls) mogą rejestrować głosy według adresu IP, plików cookie i/lub nazwy użytkownika. Chcę użyć logów głosów i zebrać nazwę użytkownika i zarchiwizować to, na co głosowali użytkownicy. Rozpocząłem proces importowania mojej tabeli bazy danych użytkownika do WP i przekazałem dane przez odpowiednie nagłówki kolumn i wszystko działało dobrze. Teraz chcę użyć imienia i nazwiska użytkownika (które znajduje się w sesji użytkownika) od momentu zalogowania i przekazać je do zmiennej WP, której WP-Polls używa do rejestrowania nazw użytkowników. Mój mózg jest pomieszany i nie koncentruję się wystarczająco, by to rozgryźć. Czy ktoś może zaoferować pomoc? Mój poziom PHP jest niski, średniozaawansowany, więc proszę wyjaśnij to komuś, kto jest tylko kilka poziomów powyżej idioty. Bardzo bym to doceniła.


title: Jak utworzyć link do wszystkich postów, które mają standardowy format postów

text: Dlaczego to nie działa?! `<?php echo get_post_format_link('standard');?>` :( Jakieś wskazówki? Wszystkie inne formaty działają.


title: Nie znaleziono motywu potomnego opartego na zestawie narzędzi

text: Próbuję stworzyć motyw potomny motywu przybornika i użyć go w mojej wielostanowiskowej instalacji WP 3.2. Utworzyłem folder o nazwie `wp-content/themes/charlie-repair-toolkit/`, a następnie utworzyłem `style.css` w folderze z następującymi informacjami (niektóre z nich są skopiowane z oryginalnego motywu): /* Nazwa motywu : Charlie's Repair URI motywu: http://wordpress.org/extend/themes/toolbox/ Autor: Mike Wills URI autora: http://mikewills.me Motyw: toolbox Opis: Na podstawie motywu Toolbox firmy Automatic. Ta strona jest przeznaczona dla Charlie's Repair Wersja: 0.1 Licencja: GNU General Public License License URI: license.txt Tagi: menu niestandardowe, przyklejony post, mikroformaty, obsługa języka rtl, gotowy do tłumaczenia Ten motyw, podobnie jak WordPress, jest licencjonowany na licencji GPL. Użyj go, aby zrobić coś fajnego, dobrze się bawić i dzielić się z innymi tym, czego się nauczyłeś. */ @import url("../toolbox/style.css"); Motyw nie jest wyświetlany w Administratorze sieci ani na pulpicie nawigacyjnym witryny. Jakieś myśli o tym, czego nie robię dobrze?


title: Jak wymienić 2 terminy taksonomii dla postu, na podstawie ich hierarchii?

text: Używam get_the_terms, aby wyświetlić 2 terminy w poście, skojarzone z taksonomią "lokalizacja". Terminy to przedmieście i miasto. Taksonomia lokalizacji jest hierarchiczna, więc przedmieście jest dzieckiem miasta. Na ekranie edycji wpisu użytkownik wybiera swoje miasto, a następnie swoje przedmieście (które zawiera listę przedmieść na podstawie wybranego miasta). Oba można wybrać z menu rozwijanych. Mój problem polega na tym, że kiedy terminy są wyprowadzane do postu, są one wyświetlane alfabetycznie, a w niektórych przypadkach Miasto będzie wymienione jako pierwsze: Alfa (Miasto), Beta (Przedmieście) Potrzebuję ich, aby odzwierciedlały ich Hierarchię, aby zawsze były wymienione najpierw przedmieście, potem miasto. Beta (Przedmieście), Alpha, (Miasto) Oto mój kod. <?php $terms = get_the_terms ($post->id, 'lokalizacja'); if ( !is_wp_error($terms)) : ?> <li id="lokalizacja"> <?php unset($lokalizacje); foreach ($terms as $term) { $lokalizacje[] = $term->nazwa; } $lokalizacja = join(", ", $lokalizacje); ?> <?php echo $lokalizacja; ?> </li> <?php endif ?> Czy można by to jakoś osiągnąć za pomocą wp_list_categories? Wygląda na to, że istnieje opcja „hierarchiczna”, ale nie mam pewności, jak jej użyć, więc po prostu chwyta warunki posta, a nie wszystko


title: Kolejność arkuszy stylów w motywie potomnym

text: Motyw nadrzędny zawiera następujący kod do dołączania stylów. function blue_planet_scripts() { wp_enqueue_style( 'styl niebieskiej planety', get_stylesheet_uri() ); wp_enqueue_style( 'bootstrap w stylu niebieskiej planety', get_template_directory_uri().'/css/bootstrap.min.css', false ,'3.0.0' ); wp_enqueue_style( 'responsywna w stylu niebieskiej planety', get_template_directory_uri().'/css/responsive.css', false ,'' ); } add_action( 'wp_enqueue_scripts', 'blue_planet_scripts' ); W motywie potomnym właśnie zaimportowałem style motywu nadrzędnego za pomocą `@import url("../blue-planet/style.css");` Ale kolejność arkuszy stylów jest następująca: * style.css (motyw potomny) * bootstrap.min.css * responsive.css Jaka modyfikacja jest potrzebna w funkcji nadrzędnej, aby dodać style.css motywu potomnego na końcu w kolejności? Potrzebuję: * bootstrap.min.css * responsive.css * style.css (motyw potomny)


title: Jak wyodrębnić adresy URL z taksonomii wordpress

text: Mam spore kłopoty. Muszę wyodrębnić wszystkie możliwe adresy URL z mojego bloga wordpress, czy to post, tag, kategoria lub cokolwiek innego po **domian-name.tld/***. Próbowałem swoich sił na kilku dostępnych kodach i wtyczkach, ale żaden nie działał dla mnie. Ten kod działa dobrze, ale wyodrębnia tylko adresy URL postów, których też potrzebuję. Będę bardzo wdzięczny, jeśli ktoś mógłby mi w tym pomóc. <?php to "wp-load.php"; $posts = new WP_Query('post_type=any&posts_per_page=-1&post_status=publish'); $posty = $posty->posty; /* globalny $wpdb; $posts = $wpdb->get_results(" SELECT ID,post_type,post_title FROM {$wpdb->posts} WHERE post_status<>'auto-draft' AND post_type NOT IN ('revision','nav_menu_item') "); */ header('Typ treści:tekst/zwykły'); foreach($posts as $post) { switch ($post->post_type) { case 'revision': case 'nav_menu_item': przerwa; wielkość liter 'strona': $permalink = get_page_link($post->ID); przerwanie; case 'post': $permalink = get_permalink($post->ID); przerwanie; case 'załącznik': $permalink = get_attachment_link($post->ID); przerwanie; domyślnie: $permalink = get_post_permalink($post->ID); przerwanie; } echo "\n{$post->post_type}\t{$permalink}\t{$post->post_title}"; }


title: Pytaj o szablon podczas dodawania nowej strony

text: Zapytałbym administratora, którego szablonu chcieliby użyć, gdy klikną stronę „Dodaj nową”. czy to możliwe? Wydaje mi się, że widziałem już coś podobnego, kiedy pytano, ile kolumn chciałbyś. Zakładam, że to hak. Czy ktoś zna jakieś zasoby, na które mogę się przyjrzeć. Dzięki * * * ## EDYTUJ 1. Kliknij Strony > Dodaj nowy 2. Pojawi się okno typu modalnego z opcjami wyboru typu strony (Są to tylko szablony stron) np.; Domyślne, Kontakt, 2 kolumny itd. 3. Wybierz


title: Pętla przekierowania logowania po przekazaniu Wordpressowi własnego katalogu

text: Zrobiłem instrukcje tutaj http://codex.wordpress.org/Giving_WordPress_Its_Own_Directory. Mam swoją obecną witrynę pod adresem „wordpress.mysite.com” i chciałem po prostu „mysite.com”. Działało świetnie. Jedynym problemem jest to, że teraz jakakolwiek wtyczka strony prywatnej powoduje, że mam pętlę logowania. Wprowadzam odpowiednie dane uwierzytelniające i prosi mnie o ponowne logowanie. Czy ktoś wie, jak to rozwiązać lub jak uczynić moją witrynę prywatną, jeśli te wtyczki nie są dobre dla witryny, w której wordpress nie znajduje się w folderze głównym?


title: Jak bezproblemowo przekierować między różnymi archiwami i pojedynczymi ślimakami?

text: Mam CPT z funkcją slug (liczba pojedyncza) i funkcjami archiwum slug (liczba mnoga). Struktura linków bezpośrednich dla: * liczba pojedyncza to `/function/[nazwa posta]/` * archiwum to `/functions/[page-x/]`. (może poke live na QueryPosts ) To działa i wygląda dobrze, jednak zarejestrowałem kilka przypadków, gdy ludzie bezpośrednio manipulują URL, na przykład: * `/functions/[postname]` (wpisywanie nazwy po stronie archiwum) * `/function/` ( kasowanie nazwy funkcji) Chociaż nie jest to skomplikowane do wyraźnego poprawienia za pomocą jakiegoś kodu, byłoby więcej typów postów i wydaje się, że dane i logika są wystarczające do ogólnego rozwiązania (naprawdę oczekiwałem, że WP sobie z tym poradzi, robi całkiem sporo aby rozwiązać problemy z łączem). Jednak mam głębokie urazy związane z przepisywaniem WP i przydałoby mi się kilka wskazówek. :) ### Podsumowując: > Jak złapać i przekierować poprawne adresy URL, inne niż **nieprawidłowe użycie > archiwum slug zamiast pojedynczej i na odwrót?** Konfiguracja archiwum jest rejestrowana w następujący sposób: 'has_archive' => 'functions', 'rewrite' => array( 'feeds' => false, 'with_front' => false, ),


title: Wyświetlenia postów Google Analytics w WordPressie?

text: Czy ktoś wie o wtyczce lub widżecie wordpress, który używa Google Analytics do wyświetlania odsłon użytkownikowi strony, na której się znajduje? Powodem, dla którego musi zintegrować się z Google Analytics, jest to, że mam wyświetlenia stron z istniejących postów, które chcę liczyć, a zwykłe wtyczki do wyświetlania stron nie pokazują widoków historycznych.


title: Zmień nazwę przycisku wstawiania w oknie przesyłania multimediów

text: Mam kilka różnych typów postów, każdy z mediami. To, co chcę zrobić, to zmienić nazwę przycisku „wstaw do posta”, aby odpowiadał indywidualnym postom. Na przykład - niestandardowy typ posta - "nagroda", a następnie w polu wczytywania multimediów pojawi się przycisk "wstaw do nagrody". Jakieś pomysły?


title: Buforowanie danych wtyczki RSS

text: Rozwijam wtyczkę i potrzebuję buforowania jej danych, załóżmy, że jest to duży grabber kanałów RSS. Zasadniczo dane jednego kanału RSS to około 100 linii przeanalizowanego kodu HTML (około 2KB). Na jednej stronie może znajdować się od 1 do 5 kanałów RSS. Moje pytanie brzmi, co najlepiej to buforować i przechowywać? Czy powinienem używać transjentów? Lub po prostu zapisz dane w niestandardowej tabeli bazy danych? Lub utworzyć niestandardowy typ posta „Kanał RSS”? Dane wtyczki nie są dołączone do posta. Dziękuję Ci.


title: Sugestia wtyczki: Znajdź uszkodzone linki

text: Ostatnio zmieniłem kilka kategorii, więc wiem, że mam teraz kilka niedziałających linków. Zamiast spędzać godziny na przeglądaniu poprzednich postów i naprawianiu ich ręcznie, chcę użyć wtyczki, która może to za mnie zrobić. Mój przyjaciel Google powiedział mi o wtyczce "Broken Link Checker", która wydaje się być dość popularna, ale z jakiegoś powodu nie działa dla mnie bez względu na to, co próbuję. Próbowałem znaleźć inną podobną wtyczkę, ale jak dotąd bez powodzenia. Czy znasz jakieś inne wtyczki, które zasadniczo działają tak samo jak „Broken Link Checker”, ale mogą działać w mojej instalacji? Z góry dziękuję.


title: Jak przesłonić część głównej pętli w motywie potomnym?

text:
Mam motyw dziecięcy oparty na dwudziestu dziesięciu motywach, z którego jestem zadowolony z wyjątkiem jednej rzeczy. Moje posty w galerii (jestem fotografem, więc celem mojego bloga są zdjęcia) nie wyświetlają żadnych zdjęć z postu na stronie głównej. Chcę, aby moja strona główna była listą najnowszych postów w galerii, z których każdy powinien pokazywać skróconą wersję opisu z obrazem podglądu (pierwszy obraz z opublikowanej galerii). Używam NextGen Gallery i Slim Box do wyświetlania moich zdjęć - jeśli to robi różnicę. Znalazłem miejsce, w którym główna pętla tworzy wpis dla każdego postu na stronie głównej: <?php if ( is_archive() || is_search() ) : // Wyświetlaj tylko fragmenty archiwów i wyszukiwania. ?>
 <?php the_excerpt(); ?>
 <?php else : ?>
 <?php the_content( __( 'Kontynuuj czytanie →', 'dwadzieścia' ) ); ?> <?php wp_link_pages( array( 'before' => '
' . __( 'Strony:', 'twentyten' ), 'after' => '
' ) ); ?>
 <?php endif; ?> Więc muszę zrobić jedną z następujących czynności: 1. Zastąpić metodę `the_content`, aby dołączyć obraz podglądu mojej galerii wraz z tym, co już robi motyw. 2. Zastąp część głównej pętli powyżej, aby dodać obraz po wywołaniu `the_content` i przed wywołaniem `wp_link_pages`. 3. Zastąp całą główną pętlę, aby zrobić to samo. Czuję, że brakuje mi czegoś oczywistego, ponieważ widzę poważne wady wszystkich trzech opcji, które mogę wymyślić: 1. Nie widzę żadnego odniesienia do nadrzędnych funkcji, takich jak `the_content`, a nawet gdybym mógł, chciałbym dodać do tego nie wymieniaj go. Czy istnieje nawet możliwość wywołania funkcji oryginalnej metody po zastąpieniu metody? 2. O ile widzę, nie ma sposobu na obejście części pętli - wszystko albo nic. 3. Co prowadzi mnie do 3 - wymiana głównej pętli. W tym momencie muszę się poważnie zastanowić, czy warto mieć motyw potomny, jeśli wymienię główną pętlę. To dużo kodu, którego nie muszę posiadać, a który w końcu zostałbym właścicielem. Czy istnieje oczywisty sposób na zrobienie tego, którego mi brakuje?