title: Błąd API ustawień Wordpress

text:
Cześć Próbuję utworzyć niestandardowe opcje dla szablonu, który rozwijam, ale wydaje mi się, że pojawia się błąd: Ostrzeżenie: Nielegalne przesunięcie ciągu „show_header” w C:\xampp\htdocs\wordpress\wp-content\themes\01MyWork\ include\theme-options.php w linii 62. To jest linia, która wydaje się generować błąd: $html = '<input type="pole wyboru" id="show_header" name="thanathos_theme_display_options[show_header]" value="1 „”. zaznaczone(1, $options['show_header'], false) . '/>'; A to jest cały kod: <?php function thanatos_theme_menu(){ add_theme_page( "Opcje motywu Thanathos", "Motyw Thanathos", "administrator", "opcje_theme_thanathos", "thanathos_theme_display_callback" ); } add_action('admin_menu' , 'thanatos_theme_menu'); function thanathos_theme_display_callback(){ ?>

Opcje motywu piaskownicy
 <?php settings_errors() ; ?>  <form method="post" action="options.php"> <?php settings_fields('thanathos_theme_display_options'); ?> <?php do_settings_sections( 'thanathos_theme_display_options' ); ?> <?php submit_button(); ?> </form>
 <?php } add_action('admin_init' , 'thanatos_inicjaliza_theme_options'); function thanatos_initializa_theme_options(){ if( false == get_option( 'thanathos_theme_display_options' ) ) { add_option( 'thanathos_theme_display_options' ); } add_settings_section( 'general_settings_section', 'Opcje Thanatos', 'thanatos_general_options_callback', 'thanathos_theme_display_options' ); add_settings_field( 'show_header', 'Header', 'thanathos_field_header_callback', 'thanathos_theme_display_options', 'general_settings_section', array( // Tablica argumentów do przekazania do wywołania zwrotnego. W tym przypadku wystarczy opis. 'Aktywuj to ustawienie, aby wyświetlić. Nagłówek.'                      )              ); register_setting('thanathos_theme_display_options', 'thanathos_theme_display_options'); } function thanatos_general_options_callback(){ echo 'mergem la mare'; } function thanathos_field_header_callback($args){ // Najpierw czytamy kolekcję opcji $options = get_option('thanathos_theme_display_options'); // Następnie aktualizujemy atrybut name, aby uzyskać dostęp do identyfikatora tego elementu w kontekście tablicy opcji wyświetlania // Uzyskujemy również dostęp do elementu show_header kolekcji options w wywołaniu funkcji pomocniczej check() $html = '<input type="pole wyboru" id="show_header" name="thanathos_theme_display_options[show_header]" value="1" ' . zaznaczone(1, $options['show_header'], false) . '/>'; // Tutaj weźmiemy pierwszy argument tablicy i dodamy go do etykiety obok pola wyboru $html .= ' ' . $args[0] . ''; echo $html; } ?>


title: Wyłącz opcje widoczności w WP

text: Czy istnieje sposób na wyłączenie publicznego, prywatnego lub chronionego hasłem interfejsu użytkownika widoczności podczas edytowania lub szybkiej edycji posta? Szybkie skanowanie w kodzie daje `#visibility`, które mogłem ukryć za pomocą jQuery, ale zastanawiałem się, czy istnieje udokumentowany sposób na zrobienie tego "poprawnie".


title: Jak publikować dane na stronie wordpress w przypadku aplikacji mobilnej?

text: Mam stronę wykonaną w wordpressie. Natknąłem się na wymaganie, w którym programista próbuje zalogować się z iPada lub iPhone'a do witryny Wordpress. Czy jest jakaś wtyczka, aby to osiągnąć?. istnieje konieczność odzyskania danych w formacie json i przekazania deweloperowi !!


title: Wyświetlaj posty od tagchildren taksonomii tagparents

text:
Po pierwsze, próbuję wyświetlić wszystkie tagi z taksonomii o nazwie „grupa”. Jednak ta taksonomia zawiera obecnie dwa tagi, z których jeden ma wiele tagchildren. Chciałbym wyświetlić wszystkie posty należące do tych dzieci. Więc końcowy wynik powinien wyglądać mniej więcej tak: * Tag nadrzędny A * Znacznik potomny * Dane posta * Znacznik dziecka * Dane posta * itd... * Znacznik "rodzica" B <?php $taxonomyName = "grupa"; $terms = get_terms($nazwa_taksonomii,array('parent' => 0)); foreach($terms as $term) { echo 'slug,$taxonomyName).'">'.$term->nazwa.''; $term_children = get_term_children($term->term_id,$taxonomyName); echo '
'; foreach($term_children as $term_child_id) { $term_child = get_term_by('id',$term_child_id,$taxonomyName); echo '
name, $taxonomyName) . '">' . $term_child->nazwa . '
'; } echo '
'; } ?>


title: Współtwórcy powinni uzyskiwać dostęp tylko do strony głównej

text: Współtwórcy mojej witryny zostali pomyślnie zarejestrowani. Jednak po zalogowaniu chcę, aby byli kierowani bezpośrednio na stronę główną serwisu, a nie na swój profil, bo tego nie potrzebują. czy to możliwe? Dziękuję Ci.


title: Paginacja działa nieco na stronie głównej, nie aktualizuje się po kliknięciu przycisku „poprzedni”

text:
Postępowałem zgodnie z bardzo prostym samouczkiem, który znajduje się na tej stronie: http://wp.tutsplus.com/tutorials/wordpress-pagination-a-primer/ (przewiń w dół do „Lepszego rozwiązania”) – sprawia, że wydaje się to takie proste i działa w ten sposób, że istnieją linki do stronicowania, a adres URL zmienia się w pasku adresu, ale w rzeczywistości nie aktualizuje się po kliknięciu 2 lub 3. Strona - chrisayreswebdev.com/besh Wiem, że czegoś mi brakuje, po prostu nie jasne co. Jakieś pomysły? Dziękuję! EDYCJA: functions.php: funkcja paginate() { global $wp_query; $total_pages = $wp_query->max_num_pages; if ($total_pages > 1){ $current_page = max(1, get_query_var('paged')); echo paginate_links(array( 'base' => get_pagenum_link(1) . '%_%', 'format' => 'page/%#%', 'current' => $bieżąca_strona, 'total' => $total_pages, )); } } index.php: <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"> <?php the_title(); ?>

Wysłano <?php the_time('F jS, Y') ?>

<? php the_content(__('(więcej...)')); ?>

 <?php endwhile; else: ?>
<?php _e("Przepraszamy, nie mogliśmy znaleźć posta, którego szukasz."); ?>
 <?php endif; ?> <?php paginate(); ?>


title: Problem z niestandardowymi linkami bezpośrednimi typu post

text: szukasz pomocy w rozwiązaniu problemu ze strukturą permalinka. Używam tego kodu tutaj http://pastebin.com/QfgAMkfV jako wtyczki z nadzieją stworzenia struktury takiej jak /films/ /films/nazwa-filmu/ /films/genre/nazwa-gatunku/ /films/topic/ nazwa-tematu/ To działa, ale nie mogę wyświetlić normalnych stron (stron nie postów). Nie otrzymuję błędu 404, zamiast tego po prostu otrzymuję najnowszy post, który pochodzi z pliku index.php. Jeśli wyłączę permalinki, wszystko działa dobrze. Próbowałem zmienić motyw na domyślny, aktualizować permalinki, a nawet zmienić serwer i ponownie zainstalować wordpress. Czy to możliwe bez użycia wtyczki?


title: Jak skonfigurować WPLANG w wp-config.php dla 4 języków?

text: Dobry dzień! Nie znam zbyt wiele kodu, więc szukałem sposobu na zmodyfikowanie mojego pliku wp-config.php, aby zawartość i widżety mojej witryny wyświetlały się w czterech językach (oprócz angielskiego), które tam mam. Nie obchodzi mnie tłumaczenie interfejsu WP, tylko treść. Pliki WP .mo w danych językach znajdują się już w folderze wp-content/languages. Jak zdefiniowałbym 4 języki w wp-config.php? Lubię to? zdefiniuj ('WPLANG', 'es_ES'); („WPLANG”, „de_DE”); ('WPLANG', 'fr_FR'); („WPLANG”, „ca_CA”) Próbowałem różnych rzeczy (jedyny sposób, w jaki mogłem się nauczyć), ale ostatecznie zniszczyłem plik i musiałem go przywrócić. Poza tym tak jak powiedziałem brak wiarygodnych informacji w necie. Twoje zdrowie :)


title: Wyklucz tag (ale nie cały post) z listy powiązanych postów

text: Wyświetlam powiązane posty pod każdym postem, w zależności od tagów. Problem polega na tym, że używam tagu „polecane” dla mojego najbardziej polecanego suwaka. Tak więc tag „polecane” jest najpopularniejszym tagiem w mojej witrynie. I tu pojawia się problem: pod postami oznaczonymi jako „polecane” lista powiązanych postów nie pokazuje postów z unikalnymi (konkretnymi) tagami, ale najnowsze z tagiem „polecane” (jako najbardziej powszechne). Próbowałem zmienić moją pętlę za pomocą „tag__not_in”, ale potem każdy prezentowany post również został wykluczony z listy. Chcę zignorować ten określony tag w tablicy „tag__in” i nie wykluczać polecanych postów z pętli. Próbowałem to osiągnąć na wiele sposobów, ale bez powodzenia. Czy mógłbyś mi w tym pomóc? Mój kod wygląda tak: global $post; $orig_post = $post; $tags = wp_get_post_tags($post->ID); if ($tags) { $tag_ids = array(); foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id; $args=array( 'tag__in' => $tag_ids, 'post__not_in' => array($post->ID), 'posts_per_page'=> $count, 'ignore_sticky_posts'=>1, 'post_type' => array(' ogłosić wydarzenie')         ); $my_query = nowe WP_Query( $args ); (...tutaj jest pętla...) $post = $orig_post; wp_reset_query();


title: Wyświetlaj tylko moje własne pliki/obrazy w bibliotece multimediów

text: Chcę tylko, aby użytkownik widział tylko własne pliki w bibliotece multimediów. Mam 2 pytania: 1. Świetnie działa na liście biblioteki multimediów. add_action('pre_get_posts','users_own_attachments'); function users_own_attachments ( $wp_query_obj ) { global $ current_user, $ pagenow; //echo 'pagenow='.$pagenow; if(!is_a($current_user, 'WP_User')) powrót; if( 'upload.php' != $pagenow ) return; if(!current_user_can('delete_pages')) $wp_query_obj->set('autor', $current_user->id ); zwrócić; } Ale kiedy przesyłasz pliki za pomocą modalnej (lightbox) biblioteki multimediów, pokazuje ona wszystkie pliki. Mam program do przesyłania awatarów na twojej stronie profilu (`/wp-admin/profile.php`). kiedy klikam prześlij z biblioteki multimediów. wyskakuje modalne i pokazuje wszystkie pliki, nawet nie moje własne. Jak mogę sprawić, by wyskakujące okienko wyświetlało tylko moje pliki/zdjęcia? 1. Mam też program do przesyłania awatarów na interfejsie. Muszę też, aby wyświetlał tylko własne zdjęcia na media modal. Jak mogę dodać stronę? Zrobiłem `echo $pagenow;` to wszystko jest `index.php`. Uważam, że jeśli moje pierwsze pytanie ma rozwiązanie, byłoby dobrze również z frontendem.


title: Wiele e-maili dla tego samego użytkownika - nieaktualne?

text: Spojrzałem na to i wypróbowałem: _(rozwiązanie z jedną witryną)_ Jak używać tego samego e-maila dla wielu użytkowników Wypróbowałem to, ale nie mogłem go uruchomić. Nie wiem, czy to dlatego, że Wordpress już się tym nie przejmuje, czy jest to fakt, że używam wtyczki o nazwie Profile Builder. Trochę tego przeczytałem i co mogę zrozumieć, to nie działa w wersji powyżej WP 2.8 (czy coś takiego). Używam Wordpressa 3.7. Próbowałem również wtyczki "Allow Multiple users", ale wszyscy mówią, że nie działa z Wordpress>2.8 (nadal musiałem spróbować! :-)) Więc w zasadzie - moje pytanie brzmi: Czy powyższe działa nadal praca (czy jest przestarzała)?


title: Uruchamianie template_include, gdy opcja allow_url_include jest wyłączona?

text: Pracuję nad wtyczką, która tworzy niestandardowy typ posta i chciałbym wyświetlić niestandardowy szablon bez modyfikowania motywu. Oto uproszczony kod, z którym pracuję: add_filter('template_include', 'my_custom_template'); function my_custom_template($incFile) { global $wp; globalne $wp_query; if ($wp->query_vars['post_type'] == 'niestandardowy typ-post') { $incFile = MY_PLUGIN_TEMPLATES . '/szablon.php'; } return $incFile; } Problem, z którym się spotykam, polega na tym, że wyłączenie opcji allow_url_include w pliku php.ini serwera powoduje wyświetlenie zabawnego małego błędu: **Ostrzeżenie:** include() [function.include]: http:// wrapper jest wyłączone w konfiguracji serwera przez allow_url_include=0 w http://ścieżka\do\wp- include\template-loader.php w wierszu 43 Więc myślę, że pytanie brzmi, czy istnieje sposób na wysłanie szablonu przez filtr template_include bez wywołania tego błędu allow_url_include? Dziękuję!


title: Jak liczyć typ postu, który ma określony termin?

text: Jaka jest najlepsza metoda liczenia postów w typie postów, które mają określony termin? Nie wierzę, że `get_posts` akceptuje zapytanie o termin i nie mam szczęścia z `nowym WP_Query`, chociaż może robię coś źle. Przykład użycia: $posts = get_posts( array( 'post_type' => 'inventory', array( 'taxonomy' => 'status', 'terms' => 'in-stock', 'field' => 'slug' ) , ) ); $liczba = ilość( $posty ); echo $liczba;


title: Dodawanie paska administracyjnego do strony z niestandardowym szablonem

text: Stworzyłem uproszczony szablon strony do wykorzystania na moich landing pages. Ale musiałem za dużo z tego wyciąć, bo straciłem pasek administracyjny WordPress 3.1+. Jakie funkcje muszę wywołać, aby pasek administracyjny pojawił się ponownie u góry strony?


title: Czy wtyczki typu drop-in są produktem projektowania?

text: Czy wtyczki typu drop-in - kiedy kopiujesz wtyczkę bezpośrednio do motywu - są produktem projektu. A może praktyka powstała „organicznie”.


title: Prawidłowe wyświetlanie danych Meta-Box

text:
Szybki i brudny, mam meta boxy z informacjami o koncercie. (tj. miejsce i lokalizacja) i próbuję wymyślić, jak **poprawnie wyświetlić** je w moim poście. W tej chwili do wyświetlenia danych meta-box mam <?php $venue_info = get_post_custom_values("venue_info"); if (isset($venue_info[0])) { }; ?> <?php if( $miejsce_informacje[0] ): ?> <?php echo $miejsce_informacje[0] ?> <?php endif; ?> Zdaję sobie sprawę, że jest to bardzo kiepski sposób wyświetlania danych. Dlatego mam nadzieję, że nauczę się właściwego formatu. Dziękuję za Twój czas. Tak wygląda mój plik function.php na wypadek, gdyby był potrzebny <?php include('preset-library.php'); //Tworzę tablicę o nazwie $meta_box i ustawiam klucz tablicy na odpowiedni typ posta // Jeśli niestandardowy typ posta, zmień zmienną 'post', której nie używam $meta_box['post'] = array( // To jest identyfikator zastosowany do pola meta 'id' => 'post-format-meta', //To jest tytuł, który pojawia się w kontenerze meta pola 'title' => 'Additional Post Format Meta', //To definiuje część strony, w której powinna być pokazana sekcja ekranu edycji 'context' => 'normal', //Ustawia to priorytet w kontekście, w którym pola powinny pokazywać 'priority' => 'high', //Tutaj zdefiniuj wszystkie potrzebne pola w meta polu 'fields' => array( array( 'name' => 'Miejsce', 'desc' => 'informacje o miejscu', 'id' => 'venue_info', 'type' => 'tekst', 'domyślnie' => '' ), tablica( 'name' => 'Lokalizacja', 'desc' => 'Lokalizacja miejsca', 'id' => 'informacje o_lokalizacji', 'typ' => 'text', 'default' => '' ) ) ); add_action('admin_menu', 'plib_add_box'); ?> i moje include jest tutaj //Dodaj pola meta do typów postów function plib_add_box() { global $meta_box; foreach($meta_box as $post_type => $value) { add_meta_box($value['id'], $value['title'], 'plib_format_box', $post_type, $value['context'], $value[' priorytet']); } } //Funkcja formatowania plib_format_box() { global $meta_box, $post; // weryfikacja echo '<input type="hidden" name="plib_meta_box_nonce" value="', wp_create_nonce(basename(__FILE__)), '" />'; echo '
'; foreach ($meta_box[$post->post_type]['fields'] as $field) { // pobierz aktualne meta dane postu $meta = get_post_meta($post->ID, $field['id'], true); echo '
'. ''. $pole['nazwa']. „	”. ''; switch ($field['type']) { case 'text': echo '<input type="text" name="'. $field['id']. '" id="'. $field['id' '] .'" value="'. ($meta ? $meta : $pole['default']). '" size="30" style="szerokość:97%" />'. „
”. $pole['opis']; przerwanie; case 'textarea': echo '<textarea name="'. $pole['id']. '" id="'. $field['id']. '" cols="60" rows="4" styl ="szerokość:97%">'. ($meta ? $meta : $pole['domyślny']) . '</textarea>'. „
”. $pole['opis']; przerwanie; case 'select': echo '<select name="'. $pole['id'] '" id="'. $pole['id'] '">'; foreach ($pole['opcje'] jako $opcja) { echo '<opcja'. ( $meta == $opcja ? 'select="selected"' : '' ). '>'. $opcja . '</option>'; } echo '</select>'; przerwanie; case 'radio': foreach ($pole['opcje'] as $option) { echo '<input type="radio" name="' . $pole['id'] '" value="' . $opcja ['wartość'] . '"' . ( $meta == $option['value'] ? 'checked="checked"': ''). ' />' . $opcja['nazwa']; }                   przerwanie; case 'pole wyboru': echo '<input type="pole wyboru" name="' . $pole['id'] '" id="' . $pole['id'] '"' . ( $meta ? 'checked="sprawdzone"' : '' ). ' />'; przerwanie; } echo ''.'
'; } echo '
'; } // Zapisz dane z funkcji metabox plib_save_data($post_id) { global $meta_box, $post; //Zweryfikuj, jeśli (!wp_verify_nonce($_POST['plib_meta_box_nonce'], nazwa podstawowa(__FILE__))) { return $post_id; } //Sprawdź > autozapis jeśli (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return $post_id; } //Sprawdź > uprawnienia if ('page' == $_POST['post_type']) { if (!current_user_can('edit_page', $post_id)) { return $post_id; } } elseif (!current_user_can('edit_post', $post_id)) { return $post_id; } foreach ($meta_box[$post->post_type]['fields'] as $field) { $old = get_post_meta($post_id, $field['id'], true); $nowy = $_POST[$pole['id']]; if ($nowy && $nowy != $stary) { update_post_meta($post_id, $field['id'], $new); } elseif ('' == $nowy && $stary) { delete_post_meta($post_id, $field['id'], $old); } } } add_action('save_post', 'plib_save_data'); ?>


title: Uzyskaj dostęp do bazy danych Wordpress poza Wordpress

text: PYTANIE GŁÓWNE: Piszę wtyczkę wp. W nim mam stronę znajdującą się tutaj: http://example.com/wordpress/wp-content/plugins/myplugin/page.php Jak uzyskać dostęp do bazy danych WP z tej strony? Czy jest jakiś oficjalny, właściwy sposób, który nie zerwie się z aktualizacjami? Czy w ogóle jakiś niezawodny sposób? * * * Jako druga możliwość (nie preferowana) - pomyślałem, że może moja wtyczka mogłaby stworzyć stronę wordpress, która wtedy byłaby gdzieś w stylu: http://example.com/myplugin/index.php Czy to możliwe? A jak zareagowałby na zmiany ustawień permalinków przez użytkownika?


title: W archiwum tagów - wyświetla liczbę postów dla każdej kategorii, do której należą

text: Postaram się być jak najbardziej jednoznaczny i krótki. Załóżmy, że mam stronę z książkami. Mam trzy kategorie: **przygoda** , **romans** i **fantazja**. Następnie mam tag o nazwie **stare książki**. Na górze tego archiwum tagów muszę wyświetlić informacje o zliczeniach. Przykład: STARE KSIĄŻKI Dostępnych jest łącznie 88 starych książek. 18 książek jest z kategorii przygoda. 50 książek to romans. 20 książek z kategorii fantasy. Pierwszy rozwiązałem za pomocą `$wp_query->found_posts;`, co daje mi całkowitą liczbę książek w archiwum tagów. Teraz, jak mam liczyć resztę książek. Rozwiązanie lub mapa drogowa byłyby świetne, w przeciwnym razie proszę powiedz mi, jakimi funkcjami lub przykładami powinienem się zająć. Spodziewam się również, że liczba będzie się dynamicznie zmieniać w miarę zachodzenia zmian. Wkrótce opublikuję moje aktualizacje, ponieważ walczę o rozwiązanie.


title: Dodaj niestandardowe informacje o profilu do kanału

text: Mam kilka dodatkowych pól niestandardowych dodanych do profilu użytkownika i wyprowadzam je w kilku miejscach w interfejsie. Jedną z rzeczy, które chcę zrobić, to dodać niektóre z tych niestandardowych pól do kanału WordPress jako elementy RSS. Na przykład wiem, że domyślnie wyświetlana jest nazwa wyświetlana autora, ale chcę również dodać ich uchwyt Twittera do kanału. Czy ktoś zna rozwiązanie tego problemu? Dziękuję


title: Czy podczas przesyłania plików JPEG WordPress kompresuje oryginalny obraz?

text: Próbuję określić, jak powinien wyglądać mój przepływ pracy przetwarzania obrazu. Wiem, że WordPress automatycznie zmienia rozmiar i kompresuje obrazy do różnych rozmiarów podczas przesyłania. Jestem ciekaw czy robi jakąkolwiek kompresję na oryginalnym obrazie. Ponieważ wykonuje kompresję (tak jak powinna) na mniejszych obrazach, nie chciałbym przesyłać już skompresowanego pliku JPEG, aby ponownie skompresować go w mniejszych rozmiarach. Ale jeśli nie skompresuje oryginału, będę miał znacznie większy plik obrazu niż to konieczne, gdy ktoś pójdzie obejrzeć oryginał. Myślę, że idealnym przepływem pracy byłoby przesłanie pliku JPEG o jakości 100 do WordPressa, zmiana rozmiaru i skompresowanie wszystkich mniejszych obrazów przy użyciu obrazu o pełnej jakości, a następnie skompresowanie oryginału. Czy ktoś wie, czy jest to możliwe (lub czy już to się robi)?


title: Pokaż najpopularniejszy post z ostatnich 12 miesięcy

text: Używam motywu Wstążki, który ma ładny widżet z zakładkami, pokazujący najpopularniejsze i najnowsze posty. Chciałbym ograniczyć najpopularniejsze posty do ostatnich 12 miesięcy. Wolałbym nie używać do tego wtyczki, ale zmienić kod w pliku motywu. Zapytanie wygląda tak: function mts_popular_tabs( $posts = 5 ) { $popular = new WP_Query('showposts='.$posts .'&orderby=comment_count&order=desc'); $popular_post_num = 1; while ($popular->have_posts()) : $popular->the_post(); Próbowałem tego fragmentu: function filter_where ($where = '') { $where .= " AND post_date > '" . date('R-m-d', strtotime('-365 dni')) . "'"; zwróć $gdzie; } add_filter('posts_where', 'filter_where'); Działa dla widżetu, ale wpływa również na inne zapytania. Próbowałem usunąć filtr, ale to nie zadziałało: wp_reset_query(); remove_filter('posts_where', 'filtr_where'); Próbowałem przepisać zapytanie w ten sposób bez powodzenia: $today = date('Y-m-d'); $todayminusone = date('R-m-d', strtotime('-1 rok')); $args = array( 'date_query' => array( array( 'after' => $today, 'before' => $todayminusone, ), ), 'showposts' => 5, 'orderby' => 'comment_count', 'zamówienie' => 'opis' ); funkcja mts_popular_tabs() { $popular = nowe WP_Query($args); $popular_post_num = 1; while ($popular->have_posts()) : $popular->the_post(); Utknąłem tutaj. Każda pomoc byłaby mile widziana. Dziękuję za pomoc. Oto kod, którego używam teraz: function mts_popular_tabs( $nr = 5 ) { $args = array( 'date_query' => array( array( 'after' => '-1 rok') ), 'posts_per_page' => ( int) $nr, 'orderby' => 'comment_count', 'order' => 'DESC' ); $popular = nowe WP_Query( $args ); $popular_post_num = 1; while ($popular->have_posts()) : $popular->the_post(); ...


title: Apache i sieci

text: Na serwerze testowym zainstalowałem nową instancję wielostanowiskową. Mieszka w `/var/www/html/m` ( _m=multisite_ ). Próbowałem założyć pierwszą witrynę i nadałem jej ścieżkę `http://server/m/a`. Jednak gdy próbuję odwiedzić ten adres URL, otrzymuję komunikat 404: „Nie znaleziono. Żądany adres URL /m/a nie został znaleziony na tym serwerze”. Ustawiłem plik `.htaccess` w `/var/www/html/m/` zgodnie z zaleceniami panelu administracyjnego. Plik vhost wygląda następująco? <VirtualHost *:80> DocumentRoot /var/www/html </VirtualHost> <Directory /var/www/html> AllowOverride All </Directory> Czy muszę dołączyć oddzielny wpis katalogu dla `/var/www/html/ m`? Czy ta dyrektywa będzie się rozprzestrzeniać?


title: Treść shortcode jest pusta

text: Mam ten krótki kod w moim `functions.php`: function amaranthe_buy_tickets( $atts, $content = null ) { extract(shortcode_atts(array( 'link' => '#', 'target' => '', ' odmiana' => '', 'rozmiar' => '', 'wyrównaj' => '', ), $atts)); $styl = ($odmiana) ? ' '.$odmiana. '_gradient' : ''; $wyrównaj = ($wyrównaj) ? ' wyrównaj'.$wyrównaj : ''; $rozmiar = ($rozmiar == 'duży') ? ' duży_przycisk' : ''; $target = ($target == 'pusty') ? ' target="_blank"' : ''; $out = '' .$treść. ''; zwróć $out; } add_shortcode('buy-tickets', 'amaranthe_buy_tickets'); W moim pliku szablonu, w którym chcę wyświetlić shortcode, mam to: <?php echo do_shortcode("[buy-tickets]"); ?> a w poście mam to: [buy-tickets]bilety[/buy-tickets] W wyniku otrzymam tylko to:  Z jakiegoś powodu brakuje treści.


title: Tłumaczenie znaczników czasu nie działa z buddypress i wordpress

text: Chciałbym zmienić sygnaturę czasową zajęć na inny język. Przykład: członek dołączył do grupy A od 2 godzin, część, którą należy przetłumaczyć w moim pytaniu to `godziny`. Próbowałem wielu rozwiązań, takich jak wtyczka `buddypress-translation` lub plik językowy w `wp-content/languages/` i próbowałem również plików tłumaczeń motywów w `wp-content/languages/nazwamotywu/` . Problem nie jest związany z motywem, którego używam, ponieważ jest taki sam z domyślnym motywem wordpress i nie jest związany z plikiem wp-config.php, ponieważ dodałem te wiersze: define ('WPLANG', 'xx_XX') ; zdefiniuj ('BPLANG', 'xx_XX'); zdefiniuj ('BBLANG', 'xx_XX'); Próbowałem też zmienić ogólną konfigurację wordpressa> ustawienia->ogólne->data*


title: Moja wtyczka AJAX API nie działa

text: Stworzyłem małą wtyczkę AJAX do liczenia trafień na moje artykuły i omijania buforowania, ale po prostu nie działa i nie wyświetla żadnych błędów. Czy widzisz, co robię źle? <?php add_action('wp_ajax_nopriv_LogHit_callback', 'LogHit_callback'); add_action('wp_ajax_LogHit_callback', 'LogHit_callback'); function HitCount() { ?> <script type="text/javascript"> jQuery(document).ready(function($) { var data = { action: 'LogHit_callback', PostId:'<?php echo get_the_ID() ? >' }; jQuery.post('http://www.test.com/wp-admin/admin-ajax.php', data, function(r) { alert(r); }); </script> < ?php function LogHit_callback() { global $wpdb; // w ten sposób uzyskujesz dostęp do bazy danych $postId = $_POST['PostId']; $hits = get_post_meta((int)$postId, 'hit-counter', true); $hits = $hits + 1; update_post_meta((int)$postId, 'hit-counter', (int)$hits); return $postId; exit; // jest to wymagane do zwrócenia prawidłowego wyniku } } Zapisuje następujący kod w moim HTML, w którym wywołuję funkcję HitCount <script type="text/javascript"> jQuery(document).ready(function($) { var data = { action: 'LogHi t_callback', PostId:'86505' }; jQuery.ajax('http://www.lazygamer.net/wp-admin/admin-ajax.php', data, function(r) { alert(r); }); </script> Wiem, że twarde kodowanie adresu URL do admin-ajax jest złe, ale staram się wykluczyć problemy. jeśli umieszczę alert w wywołaniu ajax, które jest zapisane w html, to działa, więc wiem, że jest wywoływane. Ale drugi alert w pliku wtyczki nigdy nie zostanie wywołany?


title: page.php – is_front_page NIE DZIAŁA

text:
Próbuję kierować moją stronę docelową za pomocą is_front_page lub is_home w moim pliku page.php, ale to nie działa. Ustawiłem ustawienia > czytanie na stronę statyczną. Jednak jeśli stworzę page-home.php wszystko działa dobrze (bez tagów oczywiście). Ale jeśli użyję is_front_page lub is_home w pliku indeksu, będą działać (na moim blogu). Czy po prostu źle rozumiem ich funkcję, a jeśli tak, to w jaki sposób mogę dynamicznie kierować stronę docelową? Dziękuję. <?php get_header(); ?> <?php if ( is_front_page() || is_home() ) : ?>
Czemu nie???
 <?php endif; ?>
 <artykuł> <?php get_template_part( 'pętla', 'strona' ); ?>
  <?php get_sidebar(); ?>
 <?php comments_template(); ?> <?php get_footer(); ?>


title: Jak wyświetlić najczęściej oglądany post na moim pasku bocznym?

text: Hej, chciałem wyświetlić 5 najpopularniejszych postów według liczby wyświetleń na moim pasku bocznym, ale nie chcę używać wtyczki, chcę funkcji php, aby móc ją edytować ręcznie, np. Dodając miniatury obok tytułu, dowolne Pomysł, gdzie mogę znaleźć ten kod


title: Pasek administratora WP tylko na niektórych stronach

text:
Próbuję stworzyć swój pierwszy motyw wp. Do tej pory było to całkiem miłe doświadczenie, ale teraz mam problem, którego nie do końca rozumiem. Pasek administratora wyświetla się tylko na niektórych moich stronach, na innych pokazuje tylko biały (właściwie przezroczysty). Np. na stronie głównej jest przezroczysta (jak gdyby było na nią puste miejsce), ale jeśli kliknę link do strony "O nas", pojawi się pasek administratora na tej stronie. Właściwie jest to przejrzyste na prawie WSZYSTKICH stronach, z wyjątkiem O nas. Co sprawdziłem i wypróbowałem: mam wybrany „pokaż pasek narzędzi podczas przeglądania witryny”. w header.php mam wp_head(); w footer.php mam wp_footer(); próbowałem zmusić go do wyświetlenia przez dodanie do functions.php add_filter( 'show_admin_bar', '__return_true' ); ale to nie ma znaczenia. próbowałem również zakomentować wszystkie css: bez zmian (oczywiście do paska!) próbowałem usunąć niestandardowe skrypty js: również bez zmian. spojrzałem na kod, ale nie znalazłem żadnych brakujących elementów (takich jak '' lub ; lub >) Kiedy widzę pasek (na stronie O nas) i klikam prawym przyciskiem myszy > Sprawdź element, wszystko wydaje się w porządku. Ale na stronach, na których jest tylko puste miejsce i robię to samo, widzę, że brakuje kilku rzeczy tuż przed: * wpadminbarem * kilkoma skryptami Jakieś pomysły? Jeśli potrzebujesz więcej informacji, daj mi znać, czego potrzebujesz. Może brakuje mi czegoś bardzo prostego i mam nadzieję, że ktoś będzie w stanie mi pomóc. DZIĘKUJĘ! oto mój index.php: <?php get_header(); ?> <?php get_sidebar(); ?>
 <główny id="główny" class="główny-strony" role="główny"> <?php if ( have_posts() ) : ?> < ?php /* Uruchom pętlę */ ?> <?php while ( have_posts() ): the_post(); ?> <?php /* Dołącz szablon specyficzny dla Post-Format dla treści. * Jeśli chcesz to zmienić w motywie potomnym, dołącz plik * o nazwie content-___.php (gdzie ___ to nazwa formatu postu), który będzie używany zamiast tego. */ get_template_part( 'treść', get_post_format() ); ?> <?php koniec; ?> <?php _S_paging_nav(); ?> <?php else : ?> <?php get_template_part( 'treść', 'brak'); ?> <?php endif; ?>
 <?php get_footer(); ?> i moja strona.php <?php get_header(); ?> <?php get_sidebar(); ?>
 <główny id="główny" class="główny-witryny" role="główny"> <?php while ( have_posts() ) : the_post() ; ?> <?php get_template_part( 'treść', 'strona' ); ?> <?php // Jeśli komentarze są otwarte lub mamy co najmniej jeden komentarz, załaduj szablon komentarza if ( comments_open() || '0' != get_comments_number() ) : comments_template(); endif; ?> <?php koniec; // koniec pętli. ?>
 <?php get_footer(); ?> i footer.php

 <?php do_action( '_S_credits' ); ?> <?php printf( __( 'Dumnie wspierany przez %s', '_S' ), 'WordPress' ); ?>  |  <?php printf( __( 'Motyw: %1$s przez %2$s.', '_S' ), 'SEEMPLE', 'LUISPATO' ); ?>

 <?php wp_footer(); ?>


title: Czy możliwe są hierarchie taksonomii?

text: Sposób, w jaki WordPress obsługuje taksonomie i terminy, nie jest wystarczająco niezawodny dla użytkowników projektu, nad którym obecnie pracuję. Oto przykład, którego potrzebuję: mam taksonomię „Konferencja”, taksonomię „Podziały” i taksonomię „Zespoły”. Potrzebuję, aby Dywizje były dzieckiem Konferencji, a Zespoły, aby były dzieckiem Dywizji. Hierarchia wyglądałaby więc następująco: Konferencja: NFC >Dywizje: Wschód >>Drużyny: Giganci Czy ktoś już to robił? Każda pomoc jest doceniana. Dziękuję.


title: Usuń wp-caption, ale nadal pokazuj obraz

text: Używam wp-caption od tak dawna, ale dla szablonu, nad którym pracuję, chcę usunąć ten tag i wyświetlać tylko obraz, użyłem display:none; funkcja ale nie pokazuje obrazu , jakaś pomoc ?


title: Jak umieścić wybraną opcję w kasie jigoshop?

text: Czy robię właściwą rzecz, chłopaki? Proszę pomóż mi. Chcę, aby w adresie rozliczeniowym wpisać czas wysyłki. Pomóż mi proszę. Dzięki array( 'type' => 'select', 'name' =>'shipping-timing[]', 'label' => **('Czas wysyłki', 'jigoshop'), 'class' => array( 'form-row-first'), 'wartość opcji' =>** ('10-13:00', '14:00-18:00','18-21-21')),


title: Brak term_id i term_taxonomy_id podczas dodawania terminu za pomocą funkcji wp_insert_term()

text:
Sprawdź linię; list($term_id,$taxonomy_id) = $wynik w poniższym fragmencie kodu. (w kierunku dołu). Dlaczego brakuje mi term_id i $taxonomy_id, gdy powtarzam ich wartości? Czy nie powinny być wypełnione przez wp_insert im? ` $term_name = 'Bez kategorii'; $term_slug = sanitize_title('Bez kategorii', 'Domyślny ślimak kategorii'); $term_taxonomy = 'kategoria'; $term_description = $term_slug . " opis tutaj... "; $term_parentID = 0; if ( is_term( $term_name , $term_taksonomia ) ): echo "ten termin istnieje!"; umierać; else: //echo "Te warunki nie istnieją!"; //echo "
"; //globalne $wp_taksonomie; //print_r ($wp_taksonomie); //echo "
"; if (taxonomy_exists($term_taxonomy)): //wstaw termin do wp_terms $args = array( 'description' => $term_description, 'slug' => $term_slug, 'parent' => $term_parentID ); $ wynik = wp_insert_term($nazwa_termu, $termin_taksonomia, $argumenty); if ( is_wp_error ( $ wynik ) ): $ ciąg_błędu = $ wynik-> get_error_message(); echo '

' . $ciąg_błędu . '

'; else: list($term_id,$taxonomy_id) = $wynik; echo "
Termin {$term_name} w ramach taksonomii {$term_taxonomy} został dodany do tabel wp_terms & wp_term_taxonomy. Identyfikator to {$term_id}, a powiązany identyfikator taksonomii to {$term_taxonomy_id}."; //outputs as Termin Uncategorized w ramach taksonomii kategorii został dodany do tabel wp_terms i wp_term_taxonomy. Identyfikator terminu to i powiązany identyfikator taksonomii to . endif; else: echo "
{$term_taxonomy} nie istnieje. Nie możemy dodać tego $term. Użyj funkcji register_taxonomy, aby zarejestrować tę taksonomię. "; endif; endif; `


title: Załaduj inny motyw dla IE mniej niż 9

text: Chcę załadować inny motyw dla tych użytkowników, którzy nadal używają IE 6 - 7 - i 8 dowolnej wtyczki lub kodu?


title: Niestandardowy typ postu / taksonomia i konflikt przepisywania stron daje 404

text: Założyłem CPT o nazwie „pytanie”. W tym CPT używam niestandardowej taksonomii zwanej „zawód”, składającej się z terminów takich jak „lekarz” i „hydraulik”. Pracuję również ze stronami standardowymi. Rejestrując taksonomię w functions.php używam rewrite: 'rewrite' => array( 'slug' => '%profession%', 'with_front' => false ), Ponadto stworzyłem tę funkcję w functions.php : add_filter('post_type_link', 'profession_permalink', 10, 3); function profession_permalink($permalink, $post_id, $leavename) { if (strpos($permalink, '%profession%') === FALSE) return $permalink; // Pobierz post $post = get_post($post_id); if (!$post) return $permalink; // Pobierz terminy taksonomii $terms = wp_get_object_terms($post->ID, 'zawód'); if (!is_wp_error($terms) && !empty($terms) && is_object($terms[1])) $taxonomy_slug = $terms[1]->slug; else $taxonomy_slug = 'nieznane'; return str_replace('%profession%', $taxonomy_slug, $permalink); } Na koniec przepiszę adres URL, dodając następujące wiersze w functions.php: global $wp_rewrite; $wp_rewrite->add_rewrite_tag('%profession%', '(.+?/)?', 'zawód='); Adres URL http://domain.com/profession/doctor działa poprawnie. Ale kiedy odwiedzam jedną z moich stron, otrzymuję błąd 404. Kiedy używam wtyczki Monkeyman Rewrite Analyzer, otrzymuję następujące wyniki: Pattern - ([^/]+)/([^/]+)(/[0-9]+)?/?$ Replacement - zawód: o firmie, pytanie: firma, strona: [puste pole] Wzorzec - (.?.+?)(/[0-9]+)?/?$ Zamiennik - nazwa strony: o firmie/firma, strona: [puste pole] Wzorzec - [^/]+/([^/]+)/?$ Zamiennik - załącznik: firma Oczywiście jest konflikt. Nie powinno tam być pierwszej zasady. Zacząłem więc eksperymentować i próbowałem rozwiązać problem, dodając $wp_rewrite->flush_rules() do functions.php. Strony stają się teraz dostępne, ale tym razem CPT (http://domain.com/profession/doctor) wyświetla błąd 404. Co muszę zrobić, aby uniknąć tego konfliktu?


title: Strona statyczna przekierowuje do Frontpage

text: Istnieje statyczna strona o nazwie `pcmuskel.de/ratgeber`. Próba uzyskania dostępu do tego adresu URL, wordpress przekierowuje mnie na stronę główną. Miałem wcześniej skonfigurowaną tę stronę jako stronę główną, ale nie działała. Zamiast tego na pierwszej stronie pojawiły się ostatnie artykuły. Jak ustawić stronę statyczną jako stronę główną? Wystąpił błąd lub bug bo ustawiłem to w ustawieniach i nie działało jak opisano. Ale pozycja menu strony statycznej staje się aktywna na stronie głównej.


title: Przypisz kategorię według użytkownika i dostosuj stronę edit-tags.php?taxonomy=category

text: Od wielu dni szukam bez powodzenia... Oto mój cel: - przypisanie kategorii najwyższego poziomu przez użytkownika (tak zrobiłem) - niech każdy użytkownik tworzy kategorie podrzędne tylko w przypisanej mu kategorii (to muszę zrób) Na przykład: - kategoria-1 > użytkownik-1 - kategoria-2 > użytkownik-2 WIĘC użytkownik-2 może tworzyć tylko podkategorię w kategorii-2... Na koniec to tak, jakby pozostawić użytkownikom "zarządzanie_kategoriami" możliwości, ale zmodyfikowanie go tak, aby użytkownik tworzył kategorie tylko we własnej przypisanej kategorii nadrzędnej. A tak przy okazji nie widząc innych kategorii najwyższego poziomu na stronie listy kategorii (edit-tag.php). Tutaj chciałbym dostosować stronę edit-tags.php?taxonomy=category w zależności od użytkownika, który ją widzi... Dziękuję za poświęcony czas i porady. Dawid


title: get_posts nie może pobrać z określonej kategorii

text: Używam get_posts, aby pobrać listę postów z niestandardowego post_type. Chcę również, aby lista była ograniczona do określonej kategorii. Spróbowałem więc: $postslist = get_posts('order=ASC&orderby=date&posts_per_page=4&post_type=tribe_events&category_name=Gudauri'); To nic nie wyświetla, jeśli usunę category_name=Gudauri, wyświetli listę wszystkich postów z niestandardowych postów typu tribe_events. Co ja robię źle? Próbowałem też category=id, ale bez powodzenia!


title: Ustaw niestandardową liczbę postów na pierwszej stronie

text: Muszę ograniczyć posty wyświetlane na pierwszej stronie WordPressa tylko na pierwszej stronie. Powodem tego jest lepki post, który łamie mój układ i liczbę wszystkich wpisów ustawionych w domyślnych ustawieniach WP. Znalazłem tę funkcję dla `functions.php`, ale wygląda na to, że nie działa. Czy możesz mi pomóc to naprawić? Wolę zmianę `functions.php`. Zastanawiam się, czy to nie działa, ponieważ post z tym fragmentem jest naprawdę nowy. add_action( 'pre_get_posts', 'sk_change_posts_per_page' ); /** * Zmień posty na stronę dla pierwszej strony strony Posty * * @param object $query data */ function sk_change_posts_per_page( $query ) { if( $query->is_main_query() && ! is_admin() && is_home() && is_paged() ) { $query->set( 'posts_per_page', '2' ); }          }      Źródło


title: Podłącz do istniejącego przycisku tinyMCE

text: Czy istnieje sposób na podpięcie się pod istniejący przycisk edytora tinyMCE? Mam wtyczkę, która obecnie ma przycisk w edytorze i pokazuje wyskakujące okienko po kliknięciu. To pudełko ma wewnątrz zakładki. Chciałbym móc stworzyć inną wtyczkę, ale sprawdź, czy przycisk już istnieje, jeśli istnieje, to chciałbym, aby ta druga wtyczka dodała kolejną zakładkę w tym wyskakującym okienku. Czy jest zaczep w wordpressie lub tinyMCE, który pozwoliłby mi podpiąć się pod ten przycisk? Dziękuję


title: Co mogę podłączyć do after_setup_theme?

text: Zastanawiam się, co mogę lub NIE powinienem podpiąć do `after_setup_theme`? Zastanawiam się, ponieważ powiedziano mi, że nie powinienem podpinać do niego `wp_enqueue_style`, ale widziałem inne miejsca używające go do podpinania `wp_enqueue_script` tutaj: http://justintadlock.com/archives/2010/12/ 30/wordpress-theme-function-files Z tego, co rozumiem, jest to tylko coś, co jest zależne od motywu, więc jesteś zdezorientowany, dlaczego nie powinienem używać w nim `wp_enqueue_style`? Czy mogę tam też wrzucać takie rzeczy? add_action('get_header', 'enable_threaded_comments'); add_action('widgets_init', 'unregister_default_wp_widgets', 1); remove_action ('wp_head', 'rsd_link'); Dziękuję!


title: Jak zapobiec pierwszemu postowi i pierwszemu komentarzowi na WP MU?

text: Gdy użytkownik tworzy nowego bloga, jednocześnie tworzony jest nowy post i nowy komentarz. Czy istnieje sposób, aby to wyłączyć?


title: Wtyczka do zarządzania wydarzeniami?

text: Mam klienta, który chce zorganizować imprezę. Chce nim zarządzać na swojej stronie. Wymagania: * Wyświetlaj informacje o wydarzeniu * Sprzedawaj bilety i skoreluj z imieniem i adresem e-mail * Płatność za bilety przez PayPal * Pozwala na anulowanie / zwrot, jeśli wystąpią * Może to być wydarzenie cykliczne, więc pozwól ludziom zapisać się na przyszłość wydarzenia Coś takiego istnieje?


title: Niestandardowa pętla typu post w Shortcode

text: Naprawdę nie wiem, dlaczego to nie działa: używam shortcode do wyświetlania zapytania na niestandardowym typie postu + taksonomii, to jest jego segment: // - argumenty - $args = array( ' post_type' => 'customposttypename', 'taxonomyname' => 'alpha', 'post_status' => 'opublikuj', ); // - zapytanie - $moje_zapytanie = null; $my_query = nowe WP_query($args); while ($my_query->have_posts()) : $my_query->the_post(); // - zmienne - $custom = get_post_custom($post->ID); ... a potem zmienne idą dalej. Chodzi o to, że kiedy uruchamiam pętlę, pokazuje mi ona całą domyślną treść posta (tj. Tytuł, treść itp.), Ale odmawia pokazania niestandardowej zawartości typu posta i zatrzymuje się w ostatniej linii powyżej (linia 145), np. `$custom = get_post_custom($post->ID);` dając mi następujący błąd.. > Uwaga: Niezdefiniowana zmienna: post w C:\xampplite...\functions.php on-line > 145 > > Uwaga: Próba aby uzyskać własność non-object w > C:\xampplite...\functions.php w wierszu 145 > > Następnie na dole pokazuje mi tytuł, treść itp. normalnie (tylko bez niestandardowego > treść typu post) Każdy ma wskazówka, co robię źle? Dziękuję Ci!


title: Jak usunąć aktualny post z zapytania?

text:
W poniższej funkcji próbuję usunąć bieżący post z pętli wyjściowej (ponieważ jest to lista „powiązanych” postów). Jednak gdy próbuję przekazać bieżący wpis $post->ID do parametru "post__not_in", rozpętuje się piekło. Ostrzeżenie: array_map() [function.array-map]: Argument #2 powinien być tablicą w C:\xampplite\htdocs\theteareport\wp-includes\query.php w wierszu 1826 Ostrzeżenie: implode() [function.implode] : Nieprawidłowe argumenty przekazane w C:\xampplite\htdocs\theteareport\wp-includes\query.php w wierszu 1826 Ostrzeżenie: array_diff() [function.array-diff]: Argument #2 nie jest tablicą w C:\xampplite\ htdocs\theteareport\wp-includes\query.php w wierszu 2496 Jaka jest właściwa metoda? //pobierz powiązane posty według funkcji kategorii ce4_get_related_by_category() { global $post; $cat = implode(',',get_cats()); $catHidden=get_cat_ID('ukryty'); $myqueryCurrent = nowe WP_Query(); //$myqueryCurrent->query(array('cat' => "$cat,-$catHidden",'post__not_in' => get_option('sticky_posts'))); $myqueryCurrent->query(array('cat' => "$cat,-$catHidden",'post__not_in' => $post->ID)); $totalpostcount = $myqueryCurrent->found_posts; if($totalpostcount > 0) { echo "
"; $myposts = get_posts(array('cat' => "$cat,-$catHidden",'numberposts' => $cb2_current_count)); foreach($myposts as $idx=>$post) { ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?><?php the_excerpt(); ?>
 <?php } echo "
"; } }


title: Szyfrować e-maile?

text: Musimy zachować zgodność z HIPPA dla formularzy w naszej witrynie, które są obecnie wysyłane na wewnętrzny adres e-mail. Podczas gdy użytkownik/klienci dostarczają informacje przez HTTPS, nadal chcemy mieć pewność, że zachowujemy zgodność... Czy istnieją wtyczki zapewniające, że wiadomości e-mail wysyłane z aplikacji Wordpress do odbiorcy są szyfrowane? Zasadniczo chcę mieć pewność, że dane są zabezpieczone od momentu, gdy klient przekaże nam dane, do momentu ich przybycia na nasz zaszyfrowany serwer pocztowy. ## Aktualizacja zgodności z HIPPA > **Zastrzeżenie**: Nie jestem prawnikiem ani urzędnikiem ds. zgodności. To, co > następuje, to moja interpretacja zasad i praw i może nie być > dokładna. Zachęcam Cię do wyczerpania zasobów, aby upewnić się, że > Twoja organizacja spełnia wszystkie wymogi zgodności, tam gdzie ma to zastosowanie przez > prawo lub moralność. * HIPPA FAQ Strona na e-mail * Wymagania HIPAA Security Rule w 45 C.F.R. Część 164, podczęść C Po szybkim zapoznaniu się z powyższymi 2 linkami, wydaje się, że należy po prostu spróbować zapewnić wszystkie możliwe i odpowiednie zabezpieczenia. Jeśli dane mogą być zaszyfrowane, to powinno. Oczekuję dalszych wskazówek od specjalisty ds. zgodności, aby upewnić się, że robimy wszystko, co możliwe, aby bezpiecznie przekazywać dane klientów naszym pracownikom.


title: Przenoszenie wordpress multi do innej domeny i vhosta - brak możliwości logowania i problemów z menu

text: Próbuję przenieść instalację Wordpress Multi na inny vhost na tym samym serwerze i w innej domenie. Obecnie testujemy proces, kopiując wszystko na nowy vhost, z nową bazą danych, aby wypróbować proces przed przeniesieniem witryn produkcyjnych. Mogę odwiedzić nową domenę i zobaczyć przeniesione witryny. Linki wewnętrzne zostały zaktualizowane i korzystają z nowej domeny. Niestety wszystkie linki w menu wskazują na starą domenę i nie mogę znaleźć żadnego odniesienia do tej domeny w bazie danych. Nie mogę też zalogować się do wordpressa. Wchodzę na http://nowadomena/wp-login.php i loguję się jako administrator. Zostałem przekierowany i zalogowany do panelu na olddomain.com. Procedura: 1. Wykonaj zrzut mysql bieżącej witryny 2. Utwórz nową bazę danych, dbuser 3. zaimportuj zrzut mysql do nowej bazy danych 4. skopiuj cały vhost z instalacją wordpress na nowy host wirtualny 5. zaktualizuj wp-config o nową nazwę bazy danych, dbuser, hasło i siteurl 6. przeszukałem wszystkie pliki w vhost (pliki tematyczne, wszystko) w poszukiwaniu starej domeny i zastąpiono nową domeną 7. utwórz wpis apache dla witryny 8. zaktualizowano pola w wp_(x)_posts, wp_site , wp_blogs, wp_sitemeta 9. podczas aktualizacji pól w powyższej bazie danych nadal nie rozwiązał problemu * Użyto narzędzia wyszukiwania i zamiany (http://interconnectit.com/124/search-and-replace-for-wordpress-databases/ ) zalecany przez kodeks (http://codex.wordpress.org/Moving_WordPress#Moving_WordPress_Multisite) * przeszukałem zrzut całej bazy danych i nadal nie udało mi się znaleźć odniesienia do starego adresu URL, który próbowałem zgodnie ze znalezioną dokumentacją i żaden z nich wydawało się, że rozwiązało moje problemy: - http://codex.wordpr ess.org/Moving_WordPress#Moving_WordPress_Multisite - http://interconnectit.com/124/search-and-replace-for-wordpress-databases/ - http://tech.ipstenu.org/2012/moving-wordpress-multisite/ Dowolny sugestie byłyby bardzo mile widziane.


title: Jak usunąć element link z bieżącej strony w menu wp_list_pages?

text: WP tworzy listę linków i pomocnie stosuje klasę current_page, ale jestem zaniepokojony problemami z dostępnością linku do strony, na której się znajdujesz. Normalnie zamieniłbym `<a href` itp. na `<span`. Jak podszedłbyś do tego z WordPressem? (oprócz ręcznego tworzenia listy stron!)


title: Jak dodać funkcję eksportu do niestandardowej strony motywu opcji

text: Tworzę nowy szablon Wordpress i mam pytanie: dodałem niestandardową Stronę Opcji do mojego nowego szablonu (możesz zobaczyć co robię Tu i Tutaj), ale teraz chciałbym dodać nową funkcję. Czy znasz formularz kontaktowy Si? W tej wtyczce użytkownik końcowy może pobrać kopię zapasową wszystkich ustawień i przesłać ją na inną stronę internetową. Chciałbym móc dodać tę samą funkcję do mojej nowej strony opcji. Wiem, jak wykonać kopię zapasową moich ustawień, logując się do phpMyAdmin, ale czasami użytkownik końcowy nie może zalogować się do phpMyAdmina lub po prostu lepiej nie logować się do phpMyAdmina :-). Masz jakieś rozwiązanie tego problemu? Właściwie wszystkie moje niestandardowe funkcje noszą nazwy: 'appaqua__zona1c';'appaqua__zona1x' i tak dalej... moja skrócona nazwa motywu to appaqua. Proszę uprzejmie ze mną, nie jestem profesjonalnym programistą i bardzo przepraszam, jeśli użyłem niewłaściwych słów, aby wyjaśnić, czego potrzebuję. Bardzo dziękuję wszystkim!


title: Jak możesz sprawdzić, czy jesteś na określonej stronie w sekcji WP Admin? Na przykład, jak mogę sprawdzić, czy jestem na stronie Użytkownicy > Twój profil?

text: Buduję wtyczkę i chcę dodać fragmenty javascriptu w głowie administratora, ale tylko dla niektórych stron administracyjnych. Nie mam na myśli stron takich jak na WordPressie, które tworzysz samodzielnie, ale raczej istniejące strony sekcji administracyjnych, takie jak „Twój profil”, „Użytkownicy” itp. Czy istnieje funkcja wp specjalnie do tego zadania? Szukałem i mogę znaleźć tylko funkcję logiczną `is_admin` i hooki akcji, ale nie funkcję logiczną, która tylko sprawdza.


title: Włącz wersje dla niestandardowego typu postu

text: Utworzyłem niestandardowy typ posta i go zarejestrowałem. Czy ktoś może mi pomóc, jak włączyć poprawki typu Custom Post?


title: stwórz kategorię opartą na permalinku lub postu na stronie

text: Na mojej stronie mam dwie kategorie językowe, angielski i indonezyjski. Jak mogę utworzyć post lub stronę z permalinkiem w oparciu o slug kategorii, taki jak: > example.com/pl/strona > example.com/id/strona lub > example.com/pl/post > example.com/id/post


title: Pogrubione litery wewnątrz fragmentu

text: Obecnie staram się, aby niektóre słowa zawarte we fragmencie były pogrubione ze znacznikiem „h1”, ale wydaje się, że to nie działa. Kiedy sprawdziłem online, wszystko, co spotkałem, to sugestia użycia wtyczki. Czy istnieje sposób na osiągnięcie tego bez wtyczki. Mój CSS wygląda tak, jak pokazano poniżej. .side-bar h1 { font-weight: bold!ważne; }


title: Wykrywasz adres URL WordPress bez wykonywania pełnego GET HTTP?

text: Staram się napisać rutynę oneboxingową, która w szczególny sposób traktuje wpisy na blogu WordPress. Tak więc biorąc pod uwagę prosty, nieozdobiony adres URL w treści, taki jak > http://blog.stackoverflow.com/2011/03/a-nowa-nazwa-dla-przepełnienia-stosu->niespodzianka-zakończenie/ Jak mam wykryć że jest to instalacja WordPress, **idealnie bez wykonywania pełnego GET HTTP dla każdego adresu URL, który widzę?** Z pewnością istnieją wspólne _konwencje_ dla adresów URL WordPress, od których moglibyśmy zacząć, co eliminuje przynajmniej niektóre adresy URL z rywalizacji. W tym przypadku jest to ... > http://example.com/rok/miesiąc/slug-idzie-tutaj Ale to też nie jest uniwersalna stała. Próbowałem spojrzeć na nagłówki tego adresu URL za pomocą **HTTP HEAD** i widzę: Connection:Keep-Alive Content-Encoding:gzip Content-Length:18340 Content-Type:text/html; charset=UTF-8 Data:Czw, 07 czerwca 2012 07:07:38 GMT Keep-Alive:timeout=15, max=100 Serwer:Apache/2.2.9 (Ubuntu) DAV/2 PHP/5.2.6-2ubuntu4. 2 z Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8g Vary:Cookie,Accept-Encoding WP-Super-Cache:Served starszy plik pamięci podręcznej X-Pingback:http://blog.stackoverflow.com/xmlrpc.php X -Powered-By:PHP/5.2.6-2ubuntu4.2 Nie sądzę, aby poleganie na obecności `WP-Super-Cache` było szczególnie niezawodne i to jedyna rzecz, którą widzę w nagłówkach, która pomogłaby, więc może w instalacji WordPressa nie ma typowych nagłówków HTTP?


title: Stwórz strukturę permalink z niestandardowymi taksonomiami i niestandardowymi typami postów daje 404

text: Na podstawie tematu Jak utworzyć strukturę permalinku z niestandardowymi taksonomiami i niestandardowymi typami postów, takimi jak base-name/parent-tax/child-tax/custom-post-type-name Mój kod to // zarejestrować nowy typ postu register_post_type( 'vehicles_listing ', array( 'labels' => array( 'name' => __( 'Pojazdy' ), 'singular_name' => __( 'Pojazd' ), 'add_new' => __( 'Dodaj nowy' ), 'add_new_item ' => __( 'Utwórz nowy pojazd' ), 'edit' => __( 'Edytuj' ), 'edit_item' => __( 'Edytuj pojazd' ), 'new_item' => __( 'Nowy pojazd' ), 'view' => __( 'Wyświetl pojazdy' ), 'view_item' => __( 'Wyświetl pojazdy' ), 'search_items' => __( 'Wyszukaj pojazdy' ), 'not_found' => __( 'Nie znaleziono pojazdów ' ), 'not_found_in_trash' => __( 'Nie znaleziono pojazdów w koszu' ), 'rodzic' => __( 'Pojazd rodzicielski' ), ), 'description' => __( 'Tu możesz tworzyć nowe pojazdy na swojej stronie.' ), 'public' => true, 'show_ui' => true, 'capability_type' => 'post', 'publicly_queryable ' => prawda, 'exclude_from_search' => fałsz, 'menu_position' => 2, 'menu_icon' => get_stylesheet_directory_uri() . '/images/tag_orange.png', 'hierarchical' => true, '_builtin' => false, // Jest to niestandardowy typ posta, nie wbudowany! 'rewrite' => array( 'slug' => 'vehicles/%vehicle_cat%', 'with_front' => true ), 'query_var' => true, 'supports' => array( 'title', 'editor', 'autor', 'miniaturka', 'wypis', 'niestandardowe-pola' ), ) ); //zaczep się do akcji init i wywołaj create_book_taxonomies, gdy wywoła add_action( 'init', 'create_vehicle_taxonomies', 0 ); add_action('admin_init', 'flush_rewrite_rules'); //utwórz dwie taksonomie, gatunki i pisarzy dla funkcji typu post "książka" create_vehicle_taxonomies() { // Dodaj nową taksonomię, ustaw ją hierarchicznie (jak kategorie) $labels = array( 'name' => _x( 'Kategorie pojazdów' , 'nazwa ogólna taksonomii' ), 'singular_name' => _x( 'Kategoria pojazdu', 'nazwa osobliwa taksonomii' ), 'search_items' => __( 'Wyszukaj kategorię pojazdu' ), 'all_items' => __( 'Wszystkie Kategorie pojazdów' ), 'parent_item' => __( 'Nadrzędna kategoria pojazdu' ), 'parent_item_colon' => __( 'Nadrzędna kategoria pojazdu:' ), 'edit_item' => __( 'Edytuj kategorię pojazdu'), 'update_item ' => __( 'Zaktualizuj kategorię pojazdu' ), 'add_new_item' => __( 'Dodaj nową kategorię pojazdu' ), 'new_item_name' => __( 'Nazwa nowej kategorii pojazdu' ), 'menu_name' => __( ' Kategorie pojazdów' ), ); register_taxonomy('vehicle_cat',array('vehicles_listing'), array( 'hierarchical' => true, 'labels' => $labels, 'show_ui' => true, 'query_var' => true, //'rewrite' = > true, 'rewrite' => array( 'slug' => 'vehicles', 'with_front' => true, 'hierarchical' => true ), )); } add_action('vehicle_cat_add_form', 'qtrans_modifyTermFormFor'); add_action('vehicle_cat_edit_form', 'qtrans_modifyTermFormFor'); add_filter('rewrite_rules_array', 'mmp_rewrite_rules'); funkcja mmp_rewrite_rules($zasady) { $noweZasady = array(); $newRules['/(.+)/(.+)/?$'] = 'index.php?custom_post_type_name=$matches[3]'; $newRules['/(.+)/?$'] = 'index.php?custom_taxonomy=$matches[1]'; return array_merge($newRules, $rules); } function filter_post_type_link($link, $post) { if ($post->post_type != 'lista_pojazdów') return $link; if ($cats = get_the_terms($post->ID, 'vehicle_cat')) { $link = str_replace('%vehicle_cat%', get_taxonomy_parents(array_pop($cats)->term_id, 'vehicle_cat', false, '/' , prawda), $link); // zobacz zdefiniowaną poniżej funkcję niestandardową } return preg_replace('#/+#', '/', $link); } add_filter('post_type_link', 'filter_post_type_link', 10, 2); // moja własna funkcja, która robi to, co robi get_category_parents dla innych taksonomii funkcja get_taxonomy_parents($id, $taxonomy, $link = false, $separator = '/', $nicename = false, $visited = array()) { $chain = ''; $parent = &get_term($id, $taksonomia); if (is_wp_error ($ nadrzędny)) { return $ nadrzędny; } if ($nicename) $name = $parent -> slug; w przeciwnym razie $nazwa = $rodzic -> nazwa; if ($parent -> parent && ($parent -> parent != $parent -> term_id) && !in_array($parent -> parent, $visited)) { $visited[] = $parent -> parent; $łańcuch .= get_taxonomy_parents($rodzic -> rodzic, $taksonomia, $link, $separator, $ładna nazwa, $odwiedzone); } if ($link) { // nic, nie można uruchomić tego :( } else $chain .= $name. $separator; return $chain; } W wp-admin wyświetla link "http://moja_domena.com/ pojazdy/ciężarówka/man/a4/” Ale generuje prawdziwy link, taki jak „http://mojadomena.com/mojadomena.com/pojazdy/ciężarówka/man/ret/” i „http:/mojadomena.com/pojazdy/ciężarówka/ man/a4/" podaje 404. Co robię źle. Pozdrawiam. **CZĘŚĆ 2.** Mam inny przykład według tego rozwiązania umieszczony w githubie (https://gist.github.com/kasparsd/2924900)/ //////////////////////////////////////////////// //////////////// add_action('init', '_init_recipe_post_type'); function _init_recipe_post_type() { // Tworzenie taksonomii (składniki tj. tagi) // ------- -------------------------------------------------- ---- register_taxonomy( 'recipe_ingredient', array( 'recipe' ), array( 'labels' => array( 'name' => __( 'Składniki' ), 'singular_name' => __( 'Składnik' ), 'search_items' => __( 'Wyszukaj składniki' ), 'popular_items' => __( 'Popularne składniki' ), 'all_items' => __( 'Wszystkie składniki' ), 'edit_item' => __( 'Edytuj składnik' ), 'update_item' => __( 'Aktualizuj składnik' ), 'add_new_item' => __( 'Dodaj nowy składnik ' ), 'new_item_name' => __( 'Nowy składnik' ), ), 'public' => true, 'show_in_nav_menus' => true, 'show_ui' => true, 'publicly_queryable' => true, 'exclude_from_search' = > false, 'hierarchical' => true, 'query_var' => true, // to ustawia URL widoku taksonomii (musi mieć bazę tagów np. /with) // może to być dowolna głębokość, np. jedzenie/gotowanie/przepisy/z 'rewrite' => array( 'slug' => 'recipes', 'with_front' => false ), ) ); // Utwórz taksonomię (kuchnie, tj. kategorie) // --------------------------------------- ----------- register_taxonomy( 'recipe_cuisine', array( 'recipe' ), array( 'labels' => array( 'name' => __ ( 'Kuchnie' ), 'singular_name' => __( 'Kuchnia' ), 'search_items' => __( 'Szukaj kuchni' ), 'popular_items' => __( 'Popularne kuchnie' ), 'all_items' => __ ( 'Wszystkie kuchnie' ), 'parent_item' => __( 'Kuchnia nadrzędna' ), 'parent_item_colon' => __( 'Kuchnia nadrzędna:' ), 'edit_item' => __( 'Edytuj kuchnię' ), 'update_item' => __( 'Zaktualizuj kuchnię' ), 'add_new_item' => __( 'Dodaj nową kuchnię' ), 'new_item_name' => __( 'Nowa kuchnia' ), ), 'public' => true, 'show_in_na v_menus' => true, 'show_ui' => true, 'publicly_queryable' => true, 'exclude_from_search' => false, 'hierarchical' => true, 'query_var' => true, // ustawia URL widoku taksonomii ( musi mieć bazę kategorii np. /type) // może to być dowolna głębokość np. jedzenie/gotowanie/przepisy/type 'rewrite' => array( 'slug' => 'recipes', 'with_front' => false ), ) ); // Utwórz typ posta (przepisy, czyli posty) // -------------------------------------- ----------------------- register_post_type( 'recipe', array( 'capability_type' => 'post', 'hierarchical' => false, 'public' => prawda, 'show_ui' => prawda, 'publicly_queryable' => prawda, 'exclude_from_search' => fałsz, 'menu_position' => 30, 'labels' => array( 'name' => __( 'Recipes' ) , 'singular_name' => __( 'Przepis' ), 'add_new' => __( 'Dodaj nowy' ), 'add_new_item' => __( 'Dodaj nowy przepis' ), 'edit' => __( 'Edytuj przepis ' ), 'edit_item' => __( 'Edytuj przepis' ), 'new_item' => __( 'Nowa receptura' ), 'view' => __( 'Wyświetl przepis' ), 'view_item' => __( ' Zobacz przepis' ), 'morze rch_items' => __( 'Przeszukaj przepis' ), 'not_found' => __( 'Nie znaleziono przepisów' ), 'not_found_in_trash' => __( 'Nie znaleziono przepisów w koszu' ) ), 'has_archive' => true, 'supports' => array('title', 'editor', 'excerpt', 'thumbnail'), 'query_var' => true, // ustawia lokalizację sekcji Przepisy i zawiera tag do wstawienia kuchni w adresie URL poniżej // może to być dowolna głębokość, np. jedzenie/gotowanie/przepisy/%recipe_cuisines% 'rewrite' => array( 'slug' => 'recipes/%recipe_cuisine%', 'with_front' => true,'hierarchical' => true, ), ) ); // Spraw, aby permalinki do przepisów były ładne (dodaj kuchnię do adresu URL) // ----------------------------------- -------------------------- add_filter('post_type_link', 'recipe_permalink_filter_function', 1, 3); function Recipe_permalink_filter_function( $post_link, $id = 0, $leavename = FALSE ) { if ( strpos('%recipe_cuisine%', $post_link) === 'FALSE' ) { return $post_link; } $post = get_post($id); if ( !is_object($post) || $post->post_type != 'recipe' ) { return $post_link; } // to wywołuje termin, który ma zostać dodany do adresu URL $terms = wp_get_object_terms($post->ID, 'recipe_cuisine'); if ( !$terms ) { return str_replace('recipes/%recipe_cuisine%/', '', $post_link); } return str_replace('%recipe_cuisine%', $terms[0]->slug, $post_link); } // ----------------------------------------------- -------------- // NAPRAW - Sprawia, że permalinki działają! // To musi się znaleźć na końcu twojego OSTATNIEGO niestandardowego typu posta // USUŃ po opracowaniu (gdy wszystko działa!) // ----------------------- -------------------------------------- ///flush_rewrite_rules(); // ------------------------------------------------ ------------- } Wszystko wygląda dobrze, ale "Błąd 404 - nie znaleziono strony" pozostaje. Pomóż zrozumieć, jak rozwiązać ten problem. Pozdrawiam wszystkich, którzy czytają i odpowiadają.


title: Jak załadować plik php dla określonej strony w admin?

text:
Witam i dziękuję za wskazówki! Próbuję załadować niestandardowy plik .php tylko dla mojej strony głównej (szablon to **page-home.php** ) za pomocą tego kodu: add_action('admin_init','load_home_meta'); funkcja load_home_meta() { global $pagenow, $post; if ($pagenow=='edit.php' && '104' == $post->ID) { include 'metaboxes/home-meta.php'; } } Unikalny identyfikator strony to _104_. Potrzebuję tego do działania tylko na stronie głównej, ponieważ jednorazowa kontrola w pliku php przerywa możliwość zapisywania innych stron, które nie używają tych niestandardowych pól meta. Dziękuję! ## Wypróbuj dwa: Wypróbowałem to: add_action('admin_init','load_home_meta'); function load_home_meta() { // Pobierz identyfikator posta if( isset( $_GET['post'] ) ) $post_id = $_GET['post']; elseif( isset( $_POST['post_ID'] ) ) $post_id = $_POST['post_ID']; if( !isset( $post_id ) ) return; // Pobierz szablon strony $template_file = get_post_meta( $post_id, '_wp_page_template', prawda ); if($template_file == 'page-main-home.php'){ include '/metaboxes/home-main-home.php'; } } I wydaje się, że częściowo działa, ponieważ otrzymuję ten błąd na stronie edycji w sekcji administratora: > Ostrzeżenie: include(/metaboxes/home-main-home.php) [function.include]: nie powiodło się > otworzyć stream: Brak takiego pliku lub katalogu > > Ostrzeżenie: include() [function.include]: Nieudane otwarcie '/metaboxes/home-main- > home.php' do włączenia (include_path='.:/usr/local/php- 5.3.15/share/pear') Dlaczego włączanie miałoby działać z prostym: `include 'metaboxes/home-main-home.php';` ? Próbowałem również powyższego kodu z początkowym ukośnikiem i bez, zarówno generując brakujący / niemożliwy do znalezienia błąd pliku. * * * ## Wypróbuj trzy: Poprawiono błąd literówki w szablonie i nie otrzymuję już tego pliku: add_action('admin_init','load_home_meta'); function load_home_meta() { // Pobierz identyfikator posta if( isset( $_GET['post'] ) )$post_id = $_GET['post']; elseif( isset( $_POST['post_ID'] ) ) $post_id = $_POST['post_ID']; if( !isset( $post_id ) ) return; // Pobierz szablon strony $template_file = get_post_meta( $post_id, '_wp_page_template', true ); if($template_file == 'strona-główna-dom.php'){ include (ścieżka_szablonu . '/metaboxes/home-meta.php'); } } Ale teraz w każdym meta-box otrzymuję te błędy: > Ostrzeżenie: Nieprawidłowy argument podany dla foreach() w > /nfs/c07/h04/mnt/111667/domains/staging.[site_name].org/html /wp- > content/themes/[nazwa_motywu]/metaboxes/home-meta.php w wierszu 184 Ale kiedy to skomentuję i po prostu zrobię proste: dołącz 'metaboxes/home-meta.php'; Strona zaplecza renderuje się dobrze... Nie pamiętam, co robię niepoprawnie. * * * ## Wypróbuj cztery: Więc wszystkie powyższe nadal nie działają. Ponownie próbuję: 1. Ukryć edytor na określonej stronie w zapleczu administracyjnym 2. Uwzględnić niestandardowe pola za pomocą metaboksów tylkoy strona główna (pierwsza). 3. Podawaj tylko plik home-meta.php na stronie głównej i żadnych innych stron/postów. `functions.php`: /** * Ukryj edytor * @author Bill Erickson * @link http://www.bilerickson.net/code/hide-editor-on-specific-page-template/ */ add_action( 'admin_init ', 'ukryj_edytor' ); function hide_editor() { // Pobierz identyfikator posta if( isset( $_GET['post'] ) ) $post_id = $_GET['post']; elseif( isset( $_POST['post_ID'] ) ) $post_id = $_POST['post_ID']; if( !isset( $post_id ) ) return; // Pobierz szablon strony $template_file = get_post_meta( $post_id, '_wp_page_template', true ); if($template_file == 'front-page.php'){ remove_post_type_support('strona', 'edytor'); // dodaj niestandardowy .js do stopki, aby przesłać obrazy function custom_admin_js() { $url = get_opcja('siteurl'); $url = get_bloginfo('katalog_szablonu') . '/biblioteka/js/libs/meta-content.js'; echo '""'; } add_action('admin_footer', 'custom_admin_js'); // dołącz 'metaboxes/home-meta.php'; } } // Ładowanie kodu meta pola strony głównej z zewnętrznego pliku .php add_action( 'add_meta_boxes_page','load_home_meta' ); funkcja load_home_meta() { global $post; if ( $post->ID == get_option( 'strona_na_front' ) ) { include( get_template_directory_uri() . '/metaboxes/home-main-home.php' ); } } Zmieniłem mój poprzedni plik szablonu domowego na rozpoznawalny przez WordPressa `front-page.php`, ponieważ próbuję wskazać stronę główną (frontową). `home-meta.php` (znajduje się w metaboksach w moim folderze motywu) <?php/** * Niestandardowa zawartość meta strony głównej * **/ function add_home_meta_box() { add_meta_box( 'home_meta_box', // $id 'Zawartość strony głównej', // $title 'show_home_meta_box', // $callback 'strona', // $strona 'normalna', // $context 'wysoka'); // $priority add_meta_box( 'home_meta_box_lower_1', // $id 'Home dolny lewy', // $title 'show_home_meta_box_lower_left', // $callback 'page', // $page 'normal', // $context 'high '); // $priority add_meta_box( 'home_meta_box_lower_2', // $id 'Home Lower Center', // $title 'show_home_meta_box_lower_center', // $callback 'page', // $page 'normal', // $context 'high ');// $priority add_meta_box( 'home_meta_box_lower_3', // $id 'Home na dole po prawej', // $title 'show_home_meta_box_lower_right', // $callback 'page', // $page 'normal', // $context 'high '); // $priority } add_action('add_meta_boxes', 'add_home_meta_box'); // Tworzenie tablicy dla pól $prefix = 'home_'; $home_meta_fields = array( array( 'label' => 'Tytuł podpisu', 'desc' => 'Tytuł podpisu H2 górnej części.', 'id' => $prefix.'title', 'type' => 'text ' ), array( 'label' => 'Tytuł podpisu', 'desc' => 'Tytuł podpisu H3 górnej sekcji.', 'id' => $prefix.'sub_title', 'type' => 'text' ), array( 'label'=> 'Podpis','desc' => 'Blok tekstu podpisu.', 'id' => $prefix.'caption', 'type' => 'textarea' ), array( 'label' => 'Obrazek podpisu', 'desc' = > 'Prześlij wstępnie przycięty obraz zoptymalizowany pod kątem internetu o szerokości 1140 pikseli i wysokości 530 pikseli', 'id' => $prefix.'image', 'type' => 'image' ) );// tablica napisów końcowych $prefix2 = 'dom_dolny_lewy_'; $home_meta_fields_lower_left = array( array( 'label' => 'Tytuł kolumny', 'desc' => 'Tytuł H2 dla kolumny.', 'id' => $prefix2.'title', 'type' => 'text' ), array( 'label' => 'Obraz w kolumnie', 'desc' => 'Prześlij wstępnie przycięty obraz zoptymalizowany do internetu o szerokości 360 i wysokości 300 pikseli', 'id' => $prefix2.'image', ' wpisz' => 'obraz' ),array( 'label' => 'Podtytuł kolumny', 'desc' => 'Podtytuł H3 nad blokiem tekstu.', 'id' => $prefix2.'sub_title', 'type' => 'text' ), array( 'label'=> 'Blok tekstu', 'desc' => 'Blok tekstu podpisu.', 'id' => $prefix2.'caption', 'type' => 'textarea' ), array( 'label' => 'Etykieta przycisku', 'desc' => 'Etykieta linku do przycisku (co użytkownik czyta na przycisku).', 'id' => $prefix2.'btn_label', 'type' => 'text' ) , array( 'label' => 'Tytuł przycisku', 'desc' => 'Najechanie i tekst SEO.', 'id' => $prefix2.'btn_title_tag', 'type' => 'text' ), array( 'label' => 'URL przycisku', 'desc' => 'URL, do którego prowadzi link przycisku. Wpisz http://, aby działać.', 'id' => $prefix2.'btn_url', 'type' => 'text' ) );// end dolna lewa tablica $prefix3 = 'home_lower_center_'; $home_meta_fields_lower_center = array( array( 'label' => 'Tytuł kolumny', 'desc' => 'Tytuł H2 dla kolumny.', 'id' => $prefix3.'title', 'type' => 'text' ), array( 'label' => 'Obraz w kolumnie', 'desc' => 'Prześlij wstępnie przycięty obraz zoptymalizowany do internetu o szerokości 360 i wysokości 300 pikseli', 'id' => $prefix3.'image', ' type' => 'image' ), array( 'label' => 'Podtytuł kolumny', 'desc' => 'Podtytuł H3 nad blokiem tekstu.', 'id' => $prefix3.'sub_title' , 'type' => 'text' ), array( 'label'=> 'Blok tekstowy', 'desc' => 'Podpistext block.', 'id' => $prefix3.'caption', 'type' => 'textarea' ), array( 'label' => 'Etykieta przycisku', 'desc' => 'Etykieta linku do przycisku (co użytkownik czyta na przycisku).', 'id' => $prefix3.'btn_label', 'type' => 'text' ), array( 'label' => 'Tag tytułu przycisku', 'desc' => 'Włączone hover i SEO text.', 'id' => $prefix3.'btn_title_tag', 'type' => 'text' ), array( 'label' => 'URL przycisku', 'desc' => 'URL where button linki do. Wpisz http:// do pracy.', 'id' => $prefix3.'btn_url', 'type' => 'text' ) );// end lower center array $prefix4 = 'home_lower_right_'; $home_meta_fields_lower_right = array( array( 'label' => 'Tytuł kolumny', 'desc' => 'Tytuł H2 dla kolumny.', 'id' => $prefix4.'title', 'type' => 'text' ), array( 'label' => 'Obraz kolumny', 'desc' = > 'Prześlij wstępnie przycięty obraz zoptymalizowany pod kątem internetu o szerokości 360 i wysokości 300 pikseli', 'id' => $prefix4.'image', 'type' => 'image' ), array( 'label' => 'Kolumna Podtytuł', 'desc' => 'H3 podtytuł nad blokiem tekstu', 'id' => $prefix4.'sub_title', 'type' => 'text' ), array( 'label'=> 'Blok tekstu', 'desc' => 'Blok tekstu podpisu.', 'id' => $prefix4.'caption', 'type' => 'textarea' ), array( 'label' => 'Etykieta przycisku' , 'desc' => 'Etykieta linku do przycisku (co użytkownik czyta na przycisku).', 'id' => $prefix4.'btn_label','type' => 'text' ), array( 'label' => 'Tytuł przycisku', 'desc' => 'Po najechaniu kursorem i tekst SEO.', 'id' => $prefix4.'btn_title_tag', ' type' => 'text' ), array( 'label' => 'URL przycisku', 'desc' => 'URL, do którego prowadzi link do przycisku. Wpisz http://, aby działać.', 'id' => $prefix4 .'btn_url', 'type' => 'text' ) );// zakończenie prawej dolnej tablicy //Funkcja wywołania zwrotnego show_home_meta_box() { global $home_meta_fields, $post; // Użycie wartości nonce do weryfikacji echo '<input type="hidden" name="home_meta_box_nonce" value="'.wp_create_nonce(basename(__FILE__)).'" />'; //Rozpocznij tabelę pól i pętlę echo '
'; foreach ($home_meta_fields as $field) { // pobierz wartość tego pola, jeśli istnieje dlata strona $meta = get_post_meta($post->ID, $field['id'], true); // Rozpocznij wiersz tabeli od echa '
 '.$field['label'].'	 '; switch($field['type']) { // wielkość liter pojawią się tutaj // wielkość liter 'text': echo '<input type="text" name="'.$field['id'].'" id="'.$pole['id'].'" value="'.$meta.'" size="30" />
'.$pole[' opis'].''; przerwanie; // textarea wielkość liter 'textarea': echo '<textarea name="'.$field['id'].'" id="'.$field['id'].'" cols="60" rows="4">'.$meta.'</textarea>
'.$pole['desc'].' '; przerwa; wielkość liter 'image': $image = get_template_directory_uri().'/library/images/img-preview-blank.png'; echo ''. $image.''; if ($meta) { $image = wp_get_attachment_image_src($meta, 'medium'); $image = $image[0]; } echo '<input name="'.$field ['id'].'" type="ukryty" class="custom_upload_image" value="'.$meta.'" />
 <input class="cusprzycisk tom_upload_image_button" type="button" value="Wybierz obraz" />  Usuń obraz
'.$field['desc'].''; break; } // koniec przełącznika echa '
'; } // koniec foreach echo '
'; // zakończ tabelę } // Zapisz funkcję danych save_home_meta($post_id) { global $home_meta_fields; // zweryfikuj wartość jednorazową, jeśli (!wp_verify_nonce($_POST['home_meta_box_nonce'], basename(__FILE__))) return $ post_id; // sprawdź autozapis if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return $post_id; // sprawdź uprawnienia if ('page'== $_POST['post_type']) { if (!current_user_can('edit_page', $post_id)) return $post_id; } elseif (!current_user_can('edit_post', $post_id)) { return $post_id; } // przejdź przez pola i zapisz dane foreach ($home_meta_fields jako $field) { $old = get_post_meta($post_id, $field['id'], true); $nowy = $_POST[$pole['id']]; if ($nowy && $nowy != $stary) { update_post_meta($post_id, $field['id'], $new); } elseif ('' == $nowy && $stary) { delete_post_meta($post_id, $field['id'], $old); } } // koniec foreach } add_action('save_post', 'save_home_meta'); // zakończenie górnej zawartości strony głównej // dolna lewa //funkcja wywołania zwrotnego show_home_meta_box_lower_left() { global $home_meta_fields_lower_left, $post; // Użycie wartości nonce do weryfikacji echo '<input type="hidden" name="home_meta_box_left_nonce" value="'.wp_create_nonce(basename(__FILE__)).'" />'; //Rozpocznij tabelę pól i pętlę echo '
'; foreach ($home_meta_fields_lower_left as $field) { // pobierz wartość tego pola, jeśli istnieje dla tej strony $meta = get_post_meta($post->ID, $field['id'], true); // Rozpocznij wiersz tabeli od echa '
 '.$field['label'].'	 '; switch($field['type']) { // wielkość liter pojawią się tutaj // wielkość liter 'text': echo '<input type="text" name="'.$field['id'].'" id='.$field['id'].'" value="'.$meta.'" size="30" />
'.$field['desc'] .''; break; // textarea wielkość liter 'textarea': echo '<textarea name="'.$field['id'].'" id="'.$field['id']. '" cols="60" rows="4">'.$meta.'</textarea>
'.$pole['desc'].' '; przerwa; wielkość liter 'image': $image = get_template_directory_uri().'/library/images/img-preview-blank.png'; echo ''. $image.''; if ($meta) { $image = wp_get_attachment_image_src($meta, 'medium'); $obraz = $obraz[0]; } echo '<input name="'.$field['id'].'" type="hidden" class="custom_upload_image" value="'.$meta.'" />
 <input class="custom_upload_image_button button" type="button" value="Wybierz obraz" />  Usuń obraz
'.$field['desc' ].''; przerwanie; } // koniec przełącznika echo '
'; } // koniec foreach echo '
'; // koniec tabeli } // Zapisz funkcję danych save_home_meta_lower_left($post_id) { global $home_meta_fields_lower_left; // zweryfikuj numer jednorazowy, jeśli (!wp_verify_nonce($_POST['home_meta_box_left_nonce'], basename(__FILE__))) return $post_id; // sprawdź autozapis if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return $post_id; // sprawdź uprawnienia if ('page' == $_POST['post_type']) { if (!current_user_can('edit_page', $post_id)) return $post_id; } elseif (!current_user_can('edit_post', $post_id)) { return $post_id; } // przejdź przez pola i zapisz dane foreach ($home_meta_fields_lower_left jako $field) { $old = get_post_meta($post_id, $field['id'], true); $nowy = $_POST[$pole['id']]; if ($nowy && $nowy != $stary) { update_post_meta($post_id, $pole['id'], $new); } elseif ('' == $nowy && $stary) { delete_post_meta($post_id, $field['id'], $old); } } // koniec foreach } add_action('save_post', 'save_home_meta_lower_left'); // koniec na dole po lewej // dolna środkowa kolumna //funkcja wywołania zwrotnego show_home_meta_box_lower_center() { global $home_meta_fields_lower_center, $post; // Użycie wartości nonce do weryfikacji echo '<input type="hidden" name="home_meta_box_center_nonce" value="'.wp_create_nonce(basename(__FILE__)).'" />'; //Rozpocznij tabelę pól i pętlę echo '
'; foreach ($home_meta_fields_lower_center as $field) { // pobierz wartość tego pola, jeśli istnieje dla tej strony $meta = get_post_meta($post->ID, $field['id'], true); // zacznij wiersz tabeli odecho '
 '.$pole['etykieta'].'	 '; switch($field['type']) { // wielkość liter pojawią się tutaj // wielkość liter 'text': echo '<input type="text" name="'.$field['id'].'" id="'.$pole['id'].'" value="'.$meta.'" size="30" />
'.$pole[' opis'].''; przerwanie; // wielkość liter textarea 'textarea': echo '<textarea name="'.$field['id'].'" id="'.$field['id'].'" cols="60" rows=" 4">'.$meta.'</textarea>
'.$pole['desc'].''; przerwanie; wielkość liter 'image': $image = get_template_directory_uri().'/library/images/img-preview-blank.png'; echo ''.$image.''; if ($ meta) { $ image = wp_get_attachment_image_src ($ meta, 'medium'); $obraz = $obraz[0]; } echo '<input name="'.$field['id'].'" type="hidden" class="custom_upload_image" value="'.$meta.'" />
 <input class="custom_upload_image_button button" type="button" value="Wybierz obraz" /> < mały> Usuń obraz
'.$field['desc'].' '; przerwanie; } // koniec przełącznika echo '
'; } // koniec foreach echo '
'; // zakończenie tabeli } // Zapisz funkcję danych save_home_meta_lower_center($post_id) { global $home_meta_fields_lower_center; // zweryfikuj numer jednorazowy, jeśli (!wp_verify_nonce($_POST['home_meta_box_center_nonce'], basename(__FILE__))) return $post_id; // sprawdź autozapis if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return $post_id; // sprawdź uprawnienia if ('page' == $_POST['post_type']) { if (!current_user_can('edit_page', $post_id))zwróć $post_id; } elseif (!current_user_can('edit_post', $post_id)) { return $post_id; } // przejdź przez pola i zapisz dane foreach ($home_meta_fields_lower_center jako $field) { $old = get_post_meta($post_id, $field['id'], true); $nowy = $_POST[$pole['id']]; if ($nowy && $nowy != $stary) { update_post_meta($post_id, $field['id'], $new); } elseif ('' == $nowy && $stary) { delete_post_meta($post_id, $field['id'], $old); } } // koniec foreach } add_action('save_post', 'save_home_meta_lower_center'); // koniec dolnego środka // Prawa dolna kolumna //Funkcja wywołania zwrotnego show_home_meta_box_lower_right() { global $home_meta_fields_lower_right, $post; // Używanie nonce do weryfikacjiecho '<input type="ukryty" name="home_meta_box_right_nonce" value="'.wp_create_nonce(basename(__FILE__)).'" />'; //Rozpocznij tabelę pól i pętlę echo '
'; foreach ($home_meta_fields_lower_right as $field) { // pobierz wartość tego pola, jeśli istnieje dla tej strony $meta = get_post_meta($post->ID, $field['id'], true); // Rozpocznij wiersz tabeli od echa '
 '.$field['label'].'	 '; switch($field['type']) { // wielkość liter pojawią się tutaj // wielkość liter 'text': echo '<input type="text" name="'.$field['id'].'" id="'.$pole['id'].'" value="'.$meta.'" size="30" />
'.$pole['desc'].''; przerwanie; // textarea wielkość liter 'textarea': echo '<textarea name="'.$field['id'].'" id="'.$field['id'].'" cols="60" rows=" 4">'.$meta.'</textarea>
'.$pole['desc'].''; przerwanie; wielkość liter 'image': $image = get_template_directory_uri().'/library/images/img-preview-blank.png'; echo ''.$image.''; if ($ meta) { $ image = wp_get_attachment_image_src ($ meta, 'medium'); $obraz = $obraz[0]; }echo '<input name="'.$field['id'].'" type="ukryty" class="custom_upload_image" value="'.$meta.'" />
 <input class="custom_upload_image_button button" type="button" value="Wybierz obraz" />  Usuń obraz
'.$field['desc'] .''; przerwanie; } // koniec przełącznika echo '
'; } // koniec foreach echo '
'; // koniec tabeli } // Zapisz funkcję danych save_home_meta_lower_right($post_id) { global $home_meta_fields_lower_prawo; // zweryfikuj numer jednorazowy, jeśli (!wp_verify_nonce($_POST['home_meta_box_right_nonce'], basename(__FILE__))) return $post_id; // sprawdź autozapis if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return $post_id; // sprawdź uprawnienia if ('page' == $_POST['post_type']) { if (!current_user_can('edit_page', $post_id)) return $post_id; } elseif (!current_user_can('edit_post', $post_id)) { return $post_id; } // przejdź przez pola i zapisz dane foreach ($home_meta_fields_lower_right jako $field) { $old = get_post_meta($post_id, $field['id'], true); $nowy = $_POST[$pole['id']]; if ($nowy && $nowy != $stary) { update_post_meta($post_id, $field['id'], $new); } elseif ('' == $nowy && $stary) { delete_post_meta($post_id, $field['id'], $old); } } // koniec foreach } add_action('save_post', 'save_home_meta_lower_right'); // end lower right ?> Kiedy zapiszę to wszystko, otrzymuję następujące błędy w backendzie administratora: > Ostrzeżenie: include(): http:// wrapper jest wyłączony w konfiguracji serwera > przez allow_url_include=0 w /Users/ [my_mac_user]/Sites/[dev_directory]/wp-> content/themes/[site_theme]/functions.php w wierszu 354 >> Warning: include(http://[site_url]/wp-> content/themes/[site_theme ]/metaboxes/home-main-home.php): nie udało się otworzyć > strumień: nie można znaleźć odpowiedniego opakowania w > /Users/[mój_użytkownik_mac]/Sites/[katalog_dev]/wp-> content/themes/[site_theme] /functions.php w wierszu 354 >> Ostrzeżenie: include(): Nieudane otwarcie 'http://[site_url]/wp-> content/themes/[site_theme]/metaboxes/home-main-home.php" do włączenia > (include_path='.:/Aplikacje/MAMP/bin/php/php5.4.4/lib/php') w > /Users/[my_mac_user]/Sites/[dev_directory]/wp- > content/themes/[site_theme]/functions.php w wierszu 354 teraz nie ukrywa już pola treści ze zmianą nazwy szablonu na `front-page.php`. Próbowałem użyć globalnego obiektu $post, aby uzyskać `page_on_front`, ale to też nie działa. Błąd: > Uwaga: Próba pobrania właściwości nie-obiektu w > /Users/amores/Sites/[katalog_dev]/wp-> content/themes/[site_theme/functions.php w wierszu 328 Dodatkowa próba kodu nie powiodła się: add_action( ' admin_init', 'hide_editor' ); function hide_editor() { // Pobierz identyfikator posta global $post; if ( $post->ID == get_option( 'page_on_front' ) ) { remove_post_type_support('page', 'editor'); // dodaj własny .js do stopki w celu wgrywania obrazów function custom_admin_js() { $url = get_option('siteurl'); $url = get_bloginfo('katalog_szablonu') . '/biblioteka/js/libs/meta-content.js'; echo '""'; } add_action('admin_footer', 'custom_admin_js'); // dołącz 'metaboxes/home-meta.php'; }         }      Dziękuję!


title: Jak mogę uruchomić ten kod raz, aby mój wygenerowany tytuł posta nie zmieniał się podczas publikowania/aktualizacji?

text: Mam niestandardowy typ posta o nazwie „transakcja”, a na ekranie edycji/publikacji typu posta usunąłem pole tytułu posta. Tytuł posta jest teraz generowany przez poniższą funkcję, która oznacza każdy post jako „Transakcja”, po którym następuje unikalny ciąg, dzięki funkcji PHP „uniqid”. Uruchamiam tę funkcję na filtrze `title_save_pre`, ale za każdym razem, gdy aktualizuję post, generowany jest nowy unikalny numer dla tytułu. Jak mogę zmodyfikować poniższy kod, aby unikalny numer tytułu był generowany tylko raz? function transaction_title( $title ) { $screen = get_current_screen(); $numer_transakcji = uniqid(); // unikalny numer if ( 'transaction' == $screen->post_type ) { return 'Transaction'. $numer_transakcji; } else { return $tytuł; // w przeciwnym razie zwróć normalny tytuł } } add_filter( 'title_save_pre', 'transaction_title'); Moje pierwsze myśli są takie, aby ustawić taką flagę post meta, ale mam problem z połączeniem jej z moją funkcją. Wygląda na to, że aktualizuje meta postu tylko wtedy, gdy używam akcji `transition_post_status` i nie robi tego z moim filtrem `title_save_pre` (który muszę zmienić tytuł).


title: Usuwanie niestandardowego pola meta dodanego w motywie nadrzędnym

text: Używam motywu potomnego i chcę zmienić jedno z pól meta zdefiniowanych w motywie nadrzędnym. Pole meta jest przeznaczone tylko dla „stron”. Próbowałem użyć remove_meta_box w moim functions.php, ale to nie przyniosło efektu: function remove_parents_box() { remove_meta_box( 'id-of-meta-box' , 'page' , 'normal' ); } add_action( 'admin_menu' , 'remove_parents_box' ); Jakieś pomysły? **Dodatek do pytania:** Odkryłem, że motyw nadrzędny używa: add_action( 'admin_menu', 'lala_create_meta_box_page' ); add_action( 'zapisz_post', 'lala_save_meta_data_page' ); Aby zainicjować to pole meta. Ponieważ chcę utworzyć meta-box z własnym kodem, czy powinienem go usunąć, wykonując coś takiego: remove_action( 'admin_menu', 'lala_create_meta_box_page',999 ); A potem stworzyć własny meta-box?


title: Jak wyświetlić w pętli tylko domenę bloga zamiast całego permalinka?

text: Chcę pokazać w pętli adres URL bloga zamiast całego adresu URL posta. Powodem jest to, że używam multibloga Wordpress z tagami dla całej witryny, więc na mojej pierwszej stronie głównego bloga pokazuję 10 ostatnich postów na całym świecie. Chcę pokazać domenę bloga, z której pochodzi post. the_permalink działa, jeśli chcę pokazać cały post-url, ale muszę go skrócić, aby pokazać tylko domenę. Czy ktoś może mi pomóc?


title: Wordpress nav menu za pomocą twittera bootstrap

text:
W moim motywie używam twittera bootstrap. Próbuję użyć menu startowego w moim motywie. Ale używa niestandardowych atrybutów, takich jak „przełączanie danych”. Oto pełny kod.

Strona główna

Link

Link

Link

 Rozwijane

Działanie

Inne działanie

Coś jeszcze tutaj

Oddzielny link

 Czy ktoś może mi pomóc zoptymalizować ten kod dla wp_nav_menu() ? ## Aktualizacja: To właśnie próbowałem do tej pory. 1) Klasa klasy niestandardowego podmenu My_Walker_Nav_Menu extends Walker_Nav_Menu { function start_lvl(&$output, $depth) { $indent = str_repeat("\t", $depth); $output .= "\n$indent
\n"; } } 2) wp_nav_menu <?php wp_nav_menu( array( 'items_wrap' => '
%3$s
','walker' => new My_Walker_Nav_Menu() ) ); ?> Czy możesz mi pomóc dodać tę klasę „dropdown” i ten link Dropdown  * * *


title: Wielokrotna walidacja stron opcji dla wtyczki

text: Piszę wtyczkę i postanowiłem mieć wiele stron dla różnych opcji wtyczki (dla jasności). Wykonanie jednej opcji było bułką z masłem, ale napotykam trudności, gdy mam wiele stron. Wszystkie moje opcje znajdują się w tablicy zarejestrowanej jako: register_setting( 'plugin_options', 'options', 'validator' ); Jak powiedziałem, posiadanie tylko jednej strony było łatwe. Utwórz formularz, wyślij formularz i boom, opcje zapisane. Teraz, gdy mam wiele stron, wygląda na to, że Wordpress całkowicie zastępuje tablicę opcji, niezależnie od faktu, że mogą istnieć inne wartości, których nie chcę dotykać. Wypróbowałem kilka opcji, a następnie wyszukałem w Google te rozwiązania na stronie Otto: function plugin_options_validate($input) { $options = get_option('plugin_options'); $options['text_string'] = trim($input['text_string']); if(!preg_match('/^[a-z0-9]{32}$/i', $options['text_string'])) { $options['text_string'] = ''; } return $opcje; } Wydaje się, że to też nie zadziała i nie jestem do końca pewien dlaczego. Mój rzeczywisty pociąg do rozwiązania to: 1. Pobierz aktualne opcje; 2. Uruchom tablicę foreach, aby zmienić wartości, jeśli znajdę identyczne klucze w opcjach i tablicy wejściowej; 3. Zwróć wartości i voila! Ale uderzam w ścianę. Mam wiele opcji ustawianych poprzez checkboxy, a kiedy je odznaczę, formularz nie poda nazwy checkboxa, przez co nie mogę poprawnie przejrzeć mojej tablicy. Domyślam się, że pytam... JAK mogę wykonać wywołanie zwrotne do register_settings, które przyjmie dowolne opcje (wejście, pole wyboru itp.) i **nie** zniszczy wartości już zapisanych w tablicy które nie są dotknięte opcjami, które zapisuję w tym momencie. Jakaś pomoc z tym? Dziękuję !


title: Dynamiczny widżet Wordpress według lokalizacji?

text:
muszę pokazać widżet na podstawie lokalizacji użytkownika, do celów testowych stworzyłem go za pomocą następującego kodu if( function_exists( 'register_sidebar' ) ) register_sidebar( array( 'name'=>'Madurai-Right', 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '
', 'after_title' => '
', ) ); i pobranie widżetu jak poniżej <?php $city="Madurai"; echo $side_bar= "'$Miasto-Prawo'"; ?> <?php if ( !function_exists( 'dynamic_sidebar' ) || !dynamic_sidebar($side_bar) ) :?>   <?php endif; ?> Tutaj miasto jest lokalizacją, więc na podstawie lokalizacji otrzymuję pasek boczny jako `dynamic_sidebar($side_bar)` to nie działa Ale jeśli używam bez zmiennej ase `dynamic_sidebar('Madurai-Right')` to działa dobrze, jakiś pomysł? co jest nie tak z moim kodem?


title: Jak sprawdzić, czy WordPress aktualizuje wtyczki?

text: Mam proste sprawdzenie zależności na początku niektórych wtyczek - które sprawdzają, czy inna wtyczka jest zainstalowana i aktywna (za pomocą `class_exists()`). Działa to dobrze w normalnym przepływie WordPress - ponieważ wtyczka zawierająca wymaganą klasę jest ustawiona na wcześniejsze tworzenie instancji, a także zmieniam kolejność dostępnych wtyczek, aby ta wtyczka była ładowana jako pierwsza - tak: /** * Wymuś załadowanie tej wtyczki first * * @since 0.1 * @return void */ public function load_this_plugin_first() { // pobierz katalog wtyczek + nazwę pliku ## $path = plugin_basename(dirname(__FILE__)).'/'.basename(__FILE__); // pobierz listę aktywnych wtyczek ## if ( $plugins = get_option( 'active_plugins' )) { // sprawdź, czy jest tam nasza wtyczka ## if ( $key = array_search( $path, $plugins )) { / / wepchnij go na początek listy ## array_splice( $plugins, $key, 1 ); array_unshift( $wtyczki, $ścieżka ); update_option( 'aktywne_wtyczki', $wtyczki ); } } } To wszystko działa dobrze, dopóki nie będę musiał zaktualizować wtyczki - wtedy wszystkie inne wtyczki zostaną dezaktywowane - ponieważ wszystkie sprawdzenia `class_exists()` zwracają wartość false. Chciałbym więc wiedzieć, czy istnieje _stała_ — taka jak DOING_AUTOSAVE dla aktualizacji wtyczek — coś w rodzaju DOING_PLUGIN_UPDATE?


title: Nie można uzyskać wartości domyślnych do pracy z niestandardowym shortcode

text: Pracuję nad utworzeniem skróconego kodu do osadzania lokalnie hostowanych filmów Quicktime, ale nie mogę uzyskać domyślnych atrybutów. Oto, nad czym pracuję, czy ktoś może zauważyć coś wyraźnie złego? Wynik nie daje mi żadnej wartości dla nieokreślonego atrybutu (w tym przypadku wysokość/szerokość), zamiast pożądanych wartości domyślnych 480 i 320. Jeśli jest określony, działa zgodnie z przeznaczeniem. <?php function quicktime_embedder( $atts, $content = null ) { extract( shortcode_atts( array( 'url' => '#', 'width' => '480', 'height' => '320' ), $ atty ) ); return '<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="300" width="500"> < param name="src" value="http://www.yoursite.com/video/video1.mov"> <param name="autoplay" value="false"> <param name="kontroler" value="true "> <param name="typ" value="video/quicktime" height="'.$atts[wysokość].'" width="'.$atts[szerokość].'"> <embed src="'. $atts[url].'" height="'.$atts[wysokość].'" width="'.$atts[szerokość].'" autoplay="false" type="wideo/szybki czas" pluginspage="http ://www.apple.com/quicktime/download/"> </object>'; } add_shortcode( 'quicktime', 'quicktime_embedder' ); ?>


title: Zmiana linku /author/ na coś innego: jaki jest lepszy sposób?

text: Czy istnieje lepszy sposób niż ten fragment, którego używam? funkcja change_author_permalinks() { global $wp_rewrite; // Zmień wartość bazy permalink autora na jakąkolwiek chcesz tutaj $wp_rewrite->author_base = 'writer'; $wp_rewrite->flush_rules(); } add_action('init','change_author_permalinks'); W komentarzach tutaj przeczytałem, że jest... Więc chcę wiedzieć: co? A dlaczego to nie jest dobre?


title: Filtruj posty według pola niestandardowego (Zaawansowane pola niestandardowe)

text: Używam zaawansowanych pól niestandardowych i śledziłem ten samouczek dotyczący tworzenia archiwum WP z niestandardowym filtrem pól. W swoim przykładzie używają pola przycisku radiowego; Chciałbym użyć pola wyboru dla niestandardowego typu wpisu o nazwie „książka”, ponieważ z niektórymi moimi książkami jest powiązanych więcej niż jeden „book_type”. **Nazwa pola:** book_type **Typ pola** : Pole wyboru **Wybory:** mężczyźni, kobiety, dzieci, akcesoria Moja strona `functions.php` wygląda tak: add_action('pre_get_posts', 'my_pre_get_posts' ); function my_pre_get_posts( $zapytanie) { if( is_admin() ) { return; } $book_format = $zapytanie->get('meta_zapytanie'); if( !empty($_GET['book_type']) ) { $book_format[] = array( 'key' => 'type', 'value' => $_GET['book_type'], 'compare' => ' TAK JAK',             ); } $query->set('meta_query', $book_format); zwrócić; } Teraz, kiedy ręcznie dodaję mój 'book_type' do mojego adresu URL w następujący sposób: dev.com/books?=men, z powodzeniem wyświetla wszystkie książki związane z mężczyznami. Ale kiedy dodam „|” separatora, tak jak w przypadku tablicy, otrzymuję pustą stronę. dev.com/books?=mężczyźni|kobiety|akcesoria Czy robię coś nie tak? Każda pomoc jest mile widziana. Z góry dziękuję!


title: Jak wyszukiwać załączniki (obrazki) i posty w WordPressie danego typu postu

text: Chciałbym rozszerzyć funkcjonalność wyszukiwania na blogu WordPress, aby przeszukiwać niestandardowy typ postu wraz z załącznikami. Mam postęp w wyszukiwaniu postów i załączników, również z wyłączeniem stron, ale nie wykluczając wszystkich innych załączników, które należą do innych typów postów, których nie potrzebuję. Na przykład ten scenariusz może pomóc w wyjaśnieniu, co muszę osiągnąć: * Mam domyślny typ postu „post”, który jest używany w sekcji bloga witryny. Może mieć załączniki służące do ozdabiania postu obrazami. * Następnie mam niestandardowy typ posta „prezentacja” i załączniki używane do „prezentacji” zawierające obraz (projekt slajdu) lub plik prezentacji. * Funkcja wyszukiwania powinna uwzględniać „prezentację” i jej obrazy załączników, ale z wyłączeniem wszystkich innych załączników należących do postów. Chodzi o to, aby przeszukiwać prezentacje, zarówno treść i tytuł wpisu prezentacji, ale także tekst podpisu załączników i tytuły należące do prezentacji, ale nie przeszukiwać postów na blogu ani załączników używanych do postów. Rozwiązania, które mogłem znaleźć, uwzględniają tylko wyszukiwanie załączników i postów, co jest w porządku, ale jak wykluczyć załączniki należące do danego niestandardowego typu postu?


title: Na nowych stronach brakuje mojego paska bocznego.

text: Naprawdę nie wiem, co się tutaj dzieje. Najpierw spróbuj utworzyć nową stronę z „Szablonem domyślnym” — nagłówek i stopka wyglądają dobrze, ale bez paska bocznego. Wtedy zdecydowałem się stworzyć własny szablon strony: <?php /* Nazwa szablonu: BeautyBar */ ?> <?php get_header(); ?> -->Twoja treść trafi tutaj<-- <?php get_sidebar(); ?> <?php get_footer(); ?> Wciąż brak paska bocznego. Co ja robię źle?


title: Uszkodzony kanał RSS – limit?

text: Nasz kanał RSS właśnie przestał działać i otrzymujemy ten błąd w chrome: Ta strona zawiera następujące błędy: błąd w wierszu 7938 w kolumnie 2: Dodatkowa treść na końcu dokumentu Poniżej znajduje się renderowanie strony do pierwszego błędu. W tej linii nie ma nic ważnego poza tekstem posta. Używamy wtyczki kanału RSS, aby pobierać treści i dystrybuować je na innych stronach. Z tego powodu mamy liczbę w „Kanały syndykacyjne pokazują najnowsze” ustawioną na 400. Oznacza to, że pokazuje 400 pełnych postów/stron w kanale RSS. Jeśli zmienię numer z powrotem na 200, kanał zacznie działać. Ustaw ponownie na 400 i pęka... Wygląda na to, że gdzieś dochodzimy do limitu. Sprawdziłem, czy nie ma spacji w functions.php, wp-config.php, itp... wszystko było w porządku. Czy ktoś ma jakieś pomysły, co tu się dzieje? Dziękuję


title: pobierz zawartość nadrzędną do postów podrzędnych

text:
Mam niestandardowy typ postu, w którym utworzyłem 3 strony w relacji rodzic-dziecko. Strony są tworzone w następujący sposób: PARENT-CHILD-GRANDCHILD Chcę, aby strony podrzędne i wnuki otrzymywały tę samą treść, co strona nadrzędna, a wszystko, co dodam z pulpitu nawigacyjnego w obszarze treści, ma być dodane po treści wpisu nadrzędnego. Na przykład, jeśli mój post nadrzędny zawiera kilka linii tekstu, a w poście podrzędnym dodam jeszcze kilka linii tekstu, należy to dodać po treści nadrzędnej. Oto funkcja do tworzenia hierarchii CPT : function wpse121567_get_cpt_hierarchy() { // Upewnij się, że jest to właściwy CPT if ( 'debate-parent' != get_post_type() ) { return false; } // Globalizacja obiektu post global $post; // Nadrzędny CPT if ( 0 == $post->post_parent ) { return 'debate-parent'; } // Nie jest to nadrzędny CPT, więc pobierz bieżący rodzic postu $parent = get_post( $post->post_parent ); // Child CPT if ( 0 == $parent->post_parent ) { return 'debate-child'; } else { return 'debata-wnuk'; } } A to jest mój pojedynczy-{myCPT.php} :
 <?php if ( 'debata-parent' == wpse121567_get_cpt_hierarchy() ) { / / Normalna pętla tutaj if ( have_posts() ): while ( have_posts() ): the_post(); get_template_part( 'inc/post-format/single', get_post_format() ); koniec; endif; } // CPT potomny else if ( 'debate-child' == wpse121567_get_cpt_hierarchy() ) { // Globalizacja obiektu postu the_post(); $parent = get_post( $post->post_parent ); echo '
' . $parent->tytuł_postu . '
'; $content = apply_filters( 'the_content', $parent->post_content ) . pobierz_treść(); echo '
' . $treść . '
'; // Pobierz nadrzędne komentarze CPT $parent_cpt_comments = get_comments( array( 'post_id' => $post->post_parent, 'status' => 'approve' ) ); // Przeprowadź pętlę przez nadrzędne komentarze CPT foreach ( $parent_cpt_comments as $comment ) { // Wyświetl tutaj znaczniki listy komentarzy } } // CPT dla wnuków else if ( 'debate-grandchild' == wpse121567_get_cpt_hierarchy() ) { // Kod statystyki komentarza tutaj } ?> <?php $enable_rtl = of_get_option('enable_rtl', false); if(!of_get_option('disable_pagination')){ if($enable_rtl){ $next_post = get_adjacent_post( false, '', true ); $prev_post = get_adjacent_post(fałsz, '', fałsz ); }else{ $next_post = get_adjacent_post( false, '', false ); $prev_post = get_adjacent_post( fałsz, '', prawda ); } ?> <?php } // pokaż powiązane posty według tagów if(!of_get_option('disable_related_posts')){ get_template_part( 'inc/related-posts' ); } // Jeśli komentarze są otwarte lub mamy co najmniej jeden komentarz, załaduj domyślny szablon komentarza dostarczony przez Wordpress if ( comments_open() ) comments_template( '', true ); else{ // Cóż, jeśli nie ma żadnych postów do wyświetlenia i przejścia, przeprośmy czytelnika (także Twój błąd 404) ?>

><?php _e('Nie znaleziono strony', 'Skrzynka nadawcza'); ?>

 <?php } // OK, myślę, że to rozwiązuje oba scenariusze (posiadanie posta lub brak posta do pokazania) ?>
 Moje pytanie brzmi, w jaki sposób mogę automatycznie uzyskać treść posta nadrzędnego na każdym dziecku i jeśli dodam więcej treści z pulpitu nawigacyjnego do dodania po treści z elementu nadrzędnego? Dziękuję Ci!


title: W której wersji WordPressa został zaimplementowany nowy shortcode galerii?

text: Od WordPress 3.5, jak jestem pewien, wszyscy wiecie, shortcode galerii wygenerowany przez narzędzie do przesyłania multimediów zmienił się i zawiera teraz listę identyfikatorów obrazów. Strona z kodem skróconego kodu galerii zawiera następujące informacje: > „Ważne jest, aby pamiętać, że ten styl skróconego kodu galerii nie jest nowy w > 3.5, jednak znacznie łatwiej jest go generować i zarządzać dzięki nowemu Media > Workflow wprowadzonemu w 3.5”. Czy ktoś wie, jaka jest minimalna wersja WP, w której ten styl shortcode galerii nadal będzie działał?


title: Pobierz meta użytkownika i skopiuj, aby opublikować meta

text: Ponieważ geo mashup pobiera tylko post_meta, próbuję skopiować geo_location z niestandardowego pola rejestracji do meta strony zawierającej mapę. Kod, którego używam to: <?php $blogusers = get_users_of_blog(); if ($blogusers) { foreach ($blogusers as $bloguser) { $user = get_userdata($bloguser->user_id); $user_location = the_author_meta('geo_address', $user->ID); add_post_meta( 463, 'geo_move', $user_location); }} ?> To tworzy meta posta, ale wartość jest zapisana jako pusta, więc wygląda na to, że $user_location nie działa. Jakieś sugestie?


title: Niestandardowe powiadomienie dla współtwórców, gdy posty są zaplanowane

text:
Pracuję nad niestandardowym powiadomieniem, które będzie wysyłane do współtwórców, gdy ich post jest zaplanowany do publikacji, udostępniając zaplanowaną datę publikacji i różne inne informacje (tytuł, kategoria itp.). Problem polega na tym, że jeśli otworzę oczekujący post, ustawię datę na przyszłość, a następnie trafię w harmonogram, powiadomienie nie zawiera zaplanowanej daty publikacji posta, ale zawiera pierwotną datę przesłania posta. Zakładam, że problem polega na tym, że moja funkcja działa, zanim baza danych zostanie zaktualizowana o nową datę wpisu i inne zaktualizowane informacje. Kod znajduje się poniżej - każda pomoc jest mile widziana! funkcja scheduleNotification() { global $post; $post = get_post($post_id); $author = get_userdata($post->post_author); $link = get_permalink($post->ID); $data = mysql2date('M j Y', $post->post_data); $kategoria = get_the_category($post->ID); $kategoria = $kategoria[0]->nazwa_kota; $message = "
Drogi ".$author->nazwa_użytkownika.",
". „
Będziemy publikować Twój artykuł „.$category.”, „.$post->post_title.”, „.$date.”
”; $headers[] = 'Od: Wyślij nazwę <test@testing.com>'; $headers[] = 'Typ treści: tekst/html'; wp_mail($author->user_email, "Twój nadchodzący post", $wiadomość, $nagłówki); } add_action('pending_to_future', 'scheduledNotification'); add_action('approved_to_future', 'scheduledNotification');