title: Pomoc z moją pierwszą klasą pomocniczą Metabox

text:
Pracuję nad klasą pomocniczą metabox i wszystko działa dobrze, ale pole obrazu radia. Obrazy są wyświetlane, ale nie można ich kliknąć. // Wydrukuj dane wejściowe radio_image. funkcja prywatna radio_image_input( $pole ) { $selected_value = $field['value']; $radio_image_field = ''; $radio_image_field .=' <styl> .optionimg{border:3px solid #cecece; margin-right:4px;cursor:pointer;} .optionimg.optselected{border-color:#ababab;} .form-table td em{font-style:normal;color:#999999;font-size:12px;} < /style> <skrypt> jQuery(dokument).ready(function(){ jQuery( \'.optionimg\').click(function(){ jQuery(this).parent().find( \'.optionimg\' ).removeClass( \'optselected\' ); jQuery(this).addClass( \'optselected\' ); }); }); </script> '; if ( ! empty( $field['choices'] ) ) { foreach ( (tablica) $field['choices'] as $value => $label ) $radio_image_field .= sprintf( '<input type="radio" name="%s" id="%s" value="%s" style="display:none;"/>', esc_attr( $pole[ 'id'] ), esc_attr( $wartość ), esc_attr( $wartość ), esc_html( $etykieta ) ); } return $radio_image_field; } Wydaje mi się, że problemem jest JS, ale nie wiem, dlaczego/gdzie. Pełna klasa jest tutaj: if ( ! class_exists( 'TheUx_Metabox_API' ) ) { class TheUx_Metabox_API { // Przechowuje opcje dla strony menu. var $opcje = tablica(); // Przechowuje dane pól ustawień. var $pola = tablica(); // Obsługiwane typy pól wejściowych do białej etykiety podczas zapisywania. var $obsługiwane_pola = tablica(); // Przechowuje bieżącą ścieżkę folderu. var $ścieżka_katalogu; // Przechowuje identyfikator URI bieżącego folderu. var $dir_uri; function __construct( $opcje = array(), $fields = array() ) { // Ustaw ścieżkę katalogu. $this->dir_path = str_replace( '\\', '/', dirname( __FILE__) ); // Ustaw katalog uri. $this->dir_uri = końcowy ukośnik( home_url() ) . str_replace( str_replace( '\\', '/', ABSPATH ), '', $this->dir_path ); // Domyślne opcje strony. $options_default = array( 'metabox_id' => '','metabox_title' => '', 'post_type' => '', 'context' => 'normalny', 'priority' => 'wysoki', ); $this->options = wp_parse_args( $options, $options_default ); ekstrakt( $to->opcje ); // Tytuły i informacje o slugach nie powinny być puste. if ( empty( $metabox_id ) || empty( $metabox_title ) || empty( $post_type ) ) return false; // Ustaw pola wejściowe. $to->pola = (tablica) $pola; // Domyślne opcje pól. $field_default = array( 'title' => '', 'type' => '', 'desc' => '', 'choices' => array(), 'multiple' => false, 'sanit' => '', ); // Aby wyeliminować ostrzeżenie PHP, musimy ustawić default puste wartości. foreach ( $this->fields as $key => $field ) $this->fields[ $key ] = wp_parse_args( $field, $field_default ); // Ustaw listę typów pól wejściowych. Zapisujemy te typy pól na biało, jednocześnie zapisując meta. $this->supported_fields = (array) apply_filters( 'theux_metabox_api_supported_fields', array( 'text', 'textarea', 'radio', 'radio_image', 'checkbox', 'select', 'multicheck', 'upload', ' kolor”, „edytor” )); add_action( 'add_meta_boxes', array( $this, 'register_metabox' ) ); add_action( 'save_post', array( $this, 'save_metabox' ), 10, 2 ); add_action( 'admin_head', array( $this, 'color_picker_js' ) ); ogłoszenied_action( 'admin_head', array( $this, 'upload_js' ) ); } // koniec __construct /** * Funkcje pomocnicze HTML. * Proste funkcje pomocnicze HTML do generowania pól formularza. */ // Drukuj pomoc/opis dla pola. private function help_text( $pole ) { if ( puste( $pole['opis'] ) ) return ''; zwróć '
' . wp_kses_data( $pole['desc'] ) . '
'; } // Zwraca html z tabeli formularzy. funkcja publiczna get_form_table( $fields, $show_help = true ) { $form_table = ''; $form_table .= '
'; foreach ( (tablica) $pola jako $pole ) $form_table .= $this->get_table_row( $pole, $show_help ); $form_table .= '
'; return apply_filters( 'theux_metabox_api_form_table', $form_table, $fields, $show_help ); } // Echo/wyświetl tabelę formularzy HTML. public function display_form_table( $fields, $show_help = true ) { echo $this->get_form_table( $fields, $show_help ); } // Zwraca html wiersza tabeli. funkcja publiczna get_table_row( $field, $show_help ) { $table_row = '
'; $table_row .= sprintf( '%s	', esc_attr( $field['id'] ), $field['title'] ) ; $table_row .= sprintf( '%s	', $this->get_field( $field, $show_help ) ); $table_row .= '
'; return apply_filters( 'theux_metabox_api_table_row', $table_row, $field, $show_help ); } // Zwraca pole wejściowe na podstawie opcji pola. funkcja publiczna get_field( $pole, $show_help = true ) {$field_default = array( 'title' => '', 'id' => '', 'type' => '', 'default' => '', 'choices' => array(), 'value' = > '', 'desc' => '', 'sanit' => '', 'multiple' => false, // dla pola wielokrotnego wyboru ); $pole = wp_parse_args( $pole, $field_default ); $input_html = ''; switch ( $field['type'] ) { case 'text' : $input_html .= $this->text_input( $field ); przerwanie; wielkość liter 'textarea' : $input_html .= $this->textarea_input( $pole ); przerwanie; wielkość liter 'select' : $input_html .= $this->select_input( $pole ); przerwanie; przypadek 'radio' : $input_html .= $this->radio_input( $pole ); przerwanie; przypadek 'radio_image': $input_html .= $this->radio_image_input( $pole ); przerwanie; przypadek 'pole wyboru' : $input_html .= $this->checkbox_input( $pole ); przerwanie; przypadek 'multicheck' : $input_html .= $this->multicheck_input( $pole ); przerwanie; przypadek 'prześlij' : $input_html .= $this->upload_input( $pole ); przerwanie; wielkość liter 'kolor' : $input_html .= $this->color_input( $pole ); przerwanie; wielkość liter 'editor' : $input_html .= $this->editor_input( $pole ); przerwanie; } if ( $show_help && 'pole wyboru' !== $pole['typ'] ) $input_html .= $this->help_text( $pole ); return apply_filters( 'theux_metabox_api_input_field', $input_html, $field, $show_help ); } // Wyświetla opcje pól oparte na polach wejściowych public function display_field( $field, $show_help = true ) { echo $this->get_field( $field, $show_help ); } // Drukuj wprowadzony tekst. private function text_input( $field ) { return sprintf( '<input type="text" name="%s" id="%s" value="%s" class="regular-text"/>', esc_attr( $pole['id'] ), esc_attr( $pole['id'] ), esc_attr( $pole['wartość']) ); } // Drukuj dane wejściowe obszaru tekstowego. private function textarea_input( $field ) { return sprintf( '<textarea name="%s" id="%s" rows="5" cols="40">%s</textarea>', esc_attr( $field[ 'id'] ), esc_attr( $pole['id'] ), esc_textarea( $pole['wartość']) ); } // Drukuj wybrane dane wejściowe. funkcja prywatna select_input( $pole ) { $selected_value = $pole['value']; $multiple = ( true == $pole['multiple'] || 'prawda' == $pole['wiele'] ) ? prawda fałsz ; if ( $multiple ) $pole['id'] = $pole['id'] . „[]”; $select_field = sprintf( '<select name="%s" id="%s"%s>', esc_attr( $field['id'] ), esc_attr( $field['id'] ), ( $multiple ? ' wiele' : '' )                 ); if ( ! empty( $field['choices'] ) ) { foreach ( (tablica) $field['choices'] as $value => $label ) { $selected = $multiple ? select( in_array( $wartość, (tablica) $selected_value ), true, false ) : selected( $selected_value, $value, false ); $select_field .= sprintf( '<option value="%s"%s>%s</option>', esc_attr( $value ), $selected, esc_html( $label ) );} } $select_field .= '</select>'; zwróć $select_field; } // Drukuj dane wejściowe pola wyboru. private function checkbox_input( $field ) { return sprintf( '<input type="checkbox" name="%s" id="%s"%s> %s', esc_attr( $field[ 'id'] ), esc_attr( $pole['id'] ), sprawdzone( $pole['value'], 'on', false ), __( $field['desc'] ) ); } // Wydrukuj dane z radia. funkcja prywatna radio_input( $pole ) { $selected_value = $pole['value']; $pole_radiowe = ''; if ( ! empty( $field['choices'] ) ) { foreach ( (tablica) $field['choices'] as $value => $label ) $radio_field .= sprintf( '<input type=" radio" nazwa="%s" id="" value="%s"%s> %s
', esc_attr( $field['id'] ), esc_attr( $value ), zaznaczone( $selected_value , $wartość, fałsz ), esc_html( $etykieta ) ); } return $pole_radia; } // Wydrukuj dane wejściowe radio_image. funkcja prywatna radio_image_input( $pole ) { $selected_value = $field['value']; $radio_image_field = ''; $radio_image_field .=' <styl> .optionimg{border:3px solid #cecece; margin-right:4px;cursor:pointer;} .optionimg.optselected{border-color:#ababab;} .form-table td em{font-style:normal;color:#999999;font-size:12px;} < /style> <skrypt> jQuery(document).ready(function(){ jQuery( \'.optionimg\').click(function(){ jQuery(this).parent().find( \'.optionimg\').removeClass( \' optselected\'); jQuery(this).addClass(\'optselected\'); }); }); </script> '; if ( ! empty( $field['choices'] ) ) { foreach ( (tablica) $field['choices'] as $value => $label ) $radio_image_field .= sprintf( '<input type="radio" name="%s" id="%s" value="%s" style="display:none;"/>', esc_attr( $pole[ 'id'] ), esc_attr( $wartość ), esc_attr( $wartość ), esc_html( $etykieta ) ); } return $radio_image_field; } // Wydrukuj dane wejściowe z wieloma polami wyboru. private function multicheck_input( $pole ) { $selected_value = (tablica) $pole['value']; $multicheck_field = ''; if ( ! empty( $field['choices'] ) ) { foreach ( (tablica) $field['choices'] as $value => $label ) $multicheck_field .= sprintf( '<input type=" pole wyboru" name="%s[]" id="" value="%s"%s> %s
', esc_attr( $pole['id'] ), esc_attr( $wartość ), sprawdzone( in_array( $wartość, $wybrana_wartość ), prawda, fałsz ), esc_html( $etykieta ) ); } return $multicheck_pole; } // Wydrukuj wprowadzone dane. private function upload_input( $field ) { // Wymagamy kolejkowania skryptów i stylów programu do przesyłania mediów. wp_enqueue_media(); return sprintf( '<input type="text" name="%s" id="%s" value="%s" class="regular-text hd-upload-input"/>' . '<input type= "button" value="%s" class="hd-upload-button button-secondary" id="hd_upload_%s"/>', esc_attr( $pole['id']), esc_attr( $pole[' id'] ), esc_attr( $pole['wartość'] ), __( 'Prześlij', 'theux' ), esc_attr( $pole['id']) ); } // Wydrukuj dane wejściowe selektora kolorów. private function color_input( $field ) { // Wymagamy kolejkowania skryptów i stylów selektora kolorów. wp_enqueue_style( 'wp-selektor kolorów' ); wp_enqueue_script( 'wp-selektor kolorów' ); $default_color = pusty( $pole['default'] ) ? '' : ' data-default-color="' .esc_attr( $field['default'] ) '"'; return sprintf( '<input type="text" name="%s" id="%s" value="%s" class="hd-color-picker"%s/>', esc_attr( $field[' id'] ), esc_attr( $pole['id'] ), esc_attr( $pole['wartość'] ), $domyślny_kolor ); } // Wydrukuj dane wejściowe edytora tinymce. private function editor_input( $field ) { $settings = array( 'media_buttons' => false, 'textarea_rows' => 5, 'textarea_cols' => 45, ); $treść = $pole['wartość']; $zawartość = pusta( $zawartość) ? '' : $treść; ob_start(); wp_editor( $connamiot, $pole['id'], $settings ); return ob_get_clean(); }                            /**              * Główne funkcje. * Poniższe funkcje zarejestrują, wydrukują, zapiszą i oczyszczą metabox. */ // Zarejestruj metabox. function register_metabox() { extract( $this->options ); foreach ( (array) $post_type as $type ) if ( post_type_exists( $type ) ) add_meta_box( $metabox_id, esc_html( $metabox_title ), array( $this, 'display_metabox' ), $type, $context, $priority ); } // Wydrukuj zawartość metaboksu. function display_metabox( $post ) { foreach ( (tablica) $this->fields as $meta_key => $meta_field ) { $this->fields[ $meta_key ]['id'] = $meta_key; $this->fields[ $meta_key ]['value'] = get_post_meta( $post->ID, $meta_key, true );} wp_nonce_field( $this->options['metabox_id'] . '_' . $post->ID, $this->options['metabox_id'] . '_' . $post->ID . '_nonce' ); do_action( 'theux_metabox_api_metabox_before', $this->options, $this->fields ); echo '
options['metabox_id'] ) '">'; $this->display_form_table( $this->fields, true ); echo '
'; do_action( 'theux_metabox_api_metabox_after', $this->options, $this->fields ); } // Zapisz metabox. function save_metabox( $post_id, $post ) { extract( $this->options ); if ( ! isset( $_POST[ $metabox_id . '_' . $post_id . '_nonce' ] ) || ! wp_verify_nonce( $_POST[ $metabox_id . '_' . $post_id . '_nonce' ], $'metabox_id . _' .$post_id)) ) return $post_id; if ( zdefiniowano( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return $post_id; $post_type = get_post_type_object( $post->post_type ); if ( ! current_user_can( $post_type->cap->edit_post, $post_id )) return $post_id; foreach ( (tablica) $this->pola as $meta_key => $meta_field ) { $meta_field['id'] = $meta_key; // Typy pól z białą etykietą if ( ! in_array( $meta_field['type'], $this->supported_fields ) ) continue; $post_value = isset( $_POST[ $meta_key] ) ? $_POST[ $meta_klucz] : ''; $nowa_wartość = $this->sanitize_value( $post_value, $meta_field ); $stara_wartość = get_post_meta( $post_id, $meta_key, true ); if ( ( $nowa_wartość || 0 == $nowa_wartość ) && $nowa_wartość != $stara_wartość ) update_post_meta( $post_id, $meta_key, $new_vwartość, $stara_wartość ); elseif ( '' == $nowa_wartość && $stara_wartość ) delete_post_meta( $post_id, $meta_key, $nowa_value ); } do_action( 'theux_metabox_api_save_metabox', $post_id, $post ); } // Oczyść wartość metaboksu. function sanitize_value( $nowa_wartość, $pole ) { if ( ! isset( $pole['sanit'] ) ) $field['sanit'] = ''; switch ( $field['sanit'] ) { case 'int' : return is_array( $new_value ) ? array_map( 'intval', $nowa_wartość ) : intval( $nowa_wartość ); przerwanie; case 'absint' : return is_array( $nowa_wartość ) ? array_map( 'absint', $nowa_wartość ) : absint( $nowa_wartość ); przerwanie; case 'email' : return is_array( $nowa_wartość ) ? tablica_map( 'oczyszczanie_e-mail', $nowa_wartość ): dezynfekcja_e-mail( $nowa_wartość ); przerwanie; case 'url' : return is_array( $nowa_wartość) ? array_map( 'esc_url_raw', $nowa_wartość ) : esc_url_raw( $nowa_wartość ); przerwanie; case 'bool' : return (bool) $nowa_wartość; przerwanie; wielkość liter 'kolor' : return $this->sanitize_hex_color( $nowa_wartość ); przerwanie; case 'html' : if ( current_user_can( 'unfiltered_html' ) ) return is_array( $new_value ) ? array_map('wp_kses_post', $nowa_wartość): wp_kses_post($nowa_wartość); w przeciwnym razie zwróć is_array( $nowa_wartość ) ? array_map('wp_strip_all_tags', $nowa_wartość) : wp_strip_all_tags($nowa_wartość); przerwanie;case 'nohtml' : return is_array( $nowa_wartość ) ? array_map('wp_strip_all_tags', $nowa_wartość) : wp_strip_all_tags($nowa_wartość); przerwanie; domyślnie : return apply_filters( 'theux_metabox_api_sanitize_option', $nowa_wartość, $pole, $setting ); przerwanie; } } // Oczyść kolor szesnastkowy (pobrany z rdzenia WP). function sanitize_hex_color( $kolor ) { if ( '' === $kolor ) return ''; if ( preg_match('|^#([A-Fa-f0-9]{3}){1,2}$|', $kolor )) return $kolor; zwróć null; } /** * Funkcje pomocnicze w kolejce. * Te funkcje załadują niezbędny kod javascript. */                  // Narzędzie do wybierania kolorów. funkcja publiczna color_picker_js() {echo '<skrypt>'; echo 'jQuery(dokument).ready(funkcja($){';echo '$(".hd-color-picker").wpColorPicker();';echo '});'; echo '</script>'; } // Koniec funkcji color_picker_js() // Prześlij obraz. funkcja publiczna upload_js() { echo '<skrypt>'; echo 'jQuery(document).ready(function($){'; echo '$("body").on("klik", ".hd-upload-button", function(e) {'; echo 'e .preventDefault();'; echo 'var upload_input = $(this).siblings(".hd-upload-input"),'; echo 'hd_uploader;'; echo 'if (hd_uploader) {'; echo 'hd_uploader. open();'; echo 'return;'; echo '}'; echo 'hd_uploader = wp.media.frames.file_frame = wp.media({'; echo 'title: "Prześlij multimedia",'; przycisk echo ' : {';echo 'text: "Wybierz",'; Echo '},'; echo 'wielokrotność: fałsz'; Echo '});'; echo 'hd_uploader.on("select", function() {'; echo 'var media_file = hd_uploader.state().get("wybór").first().toJSON();'; echo 'upload_input.val( media_file.url);'; echo '});'; echo 'hd_uploader.open();'; Echo '});'; Echo '});'; echo '</script>'; } // Koniec funkcji upload_js() } // TheUx_Metabox_API end }; // class_exists check Przykład jak używać: $layoutimg = array( 'default' => get_template_directory_uri() . '/assets/images/'.'mb-default.png', 'one-col' => get_template_directory_uri() '/assets/images/'.'mb-1c.png', 'two-col-left' => get_template_directory_uri() .'/assets/images/'.'mb-2cl.png', 'two-col -right' => get_template_diprobostwo_uri() . '/assets/images/'.'mb-2cr.png' ); // ======== // = Post = // ======== $example_options_post = array( 'metabox_title' => __('Opcje układu','domena'),// Metabox Tytuł 'metabox_id' => 'post_metabox', // Unikalny identyfikator metaboxa. Jest alfanumeryczny i nie zawiera spacji. 'post_type' => 'post', // Typ posta : możesz również zdefiniować jako array. array( 'post ', 'page' ) 'context' => 'normal', // Kontekst metaboksu. Powinno być jednym z tych 'normalnych', 'zaawansowanych' lub 'bocznych' 'priority' => 'wysokich', // Priorytet metaboksu. Powinien być jednym z tych „wysoki”, „podstawowy”, „domyślny” lub „niski”, ); $example_fields_post = array( 'hd_radio_meta' => array( 'title' => __('Układ','domena'), 'type' => 'radio_image', 'choices' => $layoutimg, 'desc' => ''.__('Wybierz układ, który chcesz na tym konkretnym pwiek.','domena').'', 'sanit' => 'nohtml', ) ); $example_metabox_post = new TheUx_Metabox_API( $example_options_post, $example_fields_post );


title: Zachowaj aktywne zajęcia na stronie posta

text:
Mam jedną kategorię i pod tą kategorią mam wiele postów. Normalnie, kiedy przechodzę z menu do mojej strony kategorii, dodaje aktywną klasę `class="current-menu-item"`. Poniżej znajduje się renderowany kod HTML

Strona główna

 Wynajem

Produkty

Usługi

firma

Skontaktuj się z nami

 Jednak ze strony kategorii, gdy przechodzę do dowolnego posta, nie ma dodanych aktywnych zajęć. Myślę, że to normalne. Ale chcę zachować moją aktywną klasę, gdy przechodzę do wpisów w tej kategorii. Jak mogę to zrobić? Poniżej znajduje się kod mojej aktywnej klasy w funkcji add_filter('nav_menu_css_class', 'my_css_attributes_filter', 100, 1); add_filter('nav_menu_item_id', 'my_css_attributes_filter', 100, 1); add_filter('page_css_class', 'my_css_attributes_filter', 100, 1); function my_css_attributes_filter($zmienna) { return is_array($zmienna) ? array_intersect($var, array('bieżąca-pozycja-menu', 'bieżąca-przodek-menu')) : ''; }


title: Błąd nieprawidłowego typu postu podczas próby filtrowania i zbiorczej edycji postów

text: WP 3.8.1 Kategorie postów: 1. Wiadomości 1.1 Komunikat prasowy 1.2 itd. 2. Blog 2.1 Technologia 2.2 Na całym świecie 2.3 Eetc. Przykład „Nieprawidłowy typ posta”: Posty => Filtruj według „Informacji prasowej” + zaznaczenie ALL + Edit + Apply + Zmieniam nazwisko autora + Apply: wp-admin/edit.php?s=&post_status=all&post_type=Array Zasadniczo chcę aby zmienić wszystkie nazwiska autorów komunikatów prasowych. Otóż to. Ale ciągle otrzymuję błąd „Nieprawidłowy typ posta”.


title: Jak wyłączyć powiadomienia o aktualizacjach pulpitu dla subskrybentów?

text: W przypadku zarejestrowanych użytkowników mojego bloga, jeśli klikną na pulpicie nawigacyjnym, otrzymają powiadomienie sugerujące, że poinformują administratora witryny (mnie), że nowa wersja WordPressa jest dostępna. Wszystko, czego chcę, to ukryć alerty na desce rozdzielczej przed subskrybentami. Gdzie mogę znaleźć kod, który to zmieni? Znalazłem tutaj witrynę, która sugeruje, że szukam kodu: add_action('admin_head','addDashboardAlert'); Ale nie wiem, gdzie tego szukać. ## UPDATE Znalazłem bardziej odpowiedni kod, który uzależnia alerty od roli użytkownika, tutaj: if (!current_user_can('delete_posts')) {


title: Czcionka wyświetla się jako Arial zamiast Times

text: Jestem webmasterem publikacji internetowej Palo Alto High School, The Paly Voice. Używamy Wordpressa i z jakiegoś powodu czasami fragmenty historii zmieniają czcionki. Oto przykład. Sprawdziłem i nie ma elementu otaczającego - tylko tekst. Ale dlaczego? Jak mogę to naprawić?


title: Fragment nie zawsze dostępny

text:
Mam funkcję php, która powinna wydrukować ostatnie trzy posty z tytułem i fragmentem. Dla pierwszego wydrukowanego posta nie ma fragmentu. Oto kod: $posts = wp_get_recent_posts( array('numberposts' => 3, 'post_status' => 'publish') ); foreach ($posts as $post) { setup_postdata($post); echo "
".$post['post_title']."
"; if($post['post_excerpt']) echo $post['post_excerpt']." Kontynuuj..."; w przeciwnym razie echo 'brak fragmentu'; echo "

"; } Chcę pokazać również fragment pierwszego posta wydrukowanego (ostatniego). Co jest nie tak w moim kodzie? Dlaczego nie działa w przypadku pierwszego wydrukowanego posta?


title: Nie można modyfikować informacji nagłówka, gdy próbuję mojej witryny z www

text: Kiedy próbuję wejść na moją stronę i dołączyć www do jej adresu, pojawia się ten błąd: Ostrzeżenie: Nie można zmodyfikować informacji nagłówka - nagłówki już wysłane przez (wyjście rozpoczęło się w .../wp-content/themes/BulletPressWP/framework/includes/post -meta-details.php:1) w .../wp-includes/pluggable.php on line 896 Jeśli spróbuję adres bez www wszystko jest OK.


title: 500 błąd wewnętrzny w wp_generate_attachment_metadata

text: Zauważyłem, że mój skrypt PHP wyrzuca 500 (Internal Server Error) w wierszu, w którym używana jest funkcja `wp_generate_attachment_metadata`: $attach_data = wp_generate_attachment_metadata($attach_id, $fullpathfilename); Mogę wyjść i zrobić wyjście przed tą linią, ale nie po niej. Sprawdziłem też dane wejściowe: Array ( [attach_id] => 101362 [fullpathfilename] => /home/appleapp/USER/wp-content/uploads/2014/05/Beat-the-Boss-2-17+945428.png ) Każda pomoc jest na prawdę doceniana.


title: Uzyskaj identyfikator kategorii z identyfikatora posta niestandardowego typu postu

text: Chcę uzyskać identyfikator kategorii z identyfikatora posta typu niestandardowego. Mam identyfikator posta, ale nie mogę uzyskać identyfikatora kategorii. Użyłem tak wielu kodów, ale to nie działa, może to być spowodowane niestandardowym typem postu. $kategoria = get_the_category( $post->ID ); Jakieś sugestie?


title: WP nie loguje się za pierwszym razem

text: Mam dziwny "błąd" w mojej witrynie, który mam formularz na stronie głównej, aby zalogować się, nie loguje się, przekierowuje mnie do WP-login.php i mówi, że pliki cookie mogą nie być aktywnym w mojej przeglądarce. Sprawdziłem swoją przeglądarkę i pliki cookie są aktywne. Po zalogowaniu (na stronie logowania WP) to się nigdy więcej nie zdarza. Ale po wyczyszczeniu pamięci podręcznej i ponownym przetestowaniu problem rozwiązuje. Jak to naprawić?


title: remove_filter excerpt_more z klasy wtyczki

text: Próbuję usunąć filtr z mojej klasy wtyczki. Muszę usunąć link „Kontynuuj czytanie” z fragmentu. Motywem podstawowym jest dwadzieścia dziesięć motywów i zastosowano filtr `twentyten_auto_excerpt_more`. Zakładam, że nie mogę usunąć filtra, ponieważ jestem w klasie: class MyAwesomeClass { private static $instance; public static function instance() { if ( !isset( self::$instance )) { self::$instance = new MyAwesomeClass; self::$instance->setup_actions_and_filters(); } return self::$instance; } funkcja prywatna __construct() {} funkcja publiczna setup_actions_and_filters() { add_filter( 'excerpt_more', array( $this, 'change_excerpt_more') ); } public function change_excerpt_more( $excerpt ) { remove_filter( 'excerpt_more', 'twentyten_auto_excerpt_more' ); zwrócić ''; } } MyAwesomeClass::instance(); Filtr, który próbuję usunąć: add_filter( 'excerpt_more', 'twentyten_auto_excerpt_more' ); Czy jest na to sposób?


title: Czy istnieje sposób, aby domyślnie mieć wordpress 301 w porównaniu z 302 adresami URL?

text: Przepraszam, jeśli to jest duplikat, ale nie znalazłem odpowiedzi w „Pytaniach, na które już masz odpowiedź”. Obecnie na mojej stronie, jeśli odwiedzę stary link URL lub jeśli wprost wymyślę adres URL, taki jak `example.com/made-up-place.html` otrzymuję przekierowanie z 302. Dziwne jest to, że domyślnie jest to 302 z 301 dla przeniesionych adresów URL, ale jestem naprawdę zaintrygowany, dlaczego adres URL, który nigdy nie istniał, 302 wraca na stronę główną. Moje dwa pytania to: 1. Jak zmusić wszystkie 302 do 301 (myślę, że istnieje podpięcie do dodania do `functions.php`)? 2. Po co zmyślać adresy URL do pliku 302 a nie 404? Chciałbym trochę zrozumieć to, co widzę. **Edytuj 1:** Mój motyw ma szablon 404, który działa w niektórych sytuacjach. Przykład: Obecna struktura adresu URL witryny to: `example.com/id/1234/slug` 1. Jeśli wprowadzę nieprawidłowy adres URL, taki jak example.com/id/999999, otrzymam oczekiwaną odpowiedź 404. 2. Jeśli `example.com/id/999999/some-slug` widzę 301 na jakimś-slugu, a następnie 404 na pełnym adresie URL. 3. `example.com/some-made-up-thing.html` to idzie do 302 zamiast 404. Poprzednia struktura witryny to `example.com/slug` (ale żadna strona nigdy nie zawierała rozszerzenia), a ta strona miała nigdy nie istniał. Co ciekawe, dzieje się to tylko w domenie głównej. Wszystkie podwitryny (example2.com, example3.com) działają poprawnie i zgodnie z oczekiwaniami #1, #2 i #3 wszystkie 404 tak jak powinny!


title: Uzyskaj typ MIME postu dla dzieci za pomocą nadrzędnego identyfikatora post_ID wp_post

text: Załóżmy, że nadrzędny identyfikator post_id to 11 dla tego samego posta. Jeśli dodam media, informacje o mediach są przekazywane do post_id 12 poprzez pobranie parent_id 11 w wp_post. Tak więc, jeśli chcę uzyskać informacje o multimediach za pomocą `get_post_id()` jako parametru, zwraca on typ MIME postu 11, który będzie pusty, ale dla tego identyfikatora muszę pobrać dane postu potomnego, powiedzmy 12.


title: Uzyskaj niestandardowe wyniki wyszukiwania wp_query, które pojawią się na search.php

text:
Mam stronę search.php w moim szablonie, która działa dobrze, gdy jest używana z natywnym widżetem wyszukiwania, ale tworzę wtyczkę wyszukiwania, która ma w sobie niestandardową wp_query i chcę, aby te wyniki pojawiały się w search.php ZAMIAST zwykłego wyszukiwania wyniki widżetu. Moja wtyczka do tej pory działa dobrze, "tylko" chcę, aby była wyprowadzana w search.php. Próbowałem dodać filtr `pre_get_posts`, a także akcję `posts_search`, ale zaczep filtra pokazuje „połączenie zostało zresetowane” w przeglądarce, a zaczep akcji robi to samo PLUS, powodując błąd bazy danych WP na stronie, na której ładowana jest wtyczka. Odpowiednia część funkcji, która tworzy zapytanie: $blog_url = get_bloginfo('url'); $form = <<<EOH
 <metoda formularza="get" action="{$blog_url}" id="ss-search"> <input type="text" value="{$ search_text}" name="supers" onblur="if (this.value == '') { this.value = '{$search_text}';}" /> {$list} <input type="submit" id= "sbc-submit" value="Szukaj" /> </form>
 EOH; if (isset($_GET['supers'])) { global $q; // globalne $q; $args = array( // 'category__not_in' => 1, 's' => $_GET['supers'], 'paged' => get_query_var('paged') ); $q = nowe WP_Query($args); if ( $q->have_posts() ) { echo '
'; while ( $q->have_posts() ) { $q->the_post(); echo '
' . pobierz_tytuł() . '
'; } echo '
'; // echo '
Znalezione posty:'.$q->znalezione_posty.'

'; echo get_pagination_links2(); } else { echo 'nie znaleziono postów'; } /* Przywróć oryginalne dane posta */ wp_reset_postdata(); } return $formularz; } // zakończ funkcję


title: Korzystanie z get_bloginfo('template_directory') lub zmiennej - problem z wydajnością

text: Czy mogę zapytać o wydajność tych dwóch podejść pod względem szybkości wykonywania i obciążenia serwera? **podejście 1:** <img src="<?php echo get_bloginfo('katalog_szablonów'); ?>/data1/images/1.jpg"> <img src="<?php echo get_bloginfo('katalog_szablonów') ?>/data1/images/2.jpg" /> <img src="<?php echo get_bloginfo('katalog_szablonów'); ?>/data1/images/3.jpg" /> **podejście 2:** <?php $zmienna= get_bloginfo('katalog_szablonu'); ?> <img src="<?php echo $zmienna; ?>/data1/images/1.jpg"> <img src="<?php echo $zmienna; ?>/data1/images/2.jpg" / > <img src="<?php echo $zmienna; ?>/data1/images/3.jpg" /> Odpowiedź na to pytanie będzie dla mnie bardzo przydatna, ponieważ wiele razy spotykam się z takimi przypadkami podczas tworzenia Wordpressa. Czy czas na uzyskanie zmiennej treści jest krótszy niż czas na zapytanie bazy danych w celu uzyskania informacji o blogu?


title: Jak zezwolić tylko niektórym użytkownikom na logowanie?

text: Szukałem, ale nie mogłem znaleźć ani wtyczki, ani kodu, który pozwala tylko pewnym użytkownikom zalogować się do mojej witryny Wordpress, np. wan, velma, bob i żadne inne. Czy ktoś wie, jak to zrobić. Dzięki Tim


title: Wtyczki Wordpress nie aktualizują się automatycznie

text: Mam kilka instalacji wordpressa na moim vps i mam kilka, które dodają/aktualizują wtyczki bez żadnych problemów. Podczas dodawania nowej wtyczki otrzymuję następujące komunikaty o postępie: > Pobieranie pakietu instalacyjnego z > `http://downloads.wordpress.org/plugin/hello-dolly.1.6.zip`> > Rozpakowywanie pakietu… > Instalowanie wtyczki… > Pomyślnie zainstalowano wtyczkę _Hello Dolly 1.6._ > Aktywuj wtyczkę | Wróć do instalatora wtyczek > Jednak w większości moich instalacji WP komunikat zatrzymuje się na pierwszym wierszu: > Pobieranie pakietu instalacyjnego z > http://downloads.wordpress.org/plugin/hello-dolly.1.6.zip… Wtyczka jest na liście wtyczek, kiedy sprawdzam, a wszystko, co muszę zrobić, to ją aktywować. Również podczas aktualizacji wtyczki nie aktywuje się ponownie, więc muszę to zrobić ręcznie. W działającej instalacji wtyczka jest ponownie aktywowana automatycznie. Próbowałem krzyżowego odwoływania się do uprawnień folderów z instalacjami WP, które działają, ale nie odnoszę sukcesu. Gdyby ktoś mógł pomóc, byłbym wdzięczny, uważam, że jest to bardzo irytujące i nużące, gdy muszę wszystko aktualizować ręcznie.


title: Wordpress Options Framework, dodaj do menu głównego, a nie menu wyglądu

text: Używam motywu Wordpress Options Framework, ale chcę, aby łącze „Opcje motywu” pojawiało się w menu interfejsu administratora, w przeciwieństwie do elementu menu „Wygląd” (motywy itp.). Próbowałem i próbowałem, ale przez całe życie nie mogę dowiedzieć się, jak. Jakieś pomysły? Wszystkie pliki są na Github - https://github.com/devinsays/options-framework-theme


title: Jak stworzyć listę rozwijaną dla kategorii potomnych aktualnie przeglądanej taksonomii?

text: Muszę wiedzieć, w jaki sposób mogę uzyskać warunki dla dzieci/wnuków aktualnie przeglądanej taksonomii i umieścić je na liście rozwijanej, aby móc dodać wartości do opcji. Obecnie używam tego kodu, aby wyświetlić dokładnie to, czego chcę, ale nie mogę modyfikować opcji w menu rozwijanym - <?php //najpierw pobierz bieżący termin $current_term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taksonomia' ) ); //następnie ustaw argumenty dla wp_dropdown_categories $args = array( 'child_of' => $current_term->term_id, 'taxonomy' => $current_term->taksonomia, 'hide_empty' => 0, 'hierarchical' => true, ' głębokość' => 2, 'title_li' => '', 'show_option_all' => Wszystko, 'hide_if_empty' => true ); wp_dropdown_categories ($args ); ?> Inny kod, którego używam, którego potrzebuję, aby wyglądał lub był podobny do - <?php $terms = get_terms("videoscategory"); $liczba = ilość($warunki); if ( $count > 0 ){ echo "<select id='filtr-select2' style='width:225px;'>"; echo "<option value='*' data-filter-value='' class='selected'>Wszystkie elementy</option>"; foreach ( $terms as $term ) { echo "<wartość opcji='.{$term->slug}'>" . $term->nazwa . "</option>"; } echo "</select>"; } ?> Więc w zasadzie to, czego szukam, to sposób na dodanie " **value='.{$term->slug}'**" do opcji pierwszego kodu, który wyświetla terminy podrzędne. Masz pomysł, jak mogę zmodyfikować jeden z powyższych kodów, aby dodać nazwę terminu jako wartość do listy rozwijanej dla kategorii podrzędnych?


title: $query sprzeczne z innymi zapytaniami na tej samej stronie

text:
To jest moja strona główna: <?php /** * Nazwa szablonu: Strona główna * * @package bbPress * @subpackage Motyw */ get_header(); ?>

<?php echo __( 'Ostatnie artykuły', 'dwadzieścia jedenaście' ) ? >
 <?php while ( have_posts() ): the_post(); ?> <?php get_template_part( 'treść', 'strona główna' ); ?> <?php comments_template( '', prawda ); ?> <?php koniec; // koniec pętli. ?>

<?php echo __( 'Nadchodzące wydarzenia', 'dwadzieścia jedenaście') ?>
 <?php echo do_shortcode(' [events_list limit=" 3"]

 #_EVENTIMAGE{60,60}

#_EVENTLINK

#_CUSTOMEXCERPT

 [/events_list] '); ?>

<?php echo __( 'Ostatnie tematy na forum', 'dwadzieścia jedenaście' ) ?>
 <?php // Tworzenie i uruchamianie niestandardowej pętli $custom_posts = new WP_Query(); $custom_posts->query('post_type=topic&posts_per_page=7'); while ($custom_posts->have_posts()) : $custom_posts->the_post(); ?> <id artykułu="post-<?php the_ID(); ?>" <?php post_class(); ?>>

<a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink do %s', 'dwadzieścia jedenaście ' ), atrybut_tytułu( 'echo=0' ) ); ?>" rel="zakładka"><?php tytuł_(); ?>

 <?php endwhile; ?>

<?php echo __( 'Wiadomości Tajwan', 'dwadzieścia jedenaście') ?>

 <? php include_once(ABSPATH.WPINC.'/rss.php'); // ścieżka do skryptu $feed = fetch_rss('http://www.taiwansnews.net/index.php/rss/0dd057261bcc461b'); // określ adres URL kanału $items = array_slice($feed->items, 0, 4); // określ pierwszy i ostatni element ?> <?php if (!empty($items)) : ?> <?php foreach ($items jako $item) : ?>

<a href="<?php echo $item['link']; ?>"><?php echo $item['title']; ?>

 <?php endforeach; ?> <?php endif; ?>

<?php echo __( 'Kalendarz wydarzeń', 'twentyeleven' ) ?>

 <?php echo do_shortcode('[events_calendar long_events=0 ]'); ?>

<?php echo __( 'Prognoza pogody', 'twentyeleven' ) ?>

 <?php echo do_shortcode('[lokalizacja prognozy="Tajpej, Tajwan" caption= "Pogoda dla Tajpej" pomiar="C" dzisiajlabel="Dzisiaj" datelabel="data("m/d/R")" highlow="%%high%%°/%%low%%°" numdays="3 " iconset="Niesamowite" class="prognoza pogody" cache="true" width="100%"]'); ?>

<?php echo __( 'Moje artykuły', 'dwadzieścia jedenaście' ) ?>
 <?php // Tworzenie i uruchamianie niestandardowej pętli global $tax_selection; // użyj swojej zmiennej $custom_posts = new WP_Query(); $custom_posts->query( array( 'post_type' => 'post', 'posts_per_page' => 5, 'category__in' => $tax_selection['categories'], ) ); while ($custom_posts->have_posts()) : $custom_posts->the_post(); ?> <id artykułu="post-<?php the_ID(); ?>" <?php post_class(); ?>>

<a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink do %s', 'dwadzieścia jedenaście ' ), atrybut_tytułu( 'echo=0' ) ); ?>" rel="zakładka"><?php tytuł_(); ?>

 <?php endwhile; ?>

 <?php get_sidebar(); ?> <?php get_footer(); ?> Mam to w functions.php: add_action( 'pre_get_posts', 'do_user_post_selection' ); function do_user_post_selection( $query ) { if( !is_home() || !is_user_logged_in() ) return; if( isset( $query->query_vars['post_type'] ) && ( 'nav_menu_item' == $query->query_vars['post_type'] ) ) return; if( 1 < did_action('wp')) return; globalny $bieżący_użytkownik; $tax_selection = get_user_option( 'taxonomy_selection', $current_user->ID ); if(pusty($wybór_podatku) ) return; if( isset( $tax_selection['categories'] ) && ( is_array( $tax_selection['categories'] ) ) && ( !empty( $tax_selection['categories'] ) ) ) $query->set( 'category__in', $tax_selection['kategorie'] ); if( isset( $tax_selection['post_tag'] ) && ( is_array( $tax_selection['post_tag'] ) ) && ( !empty( $tax_selection['post_tag'] ) ) ) $query->set( 'tag__in', $tax_selection['post_tag'] ); zwrócić; } To powoduje, że `Ostatnie tematy na forum` znikają. Jak zastosować tylko `$tax_selection;` do Moich artykułów bez uszkadzania innych postów?


title: Podświetlasz temat podrzędny w poście?

text: Widziałem ten wyróżnik podtematów na wielu blogach. Daje szczególną atrakcyjność podtematom użytym w poście. Czy to wtyczka czy część kodu? Jak mogę to dodać? http://imgur.com/UbGpz7j


title: Jak uniemożliwić dostęp do wp-admin dla niektórych ról użytkownika?

text: Próbowałem użyć wtyczki Front End Users, ale to koliduje z czymś, ponieważ uniemożliwia dostęp do niektórych stron frontonu. Więc muszę to ustawić ręcznie, aby każdy, kto nie jest jedną z dwóch nazw użytkownika (lub ról), nie miał dostępu do wp-admin.


title: jak naprawdę powinien działać formularz komentarzy?

text:
przejął kod kogoś innego i starał się jasno zrozumieć, jak powinny działać formularze komentarzy. są one wykorzystywane jako informacja zwrotna dla osób odwiedzających miejsce, a nie jako komentarz do posta, jak zwykłe instalacje wordpress. formularz komentarzy wygląda na niestandardowy, ale myślę, że jest dość standardowy i zdecydowanie używa standardowej strony wp-comments-post.php, aby dodać je do bazy danych. <form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" name="commentform" id="commentform">
 <?php if ( is_user_logged_in() ) : ?> Zalogowany jako <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $ tożsamość_użytkownika; ?>. <a href="<?php echo wp_logout_url(get_permalink()); ?>" title="Wyloguj się z tego konta">Wyloguj » <?php else : ?> <input value="Nazwa" type="tekst" nazwa="autor" id="autor" value="<?php echo esc_attr($comment_author); ?>" size="22" tabindex="1" <?php if ($req) echo "aria-required='prawda'"; ?> /> <input value="Adres e-mail" type="text" name="email" id="email" value="<?php echo esc_attr($comment_author_email); ?>" size="22" tabindex= "2" <?php if ($req) echo "aria-required='prawda'"; ?> /> <input style="display:brak" type="tekst" name="url" id="url" value="<?php echo esc_attr($comment_author_url); ?>" size="22" tabindex ="3" /> <?php endif; ?>

 Komentarz: <textarea style="float :left" name="komentarz" id="komentarz" cols="100%" rows="10" tabindex="4"></textarea> Prześlij <?php pola_id_komentarza(); ?> <?php do_action('formularz_komentarza', $post->ID); ?> <input type="ukryty" name="comment_post_ID" value="<?php echo $post->ID; ?>" />
 </form> więc użytkownik przesyła komentarz, to trafia w komentarze -post.php strona, która następnie przekierowuje użytkownika do elementu wiadomości. to ostatnia część, której nie rozumiem i czuję się źle. Myślałem, że wróci do strony przesyłania i wyświetli komunikat „dziękuję za przesłanie...”. Wiem, że można zmienić przekierowanie, zmieniając zmienną $ location w następujących wierszach, które są ostatnimi 3 na stronie wp-comments-post.php. $lokalizacja = pusta($_POST['przekieruj_do']) ? get_comment_link($comment_id) : $_POST['redirect_to'] . '#komentarz-' . $comment_id; $lokalizacja = zastosuj_filtry('comment_post_redirect', $lokalizacja, $komentarz); wp_safe_redirect ($location );[/code] ale problem polega na tym, że tracisz informacje w POST, a podziękowanie za przesłanie wiadomości nigdy się nie pojawia. czuje się też jak porwanie. więc jaki jest sposób, aby to działało dobrze? czy chodzi o załadowanie formularza komentarza z odpowiednią zmienną dla przekierowania, a następnie umieszczenie go w POST w zwykły sposób (poprzez bycie w formularzu?)? jeśli przegapiłem jakiś rażąco oczywisty artykuł o tym, jak to zrobić bez wymyślania koła na nowo, skieruj mnie do niego.


title: Użyj pojedynczego wpisu na blogu jako strony głównej witryny bez przekierowania

text: Próbuję zrobić coś podobnego do przyjętej odpowiedzi na to pytanie Czy można użyć pojedynczego niestandardowego posta jako strony głównej witryny Mój problem polega na tym, że ta implementacja powoduje przekierowanie. Na przykład, jeśli dodam poniższy kod do dwudziestu jedenastu functions.php w domyślnej instalacji WordPressa, a następnie wybierze wpis `Hello World` z menu `czytanie->strona główna` z mojego domowego adresu URL, takiego jak `mysite.com` przekieruje do `mysite.com/?p=1`. Nie można więc pozostać na stronie głównej z powodu tego przekierowania. Czy można uniknąć tego przekierowania? Jeśli tak, poniższe rozwiązanie świetnie sprawdzi się przy wyświetlaniu posta lub posta niestandardowego jako strony głównej. add_filter( 'get_pages', 'add_pages_to_dropdown', 10, 2 ); function add_pages_to_dropdown( $pages, $r ){ if ( ! isset( $r[ 'name' ] ) ) return $pages; if ( 'page_on_front' == $r[ 'name' ] ) { $args = array( 'post_type' => 'post' ); $portfolio = get_posts( $args ); $pages = array_merge( $strony, $portfolio ); } return $pages; }


title: Dlaczego nie możesz umieścić pętli poza index.php?

text: To może brzmieć jak głupie/noobowe pytanie. Ale jestem ciekawy, dlaczego nie można wstawić funkcji pętli php wordpress na zewnątrz do pliku blog.php, ale można w pliku index.php? Na przykład, gdy próbuję uruchomić cały kod pętli, powiedzmy, w pliku blog.php i podlinkować strony, nic się nie pokazuje. Majstrowałem również przy ustawieniach czytania, aby upewnić się, że nic nie jest wyłączone. Jednak gdy przeniosę kod pętli php do pliku index.php, strona bloga wyświetli strony. Czy czegoś mi brakuje, czy istnieje sposób na wstawienie pętli do innego pliku .php zamiast indeksu? -Dziękuję,


title: Nowe dane rejestracyjne użytkownika zaimportowane do strony

text: Oto mój cel... Nowi użytkownicy zgłaszają się do korzystania z witryny, nad którą pracuję. Kiedy dostaję podanie, rozmawiam z nimi, a potem je zatwierdzam. Stamtąd informacje dostarczone online są automatycznie importowane na stronę. Stronę może edytować użytkownik lub dowolny administrator. Użytkownik może edytować tylko własną stronę. Oto, co zrobiłem do tej pory... Używam Register Plus Redux, aby zebrać wszystkie dodatkowe informacje od użytkownika, których potrzebuję podczas rejestracji na stronie. Odbywa się to za pomocą zwykłego wp-login.php?action=register. Działa to dobrze. Użytkownik jest „niezweryfikowany”, gdy początkowo składa wniosek online. Otrzymuję formularz, rozmawiam z nimi, a następnie mogę je zatwierdzić online. W tej dziedzinie wszystko działa dobrze. Stamtąd nie wiem, jak przenieść wszystkie te informacje na stronę użytkownika. Kiedy mówię strona, mam na myśli rzeczywistą „stronę”, a nie stronę konta użytkownika. Jeśli znasz dobry sposób bez ręcznego kopiowania i wklejania, daj mi znać. Następnie używam Ulepszonego narzędzia Capability Manager, aby uniemożliwić użytkownikowi usuwanie lub edytowanie innych stron. Jedyne, czego również potrzebuję w tym obszarze, to umożliwienie użytkownikowi posiadania tylko 1 strony. Wiem, że to dużo, więc każda pomoc z jakąkolwiek częścią tego byłaby bardzo wdzięczna! Dziękuję!


title: dodaj klasę span wewnątrz tagu kotwicy linku wp_nav_menu

text:
Znalazłem przykłady dodawania klasy do elementów najwyższego poziomu, dzięki czemu możemy wyświetlić strzałkę w elementach menu z podelementami, ale wydaje się straszne w radzeniu sobie z już wbudowanymi klasami WordPress, nie można wyświetlić strzałki z najechaniem current i css , to po prostu rujnuje wszystkie stany. Bieżące menu nawigacyjne wygląda tak: „
Tekst
” Czy istnieje możliwość dodania „” w nadrzędnym „` zamiast znaczników? Przykład, Dodaj ⇒ `` wewnątrz ⇒ znaczników `` Zatem ⇒ `
Tekst
` który jest rodzicem. Bieżący kod Dodaje znaczniki `` poza znacznikami ``, które są klasą nadrzędną My_Walker_Nav_Menu extends Walker_Nav_Menu { function start_lvl(&$output, $depth, $args) { $ wcięcie = str_repeat("\t", $depth); if('primary' == $args->theme_location && $depth ==0){ $output .=''; } $output .= "\n$indent
\n"; } } Oryginalny tytuł pytania edytowany z: " **dodaj klasę span wewnątrz`<a>`**"


Jaki jest warunek by sprawdzić czy jesteśmy w admin czy frontend? Chcę dodać add_action nie w backendzie, ale tylko we frontendzie.


title: Wordpress Plugin Dev: Używanie tablicy dla opcji WP

text: Zajmuję się pisaniem wtyczki WP i natrafiam na mały problem. Uważam, że najlepszą praktyką jest przechowywanie opcji wp w tablicy, a nie pojedynczo, co jest świetnym rozwiązaniem. Mam dwie strony. Strona pierwsza, która aktualizuje na przykład: $xyz_options['api_user']; $xyz_options['api_key']; Strona druga, która mówi: $xyz_options['site_bgcolor']; $xyz_options['site_fontcolor']; Jednak podczas aktualizacji z jednej ze stron opróżnia ustawienia innych stron podczas korzystania z wbudowanego budowania formularzy wordpress i tak dalej. Zastanawiam się, czy lepiej byłoby oderwać się od wbudowanych metod, czy jest inny sposób na wykorzystanie metod WP, które przegapiłem. Szybki przykład. Powiedzmy, że najpierw ustawiłem 'api_user' i 'api_key' na 1 i abc123. Następnie przejdź do strony stylów i zaktualizuj „site_bgcolor” za pomocą #fff i „site_fontcolor” za pomocą #000 aktualizuje kolory, ale wartości api_user i api_key znikają z tablicy $xyz_options pobranej z wp_options. Mam nadzieję, że to ma sens. Z góry dziękuję, wszelkie wskazówki byłyby świetne.


title: Zaczep lub funkcja do przesyłania multimediów przez adres URL

text: Pracuję nad stroną agregującą obrazy. Czy istnieje hak lub funkcja wordpress do przesyłania multimediów, zwłaszcza obrazu, jeśli jest do niego dostarczony adres URL? Resztę mogę zrobić za pomocą funkcji wp_handle_upload. Dziękuję


title: Zezwalanie wtyczce Yoast SEO na śledzenie mnie

text: Niedawno zainstalowałem wtyczkę WordPress SEO firmy Yoast i pyta mnie, czy zezwolić na śledzenie mojego bloga, czy nie? Wydaje się, że to głupie pytanie z mojej strony, ale wciąż jestem nowy na arenie blogowania. Co myślicie? Jaka jest różnica, czy pozwalam mu śledzić mnie, czy nie? Czy jest obopólna korzyść dla nas dwojga?


title: BuddyPress - Zaczep, aby zaktualizować niestandardowe pola profilu

text: Pracuję nad aplikacją niestandardową dla klienta, która wymaga dodatkowych pól w profilu użytkownika. Pomyślnie utworzyłem stronę rejestracji, która zapisuje pola niestandardowe, a teraz muszę zrobić to samo dla strony „Edytuj profil”. Funkcja, której użyłem do zapisywania pól niestandardowych podczas rejestracji, jest na tyle ogólna, że myślę, że mogę jej również użyć do aktualizacji. Nie mogę jednak znaleźć odpowiedniego haka, aby to zadziałało. Próbowałem "profile_update", "edit_user_profile_update" i "personal_options_update" bez powodzenia. Czy jest coś, czego mi tutaj brakuje?


title: Usuń repozytorium wtyczek WordPress

text: Chciałem stworzyć wtyczkę WP. Więc poprosiłem i moja prośba została zatwierdzona przez WordPress.org Ale nie chcę już rozwijać tej wtyczki. Jak mogę usunąć repozytorium na zawsze lub poprosić o jego usunięcie.


title: Problem WordPress Custom Superfish CSS

text: Problem można znaleźć tutaj: http://themeforward.com/demo2/ Użyj mojego menu i przejdź do Funkcje > Skróty kodowe > Typografia. Zwróć uwagę, jak obramowanie ( `ul .sub-menu { border:1px solid #000 }` ) przesuwa pozycję menu trzeciego poziomu (typografia) w dół o jeden piksel. Jak pozbyć się luki jednego piksela, aby pozycja menu trzeciego poziomu była prawidłowo wyrównana? Oto mój CSS: /*** DEMO SKIN ***/ .sf-menu { float: left; z-index: 900 } .sf-menu a, .sf-menu a:visited { /* odwiedził pseudoselektor, więc IE6 stosuje kolor tekstu*/ kolor: #FFF; wypełnienie: 10px; text-decoration:none} .sf-menu li { margin-right:35px; indeks z: 900 } .sf-menu li li { indeks z: 900; background:#FAFAFA } .sf-menu li li li { background: #FAFAFA; z-index: 900 } .sf-menu li:hover, .sf-menu li.sfHover, .sf-menu li a:focus, .sf-menu li a:hover, .sf-menu li a:active { zarys : 0; tło: #EEE } .sf-menu > li:hover, .sf-menu > li.sfHover, .sf-menu > li a:focus, .sf-menu > li a:hover, .sf-menu > li a :aktywny { zarys: 0; tło: #AF1D21 } .sf-menu .bieżący-post-przodek a, .sf-menu .bieżące-menu rodzic a, .sf-menu .bieżąca-strona-przodek a, .sf-menf .bieżąca-kategoria-przodek a, .sf-menu .aktywna_kategoria a, .sf-menu .bieżąca-pozycja-menu a { kolor:#1a1a1a } ul .sub-menu { border:1px solid #000 } ul li .sub-menu a { kolor: #262626!important } ul li .sub-menu a:hover { background:#EEE!important }


title: Nie wyświetla żadnych artykułów w niestandardowym pliku

text: Stworzyłem plik **latest.php** w public_html, więc kiedy wejdę na **www.domain.com/latest.php** pokaże mi się najnowsze artykuły. Niestety, żaden z postów nie pojawił się. Później posortuję je innymi sposobami (głównie na podstawie pól niestandardowych). To jest mój plik **latest.php** (usunąłem wszelkie style dla lepszego zrozumienia) <?php include("wp-load.php"); ?> <?php get_header(); ?> <?php wp_head(); ?> **A TU JEST CO SKOPIOWAŁEM-WKLEJŁEM Z MOJEGO INDEX.PHP, KTÓRY DZIAŁA** <?php while (have_posts()) : the_post(); ?> <a title="" href="<?php echo get_permalink(); ?>" ><?php the_title(); ?> <?php endwhile; // Zakończ pętlę ?> <?php posts_nav_link(' · ', 'poprzednia strona', 'następna strona'); ?> Moje pytanie brzmi jak mogę umożliwić pokazywanie najnowszych artykułów z paginacją? Czy do mojego zadania powinienem użyć zupełnie innej metody? Jeśli tak, to który? Nagłówek UPDATE i inne funkcje działają PRAWIDŁOWO. Po prostu nie pokazuje postów.


title: Jak stworzyć subdomenę na telefon komórkowy?

text: Mam stronę, chciałbym stworzyć jej subdomenę do mobilnej prezentacji. 1. Obie witryny będą wyświetlać te same posty i posty niestandardowe. (wspólna baza danych) 2. Każda witryna będzie miała inne strony, które będą wyświetlać te posty w inny sposób. Ze względu na punkt 2 nie mogę po prostu użyć przełącznika motywów, naprawdę muszę zaprojektować całkowicie nową stronę internetową od podstaw dla urządzeń mobilnych, ale korzystając ze wspólnej bazy danych. Jak mogę to osiągnąć? To wydaje mi się takie podstawowe pytanie, ale nigdzie nie mogę znaleźć odpowiedzi. Wszystko, do czego się odwołuję, to Multisite (nie próbuję tworzyć sieci) i WP-Touch (może być przydatny, ale potrzebuję czegoś więcej niż tylko zmiany motywu). Czy ktoś zna potrzebne kroki? Jakieś samouczki, których nie znalazłem podczas moich dni przeszukiwania sieci w poszukiwaniu odpowiedzi? Na marginesie, opracowałem główną stronę z dużym użyciem narzędzi "Typy i widoki" i jest niesamowita. Mam niesamowicie rozbudowaną stronę główną. Moim celem jest stworzenie bardzo dostosowanej, uproszczonej wersji tej witryny na urządzenia mobilne. Inne przemyślenia: Nie muszę mapować strona po stronie, ponieważ strony w każdej witrynie będą bardzo różne. Zajmę się automatycznym wykrywaniem urządzeń mobilnych, a także umożliwię przełączanie się między nimi, ale za każdym razem może trafić na wymagane strony główne. Muszę tylko wiedzieć, jak połączyć 2 domeny z 1 bazą danych.


title: Jaki jest najlepszy sposób na wykrycie strony polecającej?

text: Szukałem jakiegoś specyficznego dla WP sposobu na wykrycie dowolnego polecającego. Mam pomysł? Wiem, jak to zrobić w PHP, ale chcę tylko wiedzieć, czy jest jakaś funkcja WP, aby to zrobić? **EDYTUJ:** oto co próbuję przetestować => $referer = wp_get_referer(); if ( strpos($referer ,'http://wordpress.org') !== false ) echo 'pochodzisz z wordpress.org';


title: Jak stworzyć inną nawigację dla zarejestrowanych użytkowników w WooThemes Canvas?

text:
Tworzę stronę internetową z wordpressem i motywem Canvas (od WooThemes). Używam nawigacji Top do wyświetlania elementów, gdy użytkownik jest zalogowany. Gdy użytkownik nie jest zalogowany, możesz zobaczyć tylko "zostań członkiem" i "zaloguj się". Gdy użytkownik się loguje, widzi inną nawigację z innymi pozycjami menu. Pomyślałem o następującym rozwiązaniu: 1. zarejestruj nową nawigację. 2. zastosuj hook, który sprawdza czy użytkownik jest zalogowany, czy nie. 3. Zgodnie z wynikiem zastosuj nawigację dla zarejestrowanych użytkowników, w przeciwnym razie pokaż inne. Umieściłem ten kod w moim _functions.php_ : add_action( 'init', 'register_top_menu_myisa', 10 ); function register_top_menu_myisa() { $menus = array( 'top-menu-myisa' => __( 'Top Menu MyISA', 'woothemes' ) ); register_nav_menus( $menus ); } add_action( 'woo_top', 'custom_top_navigation', 10 ); function custom_top_navigation() { if ( function_exists( 'ma_nav_menu' ) && has_nav_menu( 'top-menu' ) ) { if(is_user_logged_in()) { $top_menu = 'top-menu-myisa'; } else { $top_menu = 'top-menu'; } echo '
'; echo '
'; echo '
' . woo_get_menu_name( $top_menu ). '
'; wp_nav_menu( array( 'depth' => 6, 'sort_column' => 'menu_order', 'container' => 'ul', 'menu_id' => 'top-nav', 'menu_class' => 'nav top-navigation fl', 'theme_location' => $top_menu ) ); echo '
'; echo '
'; } } Pierwsza funkcja rejestruje nową nawigację. Druga funkcja zawiera logikę decydowania, która górna nawigacja powinna być wyświetlana. **Jednak: kiedy patrzę na moją witrynę, wyświetla ona oba menu (to dla niezalogowanych użytkowników i to dla zalogowanych)** ![Wyświetlone są dwa menu nawigacyjne](http://i.stack.imgur .com/2WPD1.jpg) **Jak mogę zmodyfikować kod, aby wyświetlał jedno górne menu nawigacyjne, w zależności od tego, czy użytkownik jest zalogowany, czy nie?**


title: Jak zamienić miniaturę posta w obraz tła?

text: Wierzę, że odpowiedź na to pytanie została zamieszczona na tej stronie, ale nadal nie jest dla mnie jasna. Fragmenty tekstu są rozproszone po całej dyskusji, a podczas ich implementacji pojawia się kilka usterek.


title: jeśli warunkowe we wtyczce paska bocznego shortcode treści hasła

text: Mam ten kod [][/] na stronie i działa idealnie! więc chcę teraz, jeśli mogę sprawdzić na pasku bocznym, czy formularz jest poprawnie wypełniony na stronie, a następnie wyświetli echo jakiegoś słowa na pasku bocznym. na przykład coś takiego na pasku bocznym: if (isset($_POST['csp_submit'])) { if ($_POST['csp_input'] == $hasło AND $hasło != '') { echo 'hasło jest poprawne i powtórz kilka słów'; } else { echo 'hasło jest błędne'; } } else { echo 'musisz podać hasło na stronie'; } https://wordpress.org/plugins/password-content-shortcode/


title: Jak zmienić permalink w poście kliknij na stronie z listą postów

text: Mam stronę z listą postów, moim wymaganiem jest zmiana adresu URL po kliknięciu postu i rozwinięcie postu do pełnych szczegółów. Nie jestem pewien, czy da się to zrobić bez odświeżania. Jakieś pomysły, jak to zrobić?


title: nie mogę uruchomić jQuery (zmień obraz w przedziale czasowym)

text: Nie rozumiem, dlaczego funkcja jQuery nie działa. Przeczytałem na internowanych jak załadować jQuery w wordpressie, ale bez powodzenia. Czy ktoś może mi pomóc? Co zrobiłem do tej pory: umieściłem to w pliku header.php wewnątrz znaczników: <?php wp_enqueue_script("jquery"); ?> <?php wp_head(); ?> <script type="text/javascript" src="<?php bloginfo('template_url'); ?>/wp-includes/js/jquery/slideshow1.js"></script> style css używane w jquery: #gallery1{ float:w prawo; szerokość:400px; /* Ustaw szerokość obrazu */ wysokość:300px; /* Ustaw wysokość obrazu */ } #gallery1 img{ position:absolute; indeks z:8; } #gallery1 img.active{ z-index:10; } #gallery1 img.last-active{ z-index:9; } kod html: slideshow1.js: function slideSwitch() { var $active = $('#gallery1 IMG.active'); if ( $active.length == 0 ) $active = $('#gallery1 IMG:last'); var $next = $active.next().length ? $active.next() : $('#gallery1 IMG:pierwszy'); $active.addClass('ostatni aktywny'); $next.css({przezroczystość: 0.0}) .addClass('aktywne') .animate({przezroczystość: 1.0}, 1000, function() { $active.removeClass('aktywna ostatnia-aktywna'); }); } $(function() { setInterval( "slideSwitch()", 5000 ); }); Czytałem, że muszę zmienić $ na coś innego, na przykład 'jQuery'. Próbowałem tego, ale też bez powodzenia. Czy ktoś może mi pomóc?


title: Jakie jest najlepsze podejście do tego?

text: Chcę założyć nową witrynę, w której strona główna ma być statyczną stroną pokazującą informacje o mnie, rodzajem CV bez danych osobowych. Potem byłby `site.com/blog/`, gdzie od czasu do czasu piszę, aby zademonstrować umiejętności wymienione na statycznej stronie. Na koniec chcę, żeby to wszystko było po angielsku i hiszpańsku. * * * Do tej pory zmieniłem statyczną stronę główną na "O mnie", a następnie utworzyłem nową pustą stronę "Blog" i wybrałem ją jako stronę postów. Kiedy klikam „Blog”, przechodzę do strony postów, ale adres URL wygląda tak: `/?page_id=11`. Chciałbym, żeby wyglądało tak, jak powiedziałem wcześniej (`/blog/`). Jeśli chodzi o język, widzę, że istnieje wiele wtyczek, które tłumaczą treść. Interesuje mnie napisanie tego samemu, a jedyną wtyczką, która wydaje się na to pozwalać, jest qTranslate, który nie działa z najnowszą wersją WP. Jedyny pomysł, jaki przychodzi mi do głowy, to wykonanie dwóch oddzielnych instalacji na `site.com/en` i `site.com/es`. Co jeszcze mogłem zrobić?


title: Zapytanie o niestandardowe typy postów według zakresu dat (pole niestandardowe)

text: Widziałem podobne pytania i rozwiązania, ale do tej pory nie mogłem zastosować tego do mojego kodu. Poniższy kod (functions.php) działa doskonale: if( isset($query->query_vars['post_type']) && $query->query_vars['post_type'] == 'turniere' ) { $query->set ('orderby', 'meta_value_num'); $query->set('meta_key', 'date_start'); $query->set('zamówienie', 'ASC'); } Teraz chcę dodać rodzaj zakresu dat. To jest "najlepszy" jaki mam do tej pory: if( isset($query->query_vars['post_type']) && $query->query_vars['post_type'] == 'turniere' ) { $query-> set('orderby', 'meta_value_num'); $query->set('meta_key', 'date_start'); $query->set('zamówienie', 'ASC'); $query->set('meta_value', '20140520'); $query->set('porównaj', '>='); $query->set('typ', 'NUMERYCZNE'); } Ale to nie działa, strona mówi po prostu "brak dostępnych postów". Próbowałem różnych kombinacji każdego parametru (meta_value z lub bez ', różne metody porównania i każdy możliwy typ). „data_początku” jest przechowywana w formacie rrrrmmdd. Używam wtyczki "zaawansowane pola niestandardowe", aby ustawić datę w każdym poście. Każda pomoc jest mile widziana. :)


title: Fragment pojawia się tylko w pierwszym poście

text:
Używam następującego kodu w moim pliku category.php. Chcę, aby mój niestandardowy post typu „Produkty” wyświetlał miniaturę i fragment. W tej chwili pokazuje tytuł posta, miniaturę wszystkich postów. Jednak pokazuje tylko fragment pierwszego postu. <?php /* Nazwa szablonu: Kategoria */ ?> <?php get_header(''); ?> <?php /* Pasek boczny produktów */ if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('product_sidebar') ) : ?><?php endif; ?>
 <?php if ( function_exists('yoast_breadcrumb')) { yoast_breadcrumb('
','
'); } ?>

 <?php if (!category_ma_children()) {?> <?php foreach(get_the_category() as $category) { $cat = $category -> kot_ID; }?> <?php query_posts('post_type=Produkt&cat=' .$cat .'&order=ASC'); ?> <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?><?php the_post_thumbnail(array(100,100)); ?> <?php the_fragment(); ?>
 <?php endwhile;?> <?php endif; ?> <?php get_template_part('pętla', 'indeks'); } else {?>

 <?php $cat_id = get_query_var('cat'); $catlist = get_categories('hide_empty=0&child_of=' . $cat_id); echo "
"; foreach($catlist as $categories_item) { echo '
term_id ) . '" title="' .sprintf( __( "Wyświetl wszystkie produkty w %s" ) , $categories_item->name).'"'. '>' . $categories_item->nazwa.'
 '; echo „
”. $categories_item->opis . '
'; } echo "
"; } ?>

 <?php get_footer(); ?> To jest również w moim functions.php //Wyświetl kategorie produktów function category_has_children() { global $wpdb; $term = get_queried_object(); $category_children_check = $wpdb->get_results("SELECT * FROM wp_term_taxonomy WHERE rodzic = '$term->term_id'"); if ($category_children_check) { return true; } else { return false; } } Czy ktoś wie dlaczego? **Co staram się osiągnąć:** Moja główna strona kategorii w mojej witrynie to „Produkty”. Na tej stronie wyświetla kategorie potomne kategorii nadrzędnej. Przejście do strony kategorii podrzędnej spowoduje wyświetlenie większej liczby kategorii podrzędnych lub, jeśli ich nie ma, wyświetli moje niestandardowe typy postów „Produkt”. Kod, którego używam, mówi. Jeśli kategoria ma dzieci, wyświetl je, a następnie wyświetl produkty. **Aktualizacja:** Eksperymentowałem i coś odkryłem. Używając poniższego kodu i innego niestandardowego typu posta „Wiadomości”, wyświetla fragment wszystkich postów. <?php query_posts(array('post_type'=>'Wiadomości')); ?> <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php the_time('j M.Y'); ?><a href="<?php the_permalink(); ?>"><?php the_title(); ?> <?php the_excerpt();?>
 <?php endwhile;?> <?php endif; ?> Jeśli zmienię 'Wiadomości' na 'Produkt', fragment wyświetli się tylko dla pierwszego utworzonego produktu. Jedyna różnica, jaką mogę sobie wyobrazić między tymi dwoma niestandardowymi typami postów, to „Wiadomości” to typ posta, a „Produkt” to typ strony. Nie wiem, dlaczego to nie działa. Nie napisałem też fragmentu dla żadnego z nich, więc fragment jest automatyczny z Wordpressa.


title: jak mogę usunąć pasek boczny z mojej strony głównej wp?

text: Jaka jest najlepsza praktyka, jeśli chodzi o **usuwanie paska bocznego na stronie głównej Wordpress**? Używam wp w wersji 3.2.1 i Skeleton Child Theme 1.6


title: Jak mogę przekierować obcokrajowców przez IP na inny adres URL w WordPressie?

text: Chcę, aby odwiedzający spoza mojego kraju byli przekierowywani na stronę www.mysite.com/en. Jak mogę to zrobić w Wordpressie?


title: Wyświetlaj załączniki według identyfikatora w ramce wp.media

text: Próbuję użyć nowej ramki uploader wp.media dla tworzonej przeze mnie aplikacji. Czytałem dużo na inne pytania, posty na blogu itp. Kod, który wkleiłem poniżej, działa już całkiem dobrze, a nawet robi kilka dodatkowych rzeczy, które zostawiłem w celach informacyjnych, na wypadek gdyby był przydatny dla kogokolwiek. Ale jest jedna modyfikacja, którą chciałbym do niego wprowadzić: kiedy ramka jest otwarta, **chcę, aby filtr wyświetlał „bibliotekę multimediów”, aby wyświetlał tylko załączniki zdefiniowane przez listę identyfikatorów, które podaję.** Tutaj to mój obecny kod: // Przesyłanie plików var file_frame; $('.upload_attachments_button').on('click', function( event ){ event.preventDefault(); // Jeśli ramka multimedialna już istnieje, otwórz ją ponownie. if ( file_frame ) { file_frame.open(); return; } // Utwórz ramkę multimedialną file_frame = wp.media.frames.file_frame = wp.media({ title: jQuery( this ).data( 'uploader_title' ), button: { text: jQuery( this ).data( ' uploader_button_text' ) }, library : { type : 'image' }, multiple: true // Ustaw na true, aby umożliwić zaznaczenie wielu plików }); // Gdy ramka jest otwarta, wybierz istniejące załączniki graficzne z niestandardowego pola file_frame.on ( 'open', function() { var selection = file_frame.state().get('selection'); var attachment_ids = jQuery('#attachment_ids').val().split(','); // To to moja próba pokazania tylko załącznika o identyfikatorze 275 -->, ale nie działa!file_frame.state().set( 'library', media.query({ id: 275 }) ); s.forEach(function(id) { załącznik = wp.media.attachment(id); załącznik.pobierz(); select.add( załącznik ? [ załącznik ] : [] ); }); }); // Po wybraniu obrazów umieść identyfikatory w ukrytym polu niestandardowym i wyświetl miniatury. file_frame.on( 'select', function() { var selection = file_frame.state().get('selection'); // Umieść identyfikatory w polu niestandardowym var attachment_ids = selection.map( function( załącznik ) { załącznik = załącznik .toJSON(); return attachment.id; }).join(); if( attachment_ids.charAt(0) === ',' ) { attachment_ids = attachment_ids.substring(1); } $('#attachment_ids') .val( załączniki_id ); // Pokaż kciuki var załącznik_thumbs = selection.map( function( załącznik ) { załącznik = załącznik.toJSON(); if( załącznik.id != '' ) { return '<img src="' + attachment.sizes.thumbnail.url + '" id="id-' + attachment.id + '" />'; } }).join(' '); $('#images-feedback').show() ; $('#thumbs').html(attachment_thumbs); }); // Na koniec otwórz plik modalny file_frame.open(); }); // Umieść wybrany identyfikator miniatury w polu niestandardowym, aby zapisać jako polecany obraz $(document).on('click', '#thumbs img', function() { $('#thumbs img').removeClass('chosen') var thumb_ID = $(this).attr('id').substring(3); $('#wpuf_featured_img').val(thumb_ID); $(this).addClass('chosen'); }); Próbuję filtrować wyświetlanie biblioteki multimediów, jak widać tutaj, ale nie daje to żadnych wyników: file_frame.state().set('library', media.query({ id: 275 }) ); Czy ktoś wie, jak napisać składnię?


title: Permalinki: site.com/post-tite vs site.com/post-id/post-title dla SEO i szybkości

text: Jakie są różnice, jeśli chodzi o ogólną "pracę" wymaganą przez procesor PHP, aby pobrać stronę przy użyciu tych dwóch ustawień permalinków: /%post_id%/%postname%/ vs /%postname%/ Drugi przykład został powszechnie przyjęty i wykorzystywane do korzyści „SEO” związanych z posiadaniem czystego, przyjaznego dla słów kluczowych adresu URL. Uważa się, że pierwszy przykład, który dostarcza WordPressowi identyfikatora posta, jest bardziej wydajny na procesorze PHP, ponieważ nie musi wyszukiwać identyfikatora posta w tytule posta. To nie powinno być problemem w mniejszych witrynach, ale w większych witrynach może to odgrywać znaczącą rolę. Pierwszy przykład został zasugerowany jako złoty środek między wydajnością a ogólną szybkością witryny i SEO. Czy to prawda?


title: Jak wyświetlić link do strony głównej w menu Wordpress i jak dodać do niego ikonę?

text: Próbowałem z tym kodem: function home_page_menu_args($args) { $args['show_home'] = true; return $args; } add_filter( 'wp_page_menu_args', 'home_page_menu_args' ); ale daje mi ten błąd: `Błąd 404 - Nie znaleziono` Chciałbym, aby po kliknięciu menu „Strona główna” pojawiły się ostatnie posty. I chciałbym umieścić **ikonę** zamiast napisu „Strona główna”. Dziękuję Ci!


title: Kierowanie na konkretny szablon strony dla strony paska bocznego

text: Obecnie istnieje pasek boczny poświęcony wszystkim postom i jeden dla wszystkich stron. To, co chciałbym zrobić, to kierować do określonych szablonów stron, aby wyświetlać paski boczne dla każdego szablonu. if(is_front_page()) { if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar("Pasek boczny bloga") ): endif; } else if(get_post_type($post) == "post" || is_search() ) { if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar("Pasek boczny bloga") ): endif; } else if((get_post_type($post) != "post" && get_post_type($post) != "strona") || get_post_type() == "") { if ( !function_exists('dynamic_sidebar') || ! dynamic_sidebar("Pasek boczny portfela") ): endif; } else if(get_post_type($post) == "strona" || is_author() || is_404() ) { if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar("Pasek boczny strony") ): endif; } Więc zamiast publikować „Pasek boczny strony” dla wszystkich stron. Chciałbym skierować na przykład szablon products.php, abym mógł umieścić konkretny pasek boczny dla tych stron. Dodałem do funkcji dodatkowe dynamic_sidebars, ale muszę znaleźć sposób na ich ukierunkowanie na ten sidebar.php. Jeśli potrzebujesz więcej informacji, daj mi znać


title: Jakie pakiety jQuery są zawarte w Wordpress 3.1.2?

text: Nie znalazłem dokumentu, z wyjątkiem tego, który mówi, które pakiety jQuery są zawarte w wordpressie. W związku z tym nie wiem, czy powinienem dodać jQuery do mojego pliku header.php, czy nie. Powyższy link nie określa wersji dołączonych bibliotek ani wersji wordpress, której to dotyczy. Czy powinienem ręcznie załadować jQuery UI?


title: Jak używać tablicy asocjacyjnej w post__in z WP_Query?

text:
Zapisałem ulubione posty użytkowników w tabeli `user_meta` WordPressa. Dane są przechowywane w formacie, na przykład `a:1:{s:8:"post-134";s:3:"134";s:8:"post-136";s:3:"136 ";}". Jak mogę to uzyskać w postaci tablicy, takiej jak `array(134, 136)`, abym mógł jej użyć w poniższym zapytaniu. $stronicowany = (get_query_var('stronicowany')) ? get_query_var('stronicowane') : 1; $query = new WP_Query( array( 'paged' => $paged, 'post_type' => 'post', 'post__in' => CHCĘ TUTAJ TABLICA ) ); if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); get_template_part( 'content', 'fav' ) endwhile; wp_pagenavi(); wp_reset_postdata(); else : ?>
Nie masz ulubionych postów.
<?php endif;


title: Błędy krytyczne w pliku pluggable.php

text: Chciałem zmienić nazwę „Wordpress” we wszystkich wysłanych mailach. W przeszłości dostosowywałem mój backend Wordpress, aby wyświetlał żądany e-mail. Ale pobrałem nową wtyczkę, która zmieniła pole nazwy e-mail. Poszedłem spróbować ponownie to zmienić, ale tym razem w pliku szablonu pluggable.php. Jednak teraz wszystko nie poszło zgodnie z planem, mam błąd krytyczny: Błąd krytyczny: Wywołaj niezdefiniowaną funkcję _fill_user() w /home/content/61/7791761/html/Portal/wp-includes/pluggable.php w wierszu 199 Potrzebuję aby to naprawić, wydaje się, że ma to coś wspólnego ze zmienną $wpdb /** * Pobieranie informacji o użytkowniku według podanego pola * * @since 2.8.0 * * @param string $field Pole do pobrania użytkownika. identyfikator | ślimak | e-mail | login * @param int|string $wartość Wartość pola $. Identyfikator użytkownika, ślimak, adres e-mail lub nazwa logowania. * @return bool|object Fałsz w przypadku niepowodzenia, obiekt wiersza bazy danych użytkownika */ function get_user_by($pole, $wartość) { global $wpdb; switch ($pole) { case 'id': return get_userdata($value); przerwanie; przypadek 'slug': $user_id = wp_cache_get ($wartość, 'userslugs'); $pole = 'nazwa_użytkownika'; przerwanie; przypadek 'email': $user_id = wp_cache_get($value, 'useremail'); $pole = 'użytkownik_e-mail'; przerwanie; case 'logowanie': $wartość = sanitize_user( $wartość ); $user_id = wp_cache_get($value, 'userlogins'); $pole = 'login_użytkownika'; przerwanie; domyślnie: return false; } if ( false !== $user_id ) return get_userdata($user_id); if (! $user = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->users WHERE $pole = %s", $value)) ) return false; _fill_user( $użytkownik ); zwróć $użytkownika; } endif;


title: Sortowanie portfela według ACF?

text: Do każdego przedmiotu w moim portfolio dołączone jest zaawansowane pole niestandardowe (jest to inna data) i chcę posortować moje portfolio według tego pola. czy to możliwe? Miałem nadzieję, że możesz po prostu zamienić kolejność na niestandardową nazwę (czyli date_sold) w: [portfolio items="40" order="DESC" orderby="date_sold" column="4" generate_thumbnail="true" show_title=" true" show_excerpt="true" show_filters="true" filter_display="tekst" show_pagination="true" show_item_categories="false" link_behavior="detail_page" show_all_text="Pokaż wszystko" paginate="tak" kategorie="ostatnie"] Dzięki za wszelką pomoc!


title: Jaki jest właściwy sposób na stworzenie niestandardowej strony głównej?

text: Tworzę niestandardowy motyw i chcę, aby strona główna była galerią, a nie blogiem, czy dobrze jest zmienić `index.php` na stronę galerii (z punktu widzenia treści) czy powinienem użyć innej strony?


title: Czy podczas kodowania arkusza stylów można usunąć atrybut type?

text: Aktualizuję swój własny motyw do HTML5 i z łatwością wprowadziłem już wiele zmian. Jedyny arkusz stylów mojego motywu jest dodawany do nagłówka strony poprzez `wp_enqueue_style` w pliku `functions.php` w następujący sposób: function gridded_enqueue_styles() { wp_enqueue_style('style', get_template_directory_uri() . '/style.css', array( ), null, „wszystkie”); } add_action('wp_enqueue_scripts', 'gridded_enqueue_styles'); Wynikowy znacznik to: <link rel='stylesheet' id='style-css' href='http://grantpalin.com.dev:81/wp-content/themes/gridded/style.css' type='text /css' media='all' /> Arkusz stylów jest załadowany, strona renderowana, wszystko w porządku. Jednak specyfikacja HTML5 wskazuje, że atrybut „type” nie jest już potrzebny w przypadku elementów „link”, „style” i „script”. Przeglądając odniesienie do kodeksu, nie widzę sposobu na zmianę lub usunięcie atrybutu `type`. Czy można to w ogóle zrobić? Oczywistym obejściem tego problemu jest zakodowanie referencji arkusza stylów na sztywno w moim pliku `header.php`, ale pozwala to uniknąć korzyści z funkcji wpisywania do kolejki.


title: Strony podrzędne w hierarchicznych niestandardowych typach postów 404s

text: Ostatnio pracowałem z niestandardowymi typami postów i nie miałem żadnych większych problemów. Tym razem próbuję czegoś nowego. Chcę utworzyć CPT, który zasadniczo działa jak Pages, z hierarchią stron. Prawdziwa rzecz jest po szwedzku, więc użyję "Książki" jako przykładu, jak chciałbym, żeby to działało. Więc najpierw tworzę nowy typ posta: define('BOOKS_HTTP_PATH', WP_PLUGIN_URL . '/' .str_replace(basename(__FILE__), "", plugin_basename(__FILE__))); function add_custom_post_type_books() { register_post_type( 'lpm-books', array( 'labels' => array( 'name' => 'Książki', 'singular_name' => 'Książka', 'add_new' => 'Nowa książka', 'add_new_item' => 'Dodaj nową książkę', 'not_found' => 'Nie znaleziono książek' ), 'public' => true, 'show_ui' => true, 'show_in_nav_menus' => true, 'menu_icon' => BOOKS_HTTP_PATH 'images/books-icon.png', 'menu_position' => 20, 'hierarchical' => true, 'rewrite' => array( 'slug' => 'książki'), 'capability_type' => 'strona' , 'supports' => array('title','editor','page-attributes'), 'query_var' => '', '_builtin' => false, ) ); } add_action( 'init', 'add_custom_post_type_books' ); W moim przypadku mam konkretną nazwę dla CPT, lpm-books (może zabrzmieć dziwnie w tym przykładzie, ale jak powiedziałem wcześniej, robię to po szwedzku, ale jeśli to możliwe, chciałbym, aby nazwa typu posta była po angielsku). Ustawiam slug przepisywania na książki dla moich permalinków i dodaję `'hierarchical' => true` i `'supports' => 'page- attributes'` aby udostępnić metapole Attribute. W Admin->Książki widok wyglądałby mniej więcej tak: * Książka 1 * Rozdział 1 * Rozdział 2 * Książka 2 * Rozdział 1 * Rozdział 2 * ... Więc dodaję zwykłą stronę o nazwie Moje książki (slug: my- książki) mieć „stronę startową”, która opisuje moją kolekcję książek. Adres URL to „http://www.example.com/moje-książki/”. Na tej stronie wymieniam wszystkie dodane przeze mnie książki i ich rozdziały. Działa idealnie, jeśli kliknę Książkę 1 (lub Książkę 2). Adres URL to „http://www.example.com/books/book-1/”. Ale jeśli chcę obejrzeć rozdział (url: `http://www.example.com/books/book-1/chapter-1`) otrzymuję 404. Moja struktura linków bezpośrednich to: `/%category%/%postname%/` Naprawdę nie mogę zrozumieć, dlaczego niestandardowe strony podrzędne (posty) 404 są. Ponieważ mój zwykły ślimak na stronie startowej „Moje książki” nie koliduje ani z nazwą CPT, ani z ślimakiem przepisanym, myślę, że nie mam już myśli. Uwaga: Próbowałem również usunąć `'rewrite' => array( 'slug' => 'books')`, ale nadal otrzymuję 404 na "postach podrzędnych". Jak sobie radzicie podczas tworzenia hierarchicznych CPT? Czy mogę sprawić, by to zadziałało, czy muszę przemyśleć strukturę? Dziękuję Ci!


title: Sprawdź poprawność danych w attachment_fields_to_save

text: Bardzo się cieszę, że istnieje tak dedykowana strona internetowa dla WP. Moim problemem jest walidacja danych po zapisaniu pól załączników. Dodałem wiele niestandardowych pól do okna dialogowego załącznika/biblioteki multimediów, większość z nich jest oznaczona jako obowiązkowe. (Np. `$form_fields["some_custom_field"]["required"] = true;`) Ale to po prostu dodaje klasę, ale po stronie WP nie odbywa się walidacja ani sprawdzanie, więc chcę je sprawdzić sam za pomocą funkcji dołączonych do filtr `załącznik_pola_do_zapisania`. Mogę sprawdzić i tak dalej, ALE PYTANIE JEST: Jak walidować te pola, więc jeśli walidacja nie przejdzie - WP zwróci błąd w zwykłym stylu, tak jak w formularzu rejestracyjnym, jeśli wypełnisz zły e-mail. W procesie rejestracji w akcji `register_post` możesz wykonać to `$errors->add('some_error_code', "<strong>Klaida</strong>: Nenurodėte įmonės kodo");` i nie zapisze to danych i nie wróci do odwiedzającego błąd. Chcę to zapisać w formie załącznika :D


title: Kodowanie na stałe niestandardowych elementów menu dla menedżera menu

text: Zdaję sobie sprawę, że można dodawać niestandardowe linki za pomocą menedżera menu, ale czy istnieje sposób na ręczne tworzenie takich komponentów za pomocą pliku functions.php? Dokładniej, jeden przykład tutaj odnosi się do sytuacji, w której aktualnie mam utworzony niestandardowy typ wpisu dla „wydarzeń”, co oznacza, że wszystkie powiązane posty pojawiają się, takie jak domena.com/events/events-name-abc/ i gdzie domena strony głównej wydarzeń .com/events/ jest po prostu zdefiniowany za pomocą niestandardowego szablonu typu posta. W związku z tym podczas korzystania z interfejsu menedżera menu administratora nie ma możliwości, aby użytkownik zobaczył tę główną stronę „wydarzenia” jako opcję dodania do swojego menu. Idealnie szukam przykładowego kodu, który mógłbym dodać do mojego pliku functions.php, który pozwoliłby mi ręcznie zdefiniować/kodować w takich elementach (z opcjonalną możliwością wstępnego zdefiniowania niestandardowych atrybutów, takich jak predefiniowana klasa) i mieć dowolny z te elementy są automatycznie dodawane jako opcje do dowolnych metaboxów menedżera menu lub umieszczane w niestandardowym metaboxie. Jakiekolwiek wtyczki lub kod, o których wie ktoś, które rozszerzają menedżera menu, aby umożliwić taką funkcjonalność?


title: Dodanie wszystkich podstron do menedżera menu

text: Czy jest jakiś prosty sposób, który pozwoliłby dodać stronę do menu (poprzez interfejs menedżera menu) i określić, czy włączenie tego elementu powinno automatycznie dodawać wszystkie podstrony do określonej głębokości? Zasadniczo logika, którą próbuję tutaj zastosować, dotyczy użytkownika dodającego nową stronę z treścią, a następnie kojarzącego tę stronę jako podstronę innej, dzięki czemu ta strona automatycznie pojawia się na frontonie za każdym razem, gdy wymagane jest określone menu niestandardowe gdzie dodano taką logikę. Nie jestem pewien, czy logika menedżera menu pozwala na takie możliwości dynamicznej listy.


title: Dodaj klasę do postów w odstępach co 2

text: Czy możliwe jest dodawanie określonych klas do postów/stron w zapytaniu w przyrostach co 2? Na przykład * Wpis 1 * Wpis 2 * Wpis 3 (dodaj niestandardową klasę) * Wpis 4 (dodaj niestandardową klasę) * Wpis 5 * Wpis 6 * Wpis 7 (dodaj niestandardową klasę) * Wpis 8 (dodaj niestandardową klasę) * Wpis 9 I nie przejmuj się używaniem jQuery, jeśli zajdzie taka potrzeba.


title: Permalinki, dzięki którym jeden niestandardowy typ posta wydaje się być dzieckiem innego, nie działa

text: Obecnie mam dwa typy postów, "products" i "products-data" są to osobne typy postów; jednak pod każdym względem dane o produktach stanowią podrzędny wpis produktów. Relacja jest nawiązywana za pomocą elementu meta dla „rodzica” danych produktów, który będzie posiadał identyfikator postu o produktach. Wpisy „dane produktów” są tworzone tylko w jeden sposób --- użytkownik klika produkt w typie wpisu produkty i wprowadza dane do wyskakującego okienka. Wykorzystuje wp_insert_post do utworzenia wpisu z danymi produktów i dodaje element meta „parent” z wartością identyfikatora wpisu „products”. Dane te są wyświetlane w oknie modalnym, jeśli użytkownik kliknie typ produktu. Próbuję uzyskać ich permalinki w następujący sposób: Schemat permalinku dla postu „produkty” (w tym przykładzie identyfikator tego posta to 123): http://example.com/products/new-product-1/ Permalink dla „ produkty-dane”, który ma meta klucz/wartość parent=>123 http://example.com/produkty/nowy-produkt-1/informacje-dane-produktu/ Oto kod, którego używam do zarejestrowania posta pisać i tworzyć reguły przepisywania; jednak po dodaniu tego kodu i opróżnieniu moich reguł przepisywania (ustawienia>permalink) działa dobrze w przypadku wpisu typu „dane-produkty”, ALE kiedy próbuję uzyskać dostęp do wpisu „produkty”, wyświetla stronę główną witryny WordPress (Uwaga: nie odbywa się przez przekierowanie, pasek adresu URL wyświetla adres URL „produktów”). Zastanawiam się, czy problem polega na tym, że dwie permastrukty wydają się, że mogą się ze sobą zderzać, jednak nigdy nie będzie takiego przypadku w praktyce ze względu na schemat permastruktur. Jakakolwiek pomoc w rozwiązaniu tego problemu byłaby bardzo mile widziana. Kod: add_action ( 'init', 'register_product_post_types' ); add_action ( 'init', 'products_add_rewrite_rules' ); add_filter ( 'post_type_link', 'products_permalinks', 10, 3 ); function register_product_post_types() { register_post_type( 'produkty', array( 'wspiera' => array( 'tytuł', 'redaktor', 'autor',"niestandardowe-pola", "miniaturka", "wyciąg", 'komentarze' ) , 'labels' => array( 'name' => __( 'Produkty' ), 'singular_name' => __( 'Produkty' ) ), 'public' => true, 'has_archive' => false, 'rewrite' => FAŁSZ, ) ); register_post_type( 'products-data', array( 'supports' => array( 'tytuł', 'redaktor', 'autor',"niestandardowe-pola" ), 'labels' => array( 'name' => __( 'Dane-Produktów' ), 'singular_name' => __( 'Dane-Produktów' ) ), 'show_in_menu' =>'edit.php?post_type=products', 'public' => true, 'has_archive' => false , 'przepisz' => FAŁSZ, ) ); } function products_add_rewrite_rules() { global $wp_rewrite; $wp_rewrite->add_rewrite_tag('%products%', '([^/]+)', 'products='); $wp_rewrite->add_rewrite_tag('%products-data%', '([^/]+)', 'products-data='); $wp_rewrite->add_rewrite_tag('%parent%', '([^/]+)', 'parent='); $wp_rewrite->add_permastruct('products-data', '/products/%parent%/%products-data%', false); } function products_permalinks($permalink, $post, $leavename) { $no_data = 'no-data'; $post_id = $post->ID; if($post->post_type != 'products-data' || empty($permalink) || in_array($post->post_status, array('draft', 'pending', 'auto-draft'))) return $permalink; $data = sanitize_title(get_the_title(get_post_meta($post_id, 'rodzic', true))); if(!$dane) $dane = $brak_danych; $permalink = str_replace('%parent%', $data, $permalink); zwróć $permalink; }


title: Dodaj rozszerzenie .html do niestandardowych taksonomii typu post

text: Chcę mieć rozszerzenie `.html` w niestandardowych adresach URL taksonomii typu post. Moja niestandardowa taksonomia typu postów nazywa się „`product_cat`”. Potrzebuję czegoś takiego: www.mojadomena.com/kategoria-produktu/nazwa-kategorii-produktu.html Wypróbowałem ten, wstawiając w `functions.php`, bez powodzenia: add_action('init', 'add_html_ext_to_custom_post_type_taxonomies'); function add_html_ext_to_custom_post_type_taxonomies() { add_rewrite_rule('^product_cat/([^/]+)\.html', 'index.php?product_cat=$matches[1]', 'top'); } **Dalsze próby:** Użyłem również wtyczki Custom Post Type Permalink i bawiłem się wokół linii 559. Zamieniłem kod z linii 559 na linię 561 na następny: $termlink = str_replace( $wp_home, $wp_home , $terminlink ); $str = rtrim( preg_replace("/%[a-z_]*%/","",get_option("permalink_structure")) ,'/');//usuń z powrotem z przodu str_replace($str, "", $termlink.'.html' ); To zwróci `.html` w adresie URL strony widoku taksonomii, ale daje 404.


title: Automatyczne przekierowanie po zalogowaniu

text: W multisite ten kod przekierowuje użytkowników (autorów) do /wp-admin/post-new.php po zalogowaniu ....ale również przekierowuje mnie (super admin) jak mogę temu zapobiec? function primary_login_redirect( $redirect_to, $request_redirect_to, $user ) { if ($user->ID != 0) { $user_info = get_userdata($user->ID); if ($user_info->primary_blog) { $primary_url = get_blogaddress_by_id($user_info->primary_blog) . 'wp-admin/post-nowy.php'; if ($primary_url) { wp_redirect($primary_url); umierać(); } } } return $redirect_to; } add_filter('login_redirect','primary_login_redirect', 100, 3);


title: Jak zamówić listę taksonomii? Zamów przez?

text:
Używam tego kodu do pobrania listy taksonomii podrzędnych. Chcę, aby kolejność wyświetlana była alfabetycznie, ale tak nie jest! Jakakolwiek pomoc w ustaleniu, jak to zrobić? Chyba zamówienie przed zwrotem będzie najbardziej optymalne? dzięki <?php $termID = 4; $taxonomyName = "lokalizacja"; $termchildren = get_term_children( $termID, $taxonomyName ); echo '
'; foreach ($termchildren as $child) { $term = get_term_by( 'id', $child, $taxonomyName ); echo '
name, $taxonomyName). '">' . $term->nazwa . '
'; } echo '
'; ?>


title: Jak skonfigurować uwierzytelnianie LDAP z WP multisite

text: Chciałbym skonfigurować moją instalację wielostanowiskową WP tak, aby uwierzytelniała się na naszym serwerze LDAP. Miałem to działające przy użyciu wtyczki uwierzytelniania LDAP WPMU, ale wydaje się, że nie działa już z WP 3.9.1 i MySQL 5.3. Inne wtyczki, które wypróbowałem, wymagają skonfigurowania wtyczki na każdej stronie, a ja wolałbym, aby coś działało w całej sieci. Czy ktoś może wyjaśnić, jak skonfigurować moją instalację wielostanowiskową WP z WP 3.9.1 do uwierzytelniania przez LDAP?


title: CPT, metadane, parametr url

text: czy ktoś mógłby mi wskazać wykład, który mógłby mi wyjaśnić jak stworzyć jakiś "filtr" przekazany przez ładny link ? Pozwólcie, że wyjaśnię sobie, mam niestandardowy typ postu o nazwie **"spektakl"** i mam meta_key, który zawiera tablicę dat dla tego spektaklu. Wiem, jak wyodrębnić swoją datę i przefiltrować je, jeśli wyraźnie podam jakiś filtr do mojego wyświetlacza, mój problem nie pochodzi z tego, co staram się osiągnąć, to uzyskać dostęp do > http://myurl.com/spectacles (pokaż nadchodzące spektakle - **już zrobione** ) > http://myurl.com/spectacles/2014 (pokaż wszystkie spektakle 2014) > http://myurl.com/spectacles/2014/01 (pokaż wszystkie spektakle ze stycznia 2014) > http://myurl.com/spectacles/2014/01/01 (pokaż wszystkie spektakle z 1 stycznia > 2014) http://myurl.com/spectacle/nazwa-spektaklów (pokaż ten spektakl > - **już zrobione** ) Potrzebuję tylko sposobu, aby włączyć permalink tez i wydobyć te parametry, abym mógł robić to, co chcę, mam już swoje funkcje filtrowania. Oto co zrobiłem do tej pory : // Zarejestruj funkcję niestandardowego typu posta build_cpt() { $labels = array( 'name' => _x( 'Programmation', 'Ogólna nazwa typu posta', 'mlog_lang' ), ' singular_name' => _x( 'Spectacles', 'Post Type Singular Name', 'mlog_lang' ), 'menu_name' => __( 'Programmation', 'mlog_lang' ), 'all_items' => __( 'Tous les spectacles' , 'mlog_lang' ), 'view_item' => __( 'Dodaj spektakl', 'mlog_lang' ), 'add_new_item' => __( 'Dodaj spektakl', 'mlog_lang' ), 'add_new' => __( ' Ajouter un spectacle', 'mlog_lang' ), 'edit_item' => __( 'Modyfikator spektaklu', 'mlog_lang' ), 'update_item' => __( 'Metre à jour ce spectacle', 'mlog_lang' ), 'search_item ' => __( 'Rechercher un spectacle', 'mlog_lang' ), 'not_found' => __( 'Aucun spectacle trouvé', 'mlog_lang' ), 'n ot_found_in_trash' => __( 'Aucun dans la corbeille', 'mlog_lang' ), ); add_rewrite_tag( '%rok-wydarzenia%', '(\d{4})' ); //add_rewrite_tag( '%wydarzenie-miesiąc%', '(\d{2})' ); //add_rewrite_tag( '%event-day%', '(\d{2}|\d{1})' ); $rewrite = array( //'slug' => 'okulary/%event-year%/%event-month%/%event-day%/', 'slug' => 'okulary/%event-year%/' , 'with_front' => prawda, 'strony' => prawda, 'feeds' => prawda, ); $args = array( 'label' => __( 'programowanie', 'mlog_lang' ), 'description' => __( 'Lista okularów', 'mlog_lang' ), 'labels' => $labels, 'wsparcie' => array( 'title', 'editor', 'revisions' ), 'taksonomies' => array(), 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'show_in_nav_menus' => false, 'show_in_admin_bar' => false, 'menu_position' => 4, 'menu_icon' => 'dashicons-groups', 'can_export' => true, 'has_archive' => true, 'exclude_from_search' => false, 'publicly_queryable' => true, 'rewrite' => $przepisz, 'capability_type' => 'strona', ); register_post_type( 'programowanie', $args ); Teraz mam dostęp : > http://myurl.com/okulary/2014 ale pokazuje stronę główną zamiast archiwum-programmation.php I nie mam dostępu : > http://myurl.com/okulary/nazwa- spektaklu


title: Wiele parametrów orderby w akcji pre_get_posts()

text: Odnosząc się do odpowiedzi @Otto na pytanie, które również miałem na temat zamawiania według wielu pól, oto co powiedział: > Nie mogę tego zrobić z naiwnym WP_Query. Użyj filtra posts_orderby, aby dodać > własny ciąg zamówienia. funkcja my_order($orderby) { globalny $wpdb; return "{$wpdb->posts.post_author} ASC, {$wpdb->posts.post_date} DESC"; } add_filter( 'posts_orderby', 'moje_zamówienie' ); $blah = nowe WP_Query(...); remove_filter( 'posts_orderby', 'moje_zamówienie' ); > -Otto Wygląda na to, że jest to zrobione w nowym wywołaniu WP_Query --> jak zrobiłbym to samo w akcji `pre_get_posts()` z dwoma polami meta, z domyślnym sortowaniem?: function mouldings_sort($query) { if ($query->is_main_query() && is_tax(array('wood_types','profile_categories','combination_categories'))) { $query->set('meta_key', '_mouldings_dimensions_height') ; $query->set('zamówienie', 'DESC'); $query->set('orderby','meta_value_num'); } } add_action('pre_get_posts','mouldings_sort'); Wcześniej próbowałem po prostu dodać inne pole meta, takie jak: $query-> set('meta_key', array('_mouldings_dimensions_height', '_mouldings_dimension_width')); $query->set('orderby','meta_value_num'); z domyślnym sortowaniem `title` w następujący sposób: $query->set('orderby','meta_value_num title'); ale nie wygląda na to, że `meta_key` może akceptować tablice, a mój powrót do `title` wraca do oryginalnej odpowiedzi Otto w tej sprawie. Każda pomoc byłaby bardzo mile widziana. Dziękuję!


title: Dodanie selektora kolorów WordPress w ustawieniach widżetu

text: Chcę dodać domyślny selektor kolorów WordPress w formularzu ustawień widżetu. Oto co próbuję: W moim functions.php mam to: function widgets_scripts( $hook ) { if ( 'widgets.php' != $hook ) { return; } wp_enqueue_style( 'wp-selektor kolorów' ); wp_enqueue_script( 'wp-selektor kolorów' ); } add_action( 'admin_enqueue_scripts', 'widgets_scripts' ); W moim pliku widżetu mam to: <script type="text/javascript"> jQuery(document).ready(function($) { $('#<?php echo $this->get_field_id( 'color' ); ?>').wpColorPicker(); }); </script> <input id="<?php echo $this->get_field_id( 'kolor' ); ?>" type="text" name="<?php echo $this->get_field_name( 'color' ); ?>" value="<?php echo esc_attr( $instance['color'] ); ?>" /> Używając powyższego kodu, widzę przycisk colorpicker "Select color", ale nie pozwala mi go kliknąć początkowo. Pozwala mi tylko kliknąć po zapisaniu widżetu. Domyślam się, że to przez przypisanie identyfikatora. Jeśli spróbuję użyć nazwy klasy css, wyświetla przycisk 2 razy (nie wiem dlaczego, nawet klasa istnieje tylko raz w widżecie). Oto, co widzę, jeśli używam nazwy klasy: ![tutaj podaj opis obrazu](http://i.stack.imgur.com/GKdJo.png) Również myślę, że nazwa klasy spowoduje problem, jeśli ten sam widżet będzie używany wielokrotnie czasy. Dlatego próbuję użyć dynamicznego identyfikatora dla pola wejściowego.


title: Jak dodać linki pod każdym postem? ( PODCZAS BUDOWANIA WTYCZKI nie ręcznie )

text: Chcę używać, zmieniać, dodawać i usuwać linki, które pojawiają się przy każdym wpisie. (np. 21 maja 2014 r.| 1 komentarz) Jeśli się nie mylę, są to tak zwane tagi szablonów. Mogę bawić się nimi ręcznie, dostając się do kodów motywów, ale czy jest jakiś wbudowany sposób wordpress, aby je obsłużyć, czy istnieje sposób na ich obsługę podczas tworzenia wtyczek?


title: Kod jquery nie działał na mojej wtyczce

text: Używam tego do podpięcia moich skryptów i stylów do wtyczki add_action('admin_init', 'the_box_init' ); // Inicjowanie opcji wtyczki do białej listy naszych opcji function the_box_init(){ register_setting( 'the_box_options', 'the_box', 'the_box_validate' ); wp_enqueue_style( 'myprefix-style', plugins_url('theboxstyle.css', __FILE__) ); wp_enqueue_script( 'moj_skrypt_prefiksu', plugins_url('theboxjs.js', __PLIK__) ); //to przechwytuje moje niestandardowe js, najlepiej, które zawierają prawie moje kody jquery. } jednak kody jquery nie działają nawet w tych prostych kodach (patrz poniżej) $( document ).ready(function() { alert("asdasd"); }); i tylko javascript zadziałał .. co przypuszcza, że moja implementacja się pomyliła, że jquery nie działało? jestem otwarty na wszelkie sugestie, rekomendacje i pomysły. Z góry dziękuję.


title: Wyłączanie automatycznej zmiany rozmiaru przesyłanych obrazów

text: Za każdym razem, gdy przesyłam duży obraz, jego rozmiar jest dostosowywany do szerokości postu. Będzie to negatywna cecha stron z komiksami. Muszę wyświetlać obrazy o pełnej szerokości, których rozmiar mogę zmienić w razie potrzeby podczas przesyłania. Czy coś może rozwiązać ten problem?


title: Przekierowanie logowania pokazuje białą stronę w Firefox

text: Opracowuję wtyczkę, która pozwala połączyć lokalne konto wordpress z usługą uwierzytelniania dwuskładnikowego. Logowanie i linkowanie działają doskonale w Chrome i IE, ale przekierowania powodują białą stronę w Firefoksie. O dziwo, nie ma żadnego błędu, ponieważ cały kod jest wykonywany, a proste odświeżenie strony F5 pokazuje poprawną stronę. Jak widać w poniższym kodzie, używam tylko wp_redirect() tylko raz, aby wyzwolić przepływ uwierzytelniania, co działa i nie stanowi problemu. Od tego momentu to Wordpress obsługuje wszystkie przekierowania i robi to dobrze w Chrome i IE, ale nie działa w publicznej funkcji Firefox myplugin_callback() { global $wp_query; if ($wp_query->get('kod')) { $_SESSION['kod'] = $wp_query->get('kod'); $_SESSION['stan'] = $wp_query->get('stan'); wp_redirect(site_url('wp-login.php', 'login')); echo 'Proszę czekać, logowanie.'; Wyjście; } } public function myplugin_authenticate($user, $username) { // wykonaj uwierzytelnianie tutaj if (isset($_SESSION['code'])) { /* pobierz tutaj dane użytkownika przez OAuth */ if (isset($userData[' email'])) { $userSearch = get_user_by('email', $userData['email']); if ($userSearch) { // użytkownik istnieje $uuid = get_user_meta($userSearch->ID, 'myplugin_uuid', true); if ($uuid == $userData['uuid']) { // użytkownik jest połączony $user = new WP_User($userSearch->ID); } else { // użytkownik nie jest połączony $_SESSION['myplugin-data'] = serialize($userData); $user = new WP_Error('denied', __('Masz już konto z tym e-mailem na tym blogu. Zaloguj się, aby połączyć to konto z naszą usługą.')); remove_action ('authenticate', 'wp_authenticate_username_password', 20); } } else { // użytkownik nie istnieje $user = new WP_Error(); } } unset($_SESSION['kod']); } else { // logowanie lokalne $userSearch = get_user_by('login', $username); if ($userSearch) { $uuid = get_user_meta($userSearch->ID, 'myplugin_uuid', true); if (!isset($_SESSION['myplugin-data']) && !empty($uuid) && !$this->myPluginHelper()->getlocalAuthAllowed()) { $user = new WP_Error('denied', __( 'Logowanie lokalne wyłączone. Użyj myPlugin, aby się zalogować'), 'wiadomość'); remove_action ('authenticate', 'wp_authenticate_username_password', 20); } else { add_filter('login_redirect', array($this, 'save_myplugin_uuid'), 10, 3); } } } return $użytkownik; } public function save_myplugin_uuid($redirect_to, $request, $user) { if (isset($_SESSION['myplugin-data']) && is_a($user, 'WP_User')) { $userData = unserialize($_SESSION[' moje dane-wtyczki']); update_usermeta($user->ID, 'myplugin_uuid', $userData['uuid']); unset($_SESSION['moje-dane-wtyczki']); } return $redirect_to; } Wygooglowałem całkiem sporo, bezskutecznie. Czy ktoś ma pomysł? Dzięki Jeroen


title: Problem WP_Query tax_query

text: Kiedy wywołuję WP_Query z zapytaniem podatkowym lub category__in, otrzymuję posty tylko z pierwszej kategorii w tablicy żądanych kategorii. $query = new WP_Query( array( "tax_query" => array( array( "taksonomia" => "kategoria", "pole" => "term_id", "terms" => array(1, 2, 3) ) ) ) , "posts_per_page" => -1 ) ); Oto kwerenda sql z $query->request: SELECT wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_relationships AS tt1 ON (wp_tt1_post1.sobject1 ON (wp_tt1). ON (wp_posts.ID = tt2.object_id) GDZIE 1=1 AND (wp_term_relationships.term_taxonomy_id IN (1, 2, 3) AND tt1.term_taxonomy_id IN (1) AND tt2.term_taxonomy_id IN (1)) AND wp_posts.post_type = ' post' ORAZ (wp_posts.post_status = 'opublikuj' LUB wp_posts.post_status = 'przyszłość' LUB wp_posts.post_status = 'szkic' LUB wp_posts.post_status = 'oczekujące' LUB wp_posts.post_status = 'prywatne') GRUPA.ID LUB wp_posts BY wp_posts.post_date DESC Lista wyników tylko posty w kategorii 1. Co jest nie tak z my zapytanie?


title: Pozwól mi wybrać permalinki

text: Muszę wybrać permalink o nazwie „mysite.com/1418”, ale wordpress ciągle dodaje „-2” do permalinka. Zwykle oznacza to, że mam już stronę o tej samej nazwie, która jest w koszu lub coś takiego. Ale tutaj tak nie jest. Próbowałem zresetować permalinki w ustawieniach, to też nie pomaga. Jak mogę używać liczb jako permalinka do nazwy strony, bez wordpress dodawania '-2' do permalinka.


title: Logowanie AJAX przez https na stronie http, czy to możliwe?

text: Chciałbym mieć formularz logowania ajax na każdej stronie. Większość stron serwisu jest obsługiwana przez http. Żądanie logowania ajax jest przez https. Wszystko działa zgodnie z oczekiwaniami, jeśli jestem już na https i próbuję się zalogować, ale nie mogę go uruchomić, jeśli jestem na http i chcę się zalogować za pomocą wywołania ajax-https. Dane logowania są weryfikowane, ale prawidłowe pliki cookie nigdy nie są ustawiane. Czy można to osiągnąć, widziałem, jak robią to strony inne niż Wordpress? Znalazłem podobne pytanie bez odpowiedzi; Jak mogę sprawić, by formularz logowania Ajax działał z włączoną opcją FORCE_SSL_ADMIN? Chciałbym w ogóle nie mieć osobnej strony logowania.


title: Niestandardowy rodzic taksonomii z innej taksonomii

text: Rozglądałem się za tym, ale nic nie wyszło (być może nie szukam wystarczająco dobrze?), ale próbuję ustawić rodzica na taksonomię, która jest ładowana z innej taksonomii. Na przykład mam marki samochodów i modele samochodów, dodając nowy model, chciałbym wybrać jego rodzica (Markę samochodu), a nie innego rodzica w nim samym. Marki nie mogą mieć żadnych rodziców, ale mogą mieć nieograniczoną liczbę dzieci, modelki nie mogą mieć dzieci i tam rodzic musi mieć markę. czy to możliwe? Najlepiej bez wtyczki. /* Sprawia */ $labels = array( 'name' => _x( 'Marka', 'nazwa ogólna taksonomii' ), 'singular_name' => _x( 'Make', 'nazwa osobliwa taksonomii' ), 'search_items' = > __( 'Wyszukaj marki' ), 'all_items' => __( 'Wszystkie marki' ), 'parent_item' => __( 'Nadrzędna marka' ), 'parent_item_colon' => __( 'Nadrzędna marka:' ), ' edit_item' => __( 'Edytuj markę' ), 'update_item' => __( 'Aktualizuj markę' ), 'add_new_item' => __( 'Dodaj nową markę' ), 'new_item_name' => __( 'Nowa marka' ), ); register_taxonomy('makes', 'car', array('hierarchical' => false, 'labels' => $labels, 'query_var' => false, 'rewrite' => false, 'with_front' => false)); /* Modele */ $labels = array( 'name' => _x( 'Models', 'nazwa ogólna taksonomii' ), 'singular_name' => _x( 'Model', 'nazwa osobliwa taksonomii' ), 'search_items' = > __( 'Wyszukaj modele' ), 'all_items' => __( 'Wszystkie modele' ), 'parent_item' => __( 'Rodzic model' ), 'parent_item_colon' => __( 'Rodzic model:' ),' edit_item' => __( 'Edytuj model' ), 'update_item' => __( 'Aktualizuj model' ), 'add_new_item' => __( 'Dodaj nowy model' ), 'new_item_name' => __( 'Nowy model' ) ); register_taxonomy('models', 'car', array('hierarchical' => true, 'labels' => $labels, 'query_var' => false, 'rewrite' => false, 'with_front' => false)); To pytanie jest nieco powiązane: Pokaż elementy taksonomii niestandardowej WordPress na podstawie wybranego elementu z innej taksonomii niestandardowej, ale zakładam, że elementy nadrzędne/podrzędne pochodzą z jednej taksonomii? W moim przypadku muszą to być dwie oddzielne taksonomie.


title: Przepisywanie adresu URL archiwum taksonomii niestandardowej

text: Chciałbym utworzyć stronę archiwum z listą moich niestandardowych taksonomii, które prowadzą do strony zawierającej posty z tą relacją taksonomii. Zarejestrowałem moją taksonomię w następujący sposób: register_taxonomy('my_taxo', array('my_custom_post'), array( 'hierarchical' => true, 'label' => 'my taxo' 'show_ui' => true, 'query_var' => prawda, 'show_in_nav_menus' => prawda) ); Jaki jest zalecany sposób tworzenia strony archiwum, którą można odwiedzić pod adresem URL, takim jak mysite.com/my_taxo lub mysite.com/taxonomy/my_taxo. Idealnym plikiem szablonu, który zostanie użyty, będzie `taxonomy-{taxonomy}.php`. Czy dotyczy to add_rewrite_rule? Jeśli tak, jak to może wyglądać?