title: Próbuję uzyskać obraz metaboksu o niestandardowym rozmiarze

text: Próbuję uzyskać obraz metabox z niestandardowym rozmiarem obrazu. użyłem tego kodu, aby uzyskać obraz, ale obraz się nie wyświetla. <?php $img_src = get_post_meta( $post->ID, 'project_options', true ); $img_src = wp_get_attachment_image_src($img_src, 'size_300_190'); ?> <img src="<?php $img_src['mobile_image']; ?>" alt="" /> a jeśli usunę tę linię $img_src = wp_get_attachment_image_src($img_src, 'size_300_190'); wtedy obraz staje się widoczny. > Podałem ten niestandardowy rozmiar przed przesłaniem obrazu.


title: Zminifikuj style.php w nagłówku index.php

text: Obecnie mam stronę opcji motywu WordPress. Przeczytałem wszystkie style opcji motywu w `style.php`, które następnie umieszczam w nagłówku mojej strony internetowej. Czy ktoś wie, jak zminimalizować ten plik `style.php`? większość skryptów "w locie" oferuje rozwiązanie, ale zmienia nagłówek, co skutkuje komunikatem o błędzie "nagłówki już wysłane". `header.php`: <style> <?php require_once('css/style.php');?> </style> `style.php`: <?php ?> body { background-color:<?php globalne $zmienna; echo $zmienna['kolor-tła'];?>; rodzina-czcionek:<?php global $zmienna; echo $zmienna['typography6']['font-family'];?>; } a { color: <?php global $zmienna; echo $zmienna['link-color']['regular'];?>; } <?php ?> Czy ktoś ma rozwiązanie?


title: Niestandardowa klasa CSS lub identyfikator w elementach menu, które mają podmenu

text: Jeśli chcę zastosować styl tylko do elementu w menu, które ma podmenu, jak mogę to zaznaczyć za pomocą CSS?


title: Buforowanie zapytań SQL

text: W jednym pliku wtyczki mam kilka wywołań tej samej opcji w bazie danych poprzez get_option(). Czy WordPress wykonuje zapytanie do bazy danych za każdym razem, gdy używam get_option()? Czy nie byłoby lepiej pobrać opcję raz i zapisać ją w zmiennej globalnej?


title: Kanał RSS dla usuniętych postów i komentarzy

text: Muszę utworzyć kanał (RSS lub Atom) postów i komentarzy, które zostały usunięte (tj. przeniesione do Kosza). Jaki jest najlepszy sposób na zrobienie tego? W tej chwili zastanawiam się nad stworzeniem 2 stron szablonów zawierających zapytanie SQL/$wpdb, które zwraca posty i komentarze ze statusem Trashed (a następnie tworzenie nowych stron np. deletedposts/usuniętych komentarzy) Jakieś lepsze sposoby? Głównym powodem robienia tego w ten sposób jest łatwy routing - tzn. adresy URL są tworzone dla mnie. Jak poradziłbym sobie z routingiem, gdybym umieścił to we wtyczce i nie tworzył stron?


title: Gdzie UŻYWAĆ add_rewrite_rule?

text: Muszę dodać regułę RewriteRule do mojej strony. Próbowałem w .htaccess bez powodzenia, nie jest analizowany, więc prawie się z tego poddaję. Znalazłem dokumentację na add_rewrite_rule, ale nie mam pojęcia, gdzie mam jej użyć. Nie piszę wtyczki. Muszę wprowadzić jedną prostą zasadę. Wszedłem do pliku functions.php w jakim jest aktualny folder motywu. Czy to ten, którego używam? Dodałem: add_action( 'init', 'add_news_rule3' ); function add_news_rule3() { add_rewrite_rule( '^/content/([^/]*)/([^/]*)\.htm$', '/content/$matches[1] [NC,R=301,L ]', 'Top' ); } Próbowałem też na podstawie posta, który widziałem gdzie indziej: add_action( 'generate_rewrite_rules', 'add_news_rule' ); function add_news_rule($wp_rewrite) { $new_rules = array('^/content/([^/]*)/([^/]*)\.htm$' => '/content/$matches[1] [NC ,R=301,L]'); $wp_rewrite->zasady = $new_rules + $wp_rewrite->zasady; } add_filter('rewrite_rules_array','add_news_rule2'); function add_news_rule2($rules) { $new_rules = array('^/content/([^/]*)/([^/]*)\.htm$' => '/content/$matches[1] [NC ,R=301,L]'); zwróć $nowe_zasady + $zasady; }


title: Jak używać the_excerpt w haczyku filtra?

text: Miałem nadzieję, że przetworzymy_wycinek tak, jak przetworzymy_treść, ale nie miałem takiego szczęścia. Jak mogę przekazać fragmenty strony postów za pomocą mojej wtyczki? Próbowałem wariacji na ten temat: add_filter('the_excerpt', 'my_function'); Ale niestety, nie ma wyjścia. Propozycje? **EDYTUJ: Wygląda na to, że moje wywołanie filtra nie zadziała, gdy zostanie wywołane z innej funkcji, ale DZIAŁA, jeśli jest na tym samym poziomie funkcji, którą wywołuję, na przykład:** add_filter('the_excerpt', 'mój_filtr'); function my_filter($content) { die('hello'); } Jakieś pomysły, dlaczego tak jest?


title: Dlaczego mam zabłąkany punktor z <?php wp_list_categories>?

text:
Na tej stronie po prawej stronie bocznej nawigacji wyszukiwania ofert pracy znajduje się zabłąkany punktor? Dlaczego to? Może brakuje mi czegoś prostego. Po prostu jestem na chwilę. http://shs.merms.info/2010/12/30/shs-team-celebrates- success-quarter/

<?php wp_list_categories('title_li=Kategorie
'); ?>


title: Jak mogę zoptymalizować ten kod?

text: Mam pole wyboru Zaawansowane pola niestandardowe, które chcę sprawdzić. Jeśli pole wyboru jest zaznaczone z tyłu, wyświetla odpowiedni obraz z przodu. Mam trochę kodu, który "działa", ale myślę, że musi być znacznie wydajniejszy sposób, aby to zrobić. Oto kod $gluten = 'gluten.png'; $wegański = 'wegański.png'; $wegetariański = 'wegetarianin.png'; $danie = get_field('przyjazne dla diety'); if( in_array( 'gluten', get_field('diet_friendly')) ) ) { echo ' '; } if( in_array( 'vegan', get_field('diet_friendly') ) ) ) { echo '”; } Oto tablica pola wyboru pole array(2) { [0]=> string(6) "gluten" [1]=> string(5) "wegański" }


title: Ogranicz widok niestandardowego typu posta według roli użytkownika

text: Stworzyłem niestandardowy typ postu i stworzyłem kilka niestandardowych ról użytkownika i chcę mieć możliwość ograniczenia widoku typu postu na podstawie określonych ról. Czy istnieje prosty sposób na ograniczenie tego?


title: Pobierz wtyczkę shortcode Posts i meta_query?

text: Używam wtyczki Get Posts, aby wyświetlić posty z typem postu "projekt". Chcę przefiltrować listę według dwóch pól niestandardowych: rok (np. 2006) i stan (np. Ukończono). Dodałem `meta_query` do argumentów `get_post` wtyczki i wypróbowałem shortcode: [get_posts post_type="project" meta_query="array(array('key' => 'state', 'value' => 'Completed'), array('key' => 'year','value' => '2006'))" Sup_filters="false"] To nie działa, chociaż mogę sprawić, by zarówno "stan" jak i "rok" działały samodzielnie używając `meta_key` i `meta_value`. Czy ktoś może skierować mnie we właściwym kierunku?


title: Gdzie należy umieścić strony wtyczek typu „uruchom raz”?

text: Gdzie mam umieścić stronę administracyjną, która powinna być użyta tylko raz? Tworzę wtyczkę, która będzie indeksować wszystkie używane tagi HTML w Twoich postach, dzięki czemu możesz wyczyścić posty, jeśli zmienisz motywy i chcesz zastąpić stare nieprawidłowe tagi `<font>` nagłówkami lub innymi znacznikami semantycznymi. Po zainstalowaniu tej wtyczki powinna ona raz przeskanować stare posty, aby wypełnić indeks (taksonomia niestandardowa). Nie chcę tego robić podczas instalacji wtyczki, ponieważ może to zająć dużo czasu, jeśli masz wiele postów, a zatem oddzielna strona z podejściem AJAX do przekształcania partii postów może być lepsza. Prawdopodobnie jest to czepianie się szczegółów, ale czy powinienem umieścić tę dodatkową stronę w menu (pod _Narzędzia_?) i po prostu ją tam zostawić, czy też powinienem użyć sztuczki, aby wyświetlić ją tylko wtedy, gdy jest potrzebna? Za pomocą linku w akcjach wtyczki, a może ustawienia bazy danych, którego możesz użyć do ukrycia elementu menu? Wtyczka powinna pozostać zainstalowana (ponieważ aktualizuje się we wstawkach i edycjach postów), a może czasami chcesz ponownie przeskanować (jeśli dokonałeś zbiorczej zmiany za pośrednictwem bazy danych). Jako użytkownikom wtyczek przeszkadza ci posiadanie opcji menu, których prawie nigdy nie używasz?


title: Jak mogę przekonwertować wszystko z kategorii X na format postu Link

text: Moje „łącza” pochodzą z programu Windows Live Writer, z doskonałej synchronizacji opartej na perlu bezpośrednio do bazy danych i kto wie skąd. Wszystkich łączy wspólna kategoria „Daily-Links”. Myślę więc, że zaplanuję crona, który codziennie sprawdza wszystkie posty w kategorii „Codzienne linki”, a następnie dodaje do niego typ formatu postu „format-link”. (ponieważ np. WLW nie obsługuje „formatów postów”) Czy istnieje lepsze podejście? Chciałem to rozpocząć, uruchamiając zapytanie SQL, ponieważ prawdopodobnie są to setki postów (dla każdej pary object_id,term_taxonomy_id, która nie ma jeszcze term_taxonomy_id=(id linku formatu) ORAZ która ma term_taxonomy_id (określona kategoria) DO dodaj termin_identyfikator_taksonomii z linku formatu) Ale... może istnieje już wywołanie funkcji WP do tego? Jest tu?


title: kłopoty z get_post_meta (i zapisywaniem)

text: mam problem z używaniem „add post meta” i „get post meta”: mam nowe pole meta w mojej taksonomii: zawsze mam wartość „pusta meta” w polu wejściowym, nawet po wprowadzeniu czegokolwiek: jak „banan” , publikuję artykuł i to samo : w polu jest jeszcze raz "pusta meta" ... (czy to problem z $post->id? nigdy tak naprawdę nie wiem, czy $post będzie 'zrozumiany' w zależności jak to jest używane) /* Wyświetla zawartość pudełka */ function myplugin_inner_custom_box() { // Użyj wartości jednorazowych do weryfikacji wp_nonce_field( plugin_basename( __FILE__ ), 'myplugin_noncename' ); $met = get_post_meta($post->ID, 'champ', true)? get_post_meta($post->ID, 'champ', true) : 'pusta meta'; /* input */ echo ''; _e("Pole opisu: ", 'myplugin_textdomain' ); echo ' '; echo '<input type="text" id="champ" name="champ" value="'.$met.'" />'; również próbowałem, aby meta pojawiła się na mojej stronie, więc umieściłem: <?php if ( get_post_meta($post->ID, 'champ_key', true)) { $meta = get_post_meta($post->ID, " champ_key", prawda ); } else { $meta = 'allo'; } ?> ale nic nie pojawia się na stronie. Czy wiesz, jak mogę kontynuować te posty? Dzięki **EDIT** oto kompletny kod: gdyby ktoś mógł go wypróbować, mogę zrobić coś złego, ale nie mogę się dowiedzieć co. (cały kod znajduje się na stronie widżetu) /* * * dodaj metabox : havilage * */ add_action( 'add_meta_boxes', 'myplugin_add_custom_box' ); add_action( 'save_post', 'myplugin_save_postdata' ); /* Dodaje pole do głównej kolumny na ekranach edycji postu i strony */ function myplugin_add_custom_box() { add_meta_box( 'test1', __( 'My test1', 'myplugin_textdomain' ), 'myplugin_inner_custom_box', 'post' ); add_meta_box( 'test2', __( 'Mój test2', 'myplugin_textdomain' ), 'myplugin_inner_custom_box', 'movies' ); } /* Wyświetla zawartość pudełka */ function myplugin_inner_custom_box() { global $post; // Użyj wartości nonce do weryfikacji wp_nonce_field( plugin_basename( __FILE__ ), 'myplugin_noncename' ); $met = get_post_meta($post->ID, 'champ', true)? get_post_meta($post->ID, 'champ', true) : 'pusta meta'; /* input */ echo ''; _e("Pole opisu: ", 'myplugin_textdomain' ); echo ' '; echo '<input type="text" id="champ" name="champ" value="'.$met.'" />'; /* wybierz listę */ echo ''; _e("Opis tego pola", 'myplugin_textdomain' ); echo ' '; echo '<select name="my_list_field" id="my_list_field">'; print_r ($post->ID); globalny $post; $s_query = new WP_Query( array( 'suppress_filters' => false, 'post_type' => 'movies')); while($s_query->have_posts()):$s_query->the_post(); $sname = $post->post_title; $s_output2 =''; $s_output2 .= '<wartość opcji="'.$post->ID.'" >'; $s_output2 .= $post->post_title.' : allo”; $s_output2 .= '</option>'; echo $s_output2; koniec; echo '</select>'; wp_reset_query(); } /* Gdy post jest zapisywany, zapisuje nasze niestandardowe dane */ function myplugin_save_postdata( $post_id ) { // sprawdź, czy jest to procedura automatycznego zapisywania. // Jeśli to jest nasz formularz nie został przesłany, więc nie chcemy nic robić if ( define( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return; // sprawdź, czy pochodzi z naszego ekranu i z odpowiednią autoryzacją, // ponieważ save_post może zostać wywołany w innym czasie if ( !wp_verify_nonce( $_POST['myplugin_noncename'], plugin_basename( __FILE__ )) ) return; // Sprawdź uprawnienia if ( 'page' == $_POST['post_type'] ) { if ( !current_user_can( 'edit_page', $post_id )) return; } else { if ( !current_user_can( 'edit_post', $post_id ) ) return; } // OK, jesteśmy uwierzytelnieni: musimy znaleźć i zapisać dane //$mydata = $_POST['myplugin_new_field']; // Zrób coś z $mydata // prawdopodobnie używając add_post_meta(), update_post_meta() add_post_meta($post->ID, "champ_key", 'banana'); zwróć $post_id; //zwróć $mojedane; } ?>


title: jak skonfigurować stronę główną lokalnie?

text: Jestem nowy w wordpressie i apache. Po wprowadzeniu, które znalazłem w Google, pomyślnie zainstalowałem apache(2.2.17)+mysql(5.5.11)+php(5.2.17)+wordpress (3.1.1) na moim komputerze. Ale kiedy loguję się przy użyciu właściwej nazwy użytkownika i hasła, po prostu przechodzę do katalogu wp-admin, ale nie na stronę główną. Chyba przegapiłem jakieś konfiguracje serwera Apache lub coś innego. Czy ktoś mógłby w tym pomóc, lub podać link. dzięki za pomoc.


title: Podpięcie warunkowe oparte na podstawowej funkcji, która go wywołuje

text: W Multisite stosuję filtr `get_blogs_of_user`, aby posortować menu paska administracyjnego „Moje witryny”, w którym witryny są wymienione według **`blogname`** : ![admin bar multisite my-sites](http: //i.stack.imgur.com/KCjM1.png) Poproszę o kolejne zamówienie gdzie indziej, gdzie witryny są wymienione według **`domain`**. Na przykład witryny, które pojawiają się na ekranie Użytkownicy (`/wp-admin/network/users.php`): ![strony użytkowników](http://i.stack.imgur.com/K8FOQ.png) Pytanie jest: aby to osiągnąć, używam `debug_backtrace`, ale nie jestem pewien, czy to działa przez przypadek, czy logika jest (?!). Zauważyłem, że sprawdzając `debug_trace()->trace[4]['function']` dowiaduję się, gdzie w rdzeniu wywoływana jest funkcja `get_blogs_of_user`. ## Przykładowy kod add_filter( 'get_blogs_of_user', 'bf_reorder_users_sites' ); function bf_reorder_users_sites( $blogi ) { $trace = debug_backtrace(); // mój_zrzut_debugów(); if( 'initialize' == $trace[4]['function'] ) uasort( $blogs, 'bf_uasort_by_blogname' ); w przeciwnym razie uasort( $blogs, 'bf_uasort_by_domain' ); zwróć $blogi; } function bf_uasort_by_domain( $a, $b ) { return strcasecmp( $a->domena, $b->domena ); } function bf_uasort_by_blogname( $a, $b ) { return strcasecmp( $a->blogname, $b->blogname ); } ## Debugowanie `my_debug_dump()` wyświetla listę `$trace[4]['file']` i `$trace[4]['function']` i wyświetla: File:: /wp-path/wp-includes /admin-bar.php Funkcja:: zainicjuj -------- Plik:: /wp-path/wp-includes/class-wp-admin-bar.php Funkcja:: get_active_blog_for_user ------- - Plik:: /wp-path/wp-admin/admin-header.php Funkcja:: wp_user_settings -------- Plik :: /wp-path/wp-includes/admin-bar.php Funkcja:: is_user_member_of_blog -------- Plik:: /wp-path/wp-admin/includes/class-wp-list-table.php Function:: display_rows -------- Plik:: /wp- path/wp-admin/includes/class-wp-list-table.php Function:: display_rows -------- Plik:: /wp-path/wp-admin/includes/class-wp-list-table .php Funkcja:: wiersze_wyświetlania


title: Jak mogę zwrócić wyjście shortcode na początek treści?

text: Mam krótki kod o nazwie update, który jest używany w następujący sposób [update title='' date=''] to jest jakaś aktualizacja itp. itd. 2 akapity lub więcej [/update] Powoduje to wyświetlenie kodu HTML, który zawija tytuł, datę i treść w jakimś html. Wraz z tym chciałbym wypluć pojedynczą linię na górze treści, która wyświetla tylko tytuł i datę z kotwicą, która przeskakuje do punktu, w którym została utworzona aktualizacja. Patrzyłem wysoko i nisko, ale wydaje mi się, że nie mogę znaleźć sposobu na umieszczenie shortcode tuż nad treścią. Każda pomoc jest doceniana! Dziękuję Ci


title: Wordpress apply_filters() Brakuje argumentów

text: Dostosowuję witrynę Woocommerce Wordpress. W klasie produktu Woocommerce (`class-wc-product.php`) funkcja `get_price` stosuje następujący filtr: function get_price() { return apply_filters('woocommerce_get_price', $this->price, $this); } W moim functions.php chcę dodać filtr w następujący sposób: add_filter('woocommerce_get_price', 'custom_price'); function custom_price($price, $product) { ... } Kiedy wywołuję to, otrzymuję następujące ostrzeżenie PHP: Ostrzeżenie: Brakuje argumentu 2 dla custom_price() Dlaczego brakuje drugiego argumentu? Czy `$this` nie jest wysyłane do wywołania filtra?


title: Fasetowa nawigacja w Wordpress

text: czy komuś udało się z sukcesem zaimplementować nawigację fasetową w wordpressie? Używając taksonomii i kategorii myślę, że da się to zrobić, ale nie wiem, jak zaimplementować część „url” nawigacji aspektowej, a także jak zaimplementować filtry. http://experiencinginformation.wordpress.com/2010/09/04/faceted-navigation- seo-and-facets/ Wielkie dzięki


title: Wyklucz autorów na podstawie daty ostatniego posta

text:
Na moim blogu mam kilku autorów, od częstych po jednorazowych. Na mojej stronie autora chciałbym oddzielić pisarzy, którzy nie opublikowali artykułu od 6 miesięcy. Byłoby miło wtedy wypisać tych autorów w innej sekcji, takiej jak „Poprzedni pisarze” lub coś po innej liście obecnych autorów. W tej chwili kod po prostu przechodzi w pętlę przez wszystkich autorów i wyświetla ich wszystkich razem, więc chciałbym dodać to wykluczenie na podstawie ostatniego opublikowania przez nich artykułu. Konkretna pomoc dotycząca kodu jest mile widziana, ponieważ nie znam zbyt dobrze PHP ani Wordpressa. **Przykład kodu:** $authors = get_users('orderby=post_count&order=DSC&role=contributor'); ?>
Pisarze
 <?php // Przejdź przez wszystkich użytkowników, drukując wszystkie ich posty w miarę postępu ( $authors as $author ) { ?> <a name="<?php echo $autor->nazwa_użytkownika; ?>"> <div class="opakowanie-postów-autora" id="autor-<?php echo $autora->ID; ? >-posts-wrapper"> <div class="awatar-autora" id="autor-<?php echo $identyfikator->autora; ?>-awatar"> <?php echo get_avatar( $autora->ID, 96 ); ?>
 <div class="posty-autora" id="posty-autora-<?php echo $identyfikator-autora->; ?>-posty">
<a href="<?php echo get_author_posts_url( $author->ID ); ?>"><?php echo $author->display_name; ?>
 <?php // Skonfiguruj pętlę, odpytującą o wszystkie posty bieżącego użytkownika $args = array( 'author' => $author->ID, 'posts_per_page' => 1 ); $posty = query_posts($args); // Teraz, gdy mamy już posty, zasymuluj tutaj pętlę if ( have_posts() ) : ?> <ul class="lista-postów-autorów" id="autor-<?php echo $ID-autora->; ?> -post-list"> <?php while ( have_posts() ): the_post(); // Wydrukuj co chcemy dla każdego posta ?> Wypisz tutaj coś o każdym autorze. <?php koniec; ?>
 <?php else: ?>
Ten autor nie opublikował jeszcze żadnych postów
 <?php endif; ?> W przypadku, gdy chcesz zobaczyć pełny kod, strona autora została zbudowana przy użyciu tego kodu.


title: Wtyczka połączeń z funkcją php

text:
Ta wtyczka działa tylko jako widżet. Muszę wywołać tę wtyczkę z funkcją php. Jak zmodyfikować ten kod? <?php /* Nazwa wtyczki: AJAX Calendar Plugin URI: http://urbangiraffe.com/plugins/ajax-calendar/ Opis: Wersja kalendarza WordPress, która używa AJAX, aby umożliwić użytkownikowi przechodzenie przez miesiące bez aktualizacji strona. Wersja: 2.5.1 Autor: John Godley URI autora: http://urbangiraffe.com */ class AJAX_Calendar_Widget extends WP_Widget { var $category_ids = array(); function AJAX_Calendar_Widget() { $widget_ops = array( 'classname' => 'ajax_calendar_widget', 'description' => __( 'AJAX Powered Calendar', 'ajax-calendar' ) ); $control_ops = array( 'szerokość' => 300, 'wysokość' => 300 ); $this->WP_Widget( 'ajax-calendar', __( 'AJAX Calendar', 'ajax-calendar' ), $widget_ops, $control_ops ); add_action( 'template_redirect', array( &$this, 'template_redirect' ) ); } function template_redirect() { if ( is_date() && isset( $_GET['ajax'] ) && $_GET['ajax'] == 'prawda' ) { $settings = $this->get_settings(); $ustawienia = $ustawienia[$to->liczba]; $instance = wp_parse_args( $settings, array( 'title' => __( 'Kalendarz AJAX', 'ajax-calendar' ), 'category_id' => '' ) ); $this->category_ids = array_filter( explode( ',', $instance['category_id'] ) ); echo $this->get_calendar(); umierać(); } } /** * Wyświetl widget * * @param string $args Argumenty widgetu * @param string $instance Instancja widgetu * @return void **/ function widget( $args, $instance ) { extract( $args ); $instance = wp_parse_args( (array)$instance, array( 'title' => __( 'Kalendarz AJAX', 'ajax-calendar' ), 'category_id' => '' ) ); $title = apply_filters( 'widget_title', $instance['title'] ); $category_id = $instance['category_id']; $this->category_ids = array_filter( explode( ',', $category_id ) ); echo $before_widget; if ( $title ) echo $before_title . paski ukośne ( $tytuł ) . $po_tytule; echo $this->get_calendar(); // MicroAJAX: http://www.blackmac.de/index.php?/archives/31-Smallest-JavaScript-AJAX-library-ever!.html ?>  <?php // Po echu $after_widget; } function get_calendar() { global $wpdb, $m, $numnum, $rok, $wp_locale, $posts; add_filter( 'zapytanie', array( &$this, 'modify_calendar_query' ) ); $text = get_calendar(prawda, fałsz ); remove_filter( 'zapytanie', array( &$this, 'modify_calendar_query' ) ); $text = str_replace( '<a', '<a onclick="microAjax(this.href + \' ?ajax=true\',show_micro_ajax); return false"', $text ); $text = str_replace( '<a', 'category_ids)) { global $wpdb; $query = str_replace( 'GDZIE', "LEFT JOIN {$wpdb->prefix}term_relationships ON {$wpdb->prefix}posts.ID = {$wpdb->prefix}term_relationships.object_id INNER JOIN {$wpdb->prefix }term_taxonomy WŁ. ({$wpdb->prefix}term_relationships.term_taxonomy_id = {$wpdb->prefix}term_taxonomy.term_taxonomy_id ORAZ {$wpdb->prefix}term_taxonomy.taxonomy='category') GDZIE", $query if ( strpos( $query, 'ORDER' ) !== false ) $query = str_replace( "ORDER", "AND {$wpdb->prefix}term_taxonomy.term_id IN (.implode (',', $this- >kategorie_id ).') ZAMÓWIENIE', $zapytanie ); else $query .= "I {$wpdb->prefix}term_taxonomy.term_id IN (".implode (',', $this->category_ids ).')'; } return $zapytanie; } /** * Wyświetl interfejs konfiguracyjny * * @param string $instance Instancja widżetu * @return void **/ function form( $instance ) { $instance = wp_parse_args( (array)$instance, array( 'title' => __ ( 'Kalendarz AJAX', 'ajax-calendar' ), 'category_id' => '' ) ); $title = stripslashes( $instance['title'] ); $category_id = $instance['category_id']; ?>
<label for="<?php echo $this->get_field_id( 'tytuł' ); ?>"><?php _e( 'Tytuł:', 'ajax-calendar' ); ?> <input class="widefat" id="<?php echo $this->get_field_id( 'tytuł' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?> " type="text" value="<?php echo esc_attr( $title ); ?>" />

<label for="<?php echo $this->get_field_id( 'category_id' ); ?>"><?php _e( 'Identyfikatory kategorii:', 'ajax-calendar' ); ?> <input class="widefat" id="<?php echo $this->get_field_id( 'category_id' ); ?>" name="<?php echo $this->get_field_name( 'category_id' ); ?> " type="text" value="<?php echo esc_attr( $category_id ); ?>" />
 <?php } /** * Zapisz dane widżetu * * @param string $new_instance * @param string $stara_instancja * @return void **/ aktualizacja funkcji( $nowa_instancja, $stara_instancja ) { $instancja = $stara_instancja; $new_instance = wp_parse_args( (array)$new_instance, array( 'title' => __( 'Kalendarz AJAX', 'ajax-calendar' ), 'category_id' => '' ) ); $instance['title'] = wp_filter_nohtml_kses( $new_instance['title'] ); $instance['category_id'] = implode( ',', array_filter( array_map( 'intval', explode( ',', $new_instance['category_id'] )) ) ); zwróć $instancję; } } function register_ajax_calendar_widget() { register_widget( 'AJAX_Calendar_Widget' ); } add_action( 'widgets_init', 'register_ajax_calendar_widget' ); function ajax_calendar ($categories = '') { // $calendar = AJAX_Calendar::get (); // $calendar->pokaż ( $categories ); }


title: nav_menu: jak wymusić włączenie podstrony w menu nadrzędnym

text: Używałem natywnego wp_nav_menu do wyprowadzania moich elementów nawigacyjnych. Stworzyłem również podstronę, która jest zagnieżdżona pod jednym z moich menu, ale kiedy natrafię na ten adres URL, domyślny niestandardowy walker wyraźnie nie aktywuje odpowiedniego elementu w menu. Np. Strona główna, FAQ >____Archiwum MOJE pytanie brzmi: jak włączyć menu FAQ, jeśli jestem pod adresem URL archiwum? Dzięki Andrea


title: 404 do 301 — Naprawianie starych linków

text: Obecnie zaktualizowałem stronę i wprowadziłem do niej wiele ulepszeń. Stara strona miała 3 różne systemy i miała wordpress (i inne systemy) w webroocie. Przeniosłem wordpress do podkatalogu (wordpress), a także zaktualizowałem moje posty na blogu, aby były poprzedzone słowem blog/. Strony i strona tytułowa nie są poprzedzone słowem blog/. Problem, który mam, polega na tym, że chcę z wdziękiem poinformować Google i inne wyszukiwarki, że te posty są teraz poprzedzone prefiksem /blog/. Użyłem następującego kodu na mojej stronie 404, zanim zdałem sobie sprawę, że wordpress wyrzuca nagłówek 404. Oczywiście nie jest to właściwy sposób na zaimplementowanie tej poprawki. // Sprawdź, czy stary adres URL witryny i przekieruj, jeśli tak if (substr($s, 0, 8) != 'reviews/') { if (substr($s, 0, 5) != 'blog/' && substr( $s, 0, 10) != 'wordpress/' ) { // Wymuś przekierowanie 301, abyśmy mogli zachować nowy URI: /blog/ header("HTTP/1.1 301 przeniesiony na stałe"); header("Lokalizacja: /blog/{$s}"); Wyjście(); } } To, co muszę zrobić, to dowiedzieć się, kiedy wordpress wie, że jest to 404 i sprawdzić, czy pasuje do moich czeków (obecnie to, co znajduje się w powyższym fragmencie), a jeśli nastąpi dopasowanie, wymusić przekierowanie 301, aby zaktualizować roboty. Nie jestem pewien, czy ta informacja jest dostępna na init, ponieważ jest to mój kolejny krok do testowania. Próbowałem grać z `template_redirect` i `redirect_canonical`, ale wydaje się, że nie są to właściwe metody do dołączenia. Każda pomoc w tym jest doceniana. Nadal próbuję znaleźć rozwiązanie i odeślę je, gdy je znajdę. Z góry dziękuję.


title: Wyświetl listę użytkowników o szeregu ról

text:
Mogę wyświetlić listę użytkowników tylko według jednej roli. Kiedy próbuję dodać tablicę do poniższego kodu, otrzymuję listę wszystkich autorów. Jestem pewien, że brakuje mi czegoś prostego. Podziękowania Josh <?php $roles = array('nauczyciel-gość', 'prezydent', 'główny wydział'); $args = array( 'meta_key' => 'last_name', 'role' => $roles ); $ wp_user_query = nowe WP_User_Query ($args); $wp_user_query->query_orderby = str_replace('user_login', 'lsjs_usermeta.meta_value', $wp_user_query->query_orderby ); $wp_user_query->zapytanie(); $autorzy = $wp_user_query->get_results(); // Sprawdź wyniki; if (!empty($authors)) { echo '
'; // pętla przez każdego autora dla każdego autora ($authors as $author) { // pobierz wszystkie dane użytkownika $author_info = get_userdata($author->ID); $url = get_author_posts_url($author->ID); ?>
<a href="<?php echo $url; ?>"><?php echo $autor_info->nazwisko; ?>
 <?php } echo '
'; } jeszcze { } ?>


title: Jaki jest najlepszy sposób na wdrożenie AJAX w WordPressie?

text: WordPress posiada strukturę obsługi AJAX, która jest dobrze udokumentowana tutaj: http://codex.wordpress.org/AJAX_in_Plugins Obawiam się, że za każdym razem, gdy wykonujesz zapytanie AJAX (nawet jeśli chcesz zwrócić pojedyncze pole z tabeli) ta struktura tworzy instancję całego stosu WordPress, w tym wszelkich wtyczek i funkcji motywów, które mogą istnieć w Twojej witrynie. Wydaje mi się to dość ciężką metodą wykonywania czegoś, co może okazać się całkiem prostą funkcją. Zazwyczaj wiele witryn WordPress działa na współdzielonym hostingu i nie ma dużej mocy obliczeniowej, więc z moich doświadczeń wynika, że czas odpowiedzi wynoszący 2 sekundy na wywołanie AJAX hostowane przez WordPress nie jest niczym niezwykłym. Jakieś zalecenia dotyczące poprawy tego czasu odpowiedzi?


title: flush_rewrite_rules() anuluje efekt add_rewrite_rule()

text: Jako jedną z funkcji mojej wtyczki próbuję zdefiniować niestandardową strukturę adresu URL, taką jak `http://www.mysite.tld/foo/{action}`. Używam `add_rewrite_rule()` wraz z `flush_rewrite_rules()` przy aktywacji wtyczki, która działa zgodnie z oczekiwaniami. Do momentu ponownego wywołania `flush_rewrite_rules()` podczas innego żądania, ręcznie lub przez włączenie innej wtyczki, która to robi. Kiedy tak się dzieje, moja reguła przepisywania nagle znika (używam Inspektora reguł przepisywania, aby to sprawdzić). Minimalny kod potrzebny do odtworzenia problemu to: <?php /* Nazwa wtyczki: PluginA */ register_activation_hook(__FILE__,'PluginA_activation'); function PluginA_activation() { add_rewrite_tag('%foo%','([^&]+)'); add_rewrite_rule('foo/([^/]+)','index.php?foo=$matches[1]','top'); flush_rewrite_rules(); } Masz pomysł, co robię źle?


title: Określone uprawnienia użytkownika posta

text: daje to konkretnemu użytkownikowi opcję Edytuj konkretny post Przeszukałem i znalazłem tylko wtyczkę, która daje użytkownikowi opcję edycji wszystkich postów Ale nie widziałem żadnych odniesień do konkretnego posta, którego próbowałem użyć jako wtyczki "uprawnienia użytkownika", ale niestety nie zapisuje moich ustawień Dziękuję


title: Problemy z instalowaniem i usuwaniem wtyczek

text: Gdy chcę zainstalować wtyczkę z interfejsu WWW, otrzymuję komunikat o błędzie > Wtyczka nie ma prawidłowego nagłówka. lub > Folder docelowy już istnieje. po pobraniu i kliknięciu „aktywuj”. Kiedy usunę wtyczkę, wtyczka zostaje dezaktywowana, ale nie jest usuwana z mojego serwera FTP. Jaki jest problem z moją instalacją WordPressa? Uprawnienia do plików na moim serwerze są OK. Zmodyfikowałem class-wp-upgrader.php tak, aby zawsze usuwał stare pliki. PS: Mój katalog wtyczek jest teraz pusty i nadal otrzymuję komunikat, że folder już istnieje.


title: Podczas tworzenia nowego konta WordPress sprawdź, czy użytkownik jest uczestnikiem Eventbrite

text: Stworzyłem witrynę WordPress dla ProductCamp. Użytkownicy rejestrują się na wydarzenie na Eventbrite, a następnie korzystają z witryny WordPress, aby głosować na sesje grupowe. Czy istnieje sposób na sprawdzenie, czy użytkownik jest już uczestnikiem Eventbrite, gdy rejestruje się w WordPressie?


title: Użyj nazwy kategorii zamiast kategorii ślimaka w permalinkach

text: Jak utworzyć strukturę permalinku, która kończy się na: /category-name/post-name/ Zamiast: /category-slug/post-name/ Domyślnie Wordpress oferuje strukturę tagów `%category%` jako „Oczyszczona wersja nazwę kategorii (pole slug kategorii na panelu New / Edit Category). Jak mogę użyć nazwy kategorii zamiast sluga kategorii w permalinkach? **Zauważ**, że nie potrzebuję najłatwiejszego rozwiązania, aby moje informacje o pracy były równe moim nazwom kategorii .Tak naprawdę klient musi zobaczyć w obszarze edycji posta: kategorie w określonej kolejności niealfabetycznej.Udało mi się to zrobić, podając cyfrowy numer dla kategorii jako ślimak i kolejność wyświetlania kategorii po ślimaku w Tryb ASC przy użyciu: add_filter( 'get_terms_args', 'wpse_53094_sort_get_terms_args', 10, 2 ); function wpse_53094_sort_get_terms_args( $args, $taxonomies ) { global $pagenow; if( !is_admin() ' || !'post. pagenow && 'post-new.php' != $pagenow) ) return $args; $args['orderby'] = 'ślimaczek'; $args['zamówienie'] = 'ASC'; return $args; } Myślę, że jeśli nie uda mi się skorzystać z rozwiązania `t f`, poszukam kodu lub wtyczki, która dodaje metapole dla kategorii i porządkuje według tego pola w trybie ASC. Następnie zmienię nazwy moich ślimaków na takie same nazwy kategorii. Co myślisz o tym podejściu? Dziękuję za Twój komentarz


title: Jak Wordpress wstawia akapity w postach?

text: Tak więc patrząc na widok html w edytorze nie ma znaczników `<p>`, kiedy widok postu każdy podział wiersza jest otoczony przez `<p>`. Jak?


title: Menu obrazu pokazujące kategorie na stronie

text: Próbuję wyświetlić różne obrazy na stronie, która zawiera linki do kategorii. Obecnie mam stronę, która pokazuje kategorie i strony dla kategorii, ale wymaga to niewielkiej zmiany. Muszę wyświetlić nazwę kategorii z obrazem dla tej kategorii i tłem dla niej. Załączam obrazek, aby właściwie wyjaśnić, co mam na myśli. Myślę, że część, z którą mam problem, to obraz tła i obraz kategorii. Mogę go uzyskać, aby wyświetlić nazwę kategorii, to tylko obraz tła i obraz kategorii. Jak najlepiej to zrobić w wordpressie? Oto link do projektu. http://img28.imageshack.us/img28/3587/imagecategorymenu.jpg W tym projekcie Produkty to tytuł strony, a cztery sekcje to różne kategorie. Kliknięcie na przykład na Drukarki przeniesie Cię do innej strony, pokazuje to samo, ale z podkategoriami drukarek.


title: Jak mogę wyświetlić więcej niż 15 motywów jednocześnie w menu administratora?

text: Mam wiele motywów w mojej testowej witrynie wordpress. Jestem trochę sfrustrowany, że nie mogę pokazać więcej niż 15 na raz. ![Picture.png](http://img820.imageshack.us/img820/5982/picturef.png) Na stronach i postach możesz kliknąć „opcje ekranu”, aby wybrać numer, ale wygląda na to, że „Motywy” nie mają taka opcja. ![Picture-1.jpg](http://img853.imageshack.us/img853/9582/picture1bbg.jpg) Czy jest inny sposób na zwiększenie liczby?


title: Czy można uruchomić Wordpress na serwerze MarketLive/Java EE?

text: Korzystam z MarketLive. Chcę zainstalować Wordpress w podfolderze, ale osoba, z którą rozmawiam, mówi, że nie może tego zrobić, ponieważ moja witryna jest zbudowana w Javie. Chcę zainstalować wordpress w mojej domenie, ponieważ chcę założyć bloga, a jest to szybki i sposób na zrobienie tego. Nie rozumiem tego. Wszystko, czego potrzebuje Wordpress, to PHP. PHP można zainstalować w środowisku Windows lub Linux. Więc, co powstrzymuje to przed wystąpieniem? Nie jestem pewien, czy to, co mówi mi firma, jest poprawne, czy tylko próbują uzyskać ode mnie więcej pieniędzy (instalacja Wordpressa i umożliwienie mi założenia własnego bloga w porównaniu z tworzeniem bloga dla mnie). Dziękuję.


title: Zaawansowana wtyczka pól niestandardowych: Pobierz adres URL pliku do rodzica

text: Na stronie nadrzędnej mam siatkę wartości pól niestandardowych ze stron podrzędnych. Wszystkie pola tekstowe działają poprawnie, ale mam problemy z polami adresu URL pliku: zamiast adresu URL zwraca identyfikator załącznika. Oto kod, którego używam do wyświetlenia wszystkich pól: <?php //pobierz dzieci strony 4 i wyświetl z polami niestandardowymi $args=array( 'post_parent' => 4, 'post_type' => 'page', ) ; $moje_zapytanie = null; $my_query = nowe WP_Query($args); if( $my_query->have_posts() ) { while ($my_query->have_posts()) : $moje_zapytanie->the_post(); ?> Uproszczona wersja, bez żadnego formatowania: <?php $meta_one = get_post_meta($post->ID, 'drzwi', prawda); ?> <?php echo $meta_one; ?> Programista ACF powiedział, że zamiast tego powinienem używać get_field, ale jeśli zastąpię get_post_meta get_field, nie zwróci nawet identyfikatora. Próbowałem również dodać parametr URL w następujący sposób: `<?php echo $meta_one['url']; ?>` Bez zmian.


title: !warunek is_admin() zamienia się w spełniony na stronach administracyjnych

text: Potrzebuję, aby użytkownicy przekierowywali do logowania, jeśli nie są zalogowani, a kiedy już się pojawią, przekierowują ich do backendu, jeśli próbują zobaczyć strony frontendowe. To jest mój kod: add_action( 'template_redirect', function() { if(is_user_logged_in() ): bk1_debug('zalogowany'); if (!is_admin()): bk1_debug('nie w admin, przekierowanie...' ); wp_redirect(admin_url()); endif; else: bk1_debug('nie zalogowany, przekierowuję...'); wp_redirect(wp_login_url(admin_url())); endif; }, 10 ); Oczywiście to nie działa... Z jakiegoś powodu 'nie w adminie, przekierowywanie...' jest wywoływane również w backendzie, a jeszcze lepiej, we frontendzie nic się nie dzieje! Następuje tylko przekierowanie dla niezalogowanego użytkownika. Dowolny pomysł?


title: Opublikuj komentarze na Facebooku

text: Korzystam z własnego systemu komentowania WP, ale chcę również dodać opcję, taką jak pole wyboru, które zapewni opcję publikowania komentarza na Facebooku, może być z linkiem do posta. Czy ktoś zrobił coś takiego, czy ktoś może wskazać mi właściwy kierunek? Szukałem w google, ale są wtyczki, które całkowicie zastępują system komentarzy WP. Nie chcę tego robić.


title: Motyw nie chce wczytywać plików lokalizacyjnych

text: Oto mój fragment functions.php: function get_theme_text_domain() { //To samo zachowanie, jeśli zwrócę ciąg znaków jako 'return 'cokolwiek' $theme = wp_get_theme(); return $theme->get('TextDomain'); } function tamtando_theme_setup() { load_textdomain(get_theme_text_domain(), get_template_directory() . '/języki'); [...] } add_action('after_setup_theme', 'tamtando_theme_setup'); `$theme` to tablica ze wszystkimi właściwościami motywu: zgodnie z oczekiwaniami. `$theme->get('TextDomain')` zwraca 'tamtando': zgodnie z oczekiwaniami. Zauważyłem, że motyw nie tłumaczył żadnego ciągu znaków podczas używania `__('somestring', get_theme_text_domain())`. Następnie próbowałem zobaczyć, co się dzieje z debugerem podczas wykonywania `load_textdomain(get_theme_text_domain(), get_template_directory() . '/languages');`. Tutaj zdałem sobie sprawę, że `import_from_reader($reader)`, znajdujący się w /wp-inclusive/pomo/mo.php, zwracał false, ponieważ, jak sądzę, `$reader->readint32()` zwraca false. Przypuszczam, że dzieje się tak, ponieważ albo nie można znaleźć pliku, albo ma jakiś problem. Sprawdziłem: plik wygląda poprawnie, a nawet kilka razy go odtwarzałem, używając różnych narzędzi, ale problem nadal występuje. Nie jest to pierwszy temat, który piszę i zawsze używam zawsze tych samych wzorów, więc naprawdę się w tej kwestii gubię. Czy ktoś zna możliwy powód takiego zachowania?


title: Paginacja Ajax działa tylko za pierwszym i trzecim razem

text:
Używam paginacji opartej na ajaksie, oto znaczniki

 TUTAJ JEST MOJA PĘTLA I TREŚĆ , niektóre LI z kciukami i takie tam

 <?php posts_nav_link(); ?>

 następnie używam tego jquery, więc ładuje zawartość wewnątrz `#portfolio-thumbs` i linki do stronicowania wewnątrz `#pagi-container`: $('#paginar > a').on( 'kliknij', function(e){ e.preventDefault(); var link = jQuery(this).attr('href'); jQuery('#portfolio-thumbs').html('Ładowanie...'); jQuery('#portfolio-thumbs').load(link+' #portfolio-destaque'); jQuery('#pagi-container').load(link+' #paginar'); }); Cóż, kiedy klikam `> Następna strona` po raz pierwszy: * ładuje się `page/2` ok, wewnątrz `#portfolio-thumbs` trafiają zapętlone posty, a znaczniki pozostają takie same * z wyjątkiem `< poprzedniej strony ` link dodany wewnątrz `#pagi-container` Jeśli kliknę ponownie, jquery/ajax nie działa i ładuje pełną stronę/3, ponownie ładując okno przeglądarki. Jeśli w `page/3` klikam ` <poprzednia strona` lub `> następna strona` ajax znowu działa ok.... Jakieś pomysły co robię źle?


title: Nie można ukryć mapy Google, jeśli pole niestandardowe jest puste

text:
Używam poniższego do wyświetlania map google przy użyciu niestandardowego pola hotel_address. <iframe width="440" height="400" frameborder="0" scrolling="nie" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?q=< ?php the_field('hotel_address'); ?>&iwloc=&output=embed">
 I działa dobrze, pobieram adres hotelu i wyświetlam mapę, jednak chciałbym to ukryć to adres_hotelu jest puste. Wypróbowałem następujące <?php $map = get_post_meta($post->ID, 'hotel_address', true); if( $map) { echo '
'; Echo ''; } ?> I może potwierdzić, że $map pobiera adres za pomocą echo $map, ale pokazuje tylko puste pole bez żadnej mapy. Jakieś pomysły? Richard


title: wiele fragmentów długości i stylów

text: Pracuję nad stroną, która ma wiele fragmentów podobnych do tekstu, ale z innym stylem czytaj więcej lub kliknij tutaj, aby przeczytać więcej o różnej długości. czy jest sposób na zrobienie fragmentu zgodnie z tym, co wspomniałem powyżej? Z góry dziękuję


Wybierz wydarzenie, w którym data rozpoczęcia jest mniejsza niż data bieżąca, a data zakończenia jest większa niż data bieżąca Załóżmy, że data rozpoczęcia to 2013-06-12, a data zakończenia to 2013-07-30. Mam zapytanie, w którym data rozpoczęcia to 20-06-2013, a data zakończenia to 30-06-2013. Dlatego w wynikach zapytania powinno pojawić się zdarzenie A. ale nie rozumiem. To jest moje zapytanie $query = " SELECT DISTINCT ID FROM {$wpdb->prefix}posts JOIN {$wpdb->prefix}postmeta m1 ON ( {$wpdb->prefix}posts.ID = m1.post_id ) WHERE {$ wpdb->prefix}posts.post_type = 'tribe_events' AND {$wpdb->prefix}posts.post_status = 'publish' AND ( ((m1.meta_key = '_EventStartDate' AND m1.meta_value >= '$start_date') AND ( m1.meta_key = '_EventStartDate' AND m1.meta_value <= '$end_date' )) LUB ( (m1.meta_key = '_EventEndDate' AND m1.meta_value >= '$start_date') AND ( m1.meta_key = '_EventEndDate' AND m1.meta_value <= '$end_date' ) ) OR ( (m1.meta_key = '_EventStartDate' AND m1.meta_value < '$start_date') AND ( m1.meta_key = '_EventEndDate' AND m1.meta_value > '$end_date' ) ) ) ZAMÓWIENIE PRZEZ {$wpdb->prefix}posts.post_date DESC; "; $wynik = $wpdb->get_results($zapytanie); Z góry dziękuję.


title: wpdb przygotowanie tabeli wstawiania nie działa

text: Postępowałem zgodnie ze wstępem, aby użyć przygotowania do wstawienia niektórych danych do tabeli. Kod wygląda tak: $wpdb->query( $wpdb->prepare( "WSTAW W {$wpdb->prefix}awpcp_adphotos WARTOŚCI (ad_id, image_name, disabled, isprimary) (%d, %s, %d,% d)", $ad_id, $ad_img, 0, 0)); także disabled i is_primary powinny być logiczne. Ale nie jestem pewien, jaki typ danych jest tutaj. Próbowałem też $wpdb->insert( '{$wpdb->prefix}awpcp_adphotos', // Table name array( 'ad_id' => $ad_id, 'image_name' => $ad_img, 'disabled' => 0, ' is_primary' => 0, ), // Columns array( '%s', '%d', '%d', '%d' ) // Jawne formatowanie ); Ale nie mam jeszcze szczęścia. Po uruchomieniu kodu nie pojawia się komunikat o błędzie. OK, znalazłem odpowiedzi gdzie indziej. powinno wyglądać tak: $wpdb->insert($wpdb->prefix.'awpcp_adphotos', array( 'ad_id' => $ad_id, 'image_name' => $image_name, 'disabled' => $disabled, 'isprimary ' => $jestpodstawowa, )); Pomyliłem się z formatem prefiksu.


title: Jak uzyskać dostęp do zmiennej na całej stronie?

text: Dodałem zmienną do mojego pliku functions.php: $options = get_option( 'simple_options' ); Mam dostęp do tej zmiennej na każdej stronie, ale jeśli wywołam ją w footer.php, to nie działa. Jak to naprawić?


title: Jak dodać obsługę menu do motywu?

text: Wypróbowałem kilka samouczków. Myślę tylko, że powinienem użyć `register_nav_menus()`, a następnie dodać menu w `header.php` Oto kod, który wypróbowałem w functions.php z tej strony pomocy function my_cool_menu_function(){ register_nav_menus( array( 'primary' => 'Nawigacja podstawowa' )); } add_action( 'after_setup_theme', 'my_cool_menu_function' ); W header.php <?php wp_nav_menu( array( 'theme_location' => 'primary' ) ); ?> Kiedy próbowałem sprawdzić, czy jakieś menu jest zarejestrowane za pomocą tej funkcji `$locations = get_nav_menu_locations();var_dump($locations);` otrzymałem tablicę o rozmiarze zero. Nie zarejestrowano menu. Czy czegoś mi brakuje? Widzę kilka linków w interfejsie, które są, jak sądzę, stronami. Widzę, że „Twój motyw nie obsługuje natywnie menu, ale możesz ich używać na paskach bocznych, dodając widżet „Niestandardowe menu” na ekranie Widgetów. Myślę więc, że powyższe menu nie jest zarejestrowane. Co złego tu robię? Dodałem `add_theme_support('nav-menus');` również w `functions.php` **Aktualizacje** Próbowałem tego samego kodu za pomocą wtyczki, dzięki czemu mogę zobaczyć menu. Co oznacza, że nie działa z plikiem functions.php motywu. Nie jestem pewien, dlaczego tak się dzieje. Czy ktoś to wie?


title: Ustawienia API przechowują zserializowane dane w bazie danych (Właściwy sposób)

text:
Próbuję nauczyć się Settings API i byłbym wdzięczny, gdyby ktoś mógł mi to wyjaśnić. Chcę przechowywać dane serializowane w bazie danych. Używam klasy do wykonania całej pracy za mnie. Oto co mam: public function admin_init() { register_setting('wp_plugin_template-group', 'my_settings', array(&$this,'validate')); // dodaj sekcję ustawień add_settings_section( 'wp_plugin_template-section', 'MY Settings', array(&$this, 'settings_section_wp_plugin_template'), 'wp_plugin_template' ); // dodaj pola ustawień add_settings_field( 'wp_plugin_template-setting_a', 'Setting A', array(&$this, 'settings_field_input_text'), 'wp_plugin_template', 'wp_plugin_template-section', array( 'field' => ' ) ); add_settings_field( 'wp_plugin_template-setting_b', 'Ustawienie B', array(&$this, 'settings_field_input_text'), 'wp_plugin_template', 'wp_plugin_template-section', array( 'field' => 'setting_b'); } Jak widać, używam funkcji sprawdzania poprawności wywołania zwrotnego, aby zwrócić tablicę, aby można ją było serializować i przechowywać w bazie danych. Oto funkcja Validate: public function validate($args) { //echo "vali"; $prawidłowa = tablica(); //$valid['setting_a'] = sanitize_text_field($args['setting_a']); //$valid['setting_b'] = sanitize_text_field($args['setting_b']); $ważne['setting_a'] = $_POST['setting_a']; $valid['setting_b'] = $args['setting_b']; //$valid['setting_a'] = "AAAA"; $valid['setting_b'] = "BBBB"; zwróć $prawidłowy; } Proszę zauważyć, że tylko jedna wartość jest teraz przechowywana w DB: $valid['setting_a'] = $_POST['setting_a']; //przechowywane w DB $valid['setting_b'] = $args['setting_b']; //Przechowywany jako null, innymi słowy nie działa $valid['setting_b'] = "BBBB"; //Działa dobrze, używam go tylko do celów testowych Oto jak zbudowany jest formularz: public function settings_field_input_text($args) { // Pobierz nazwę pola z tablicy $args $field = $args['field']; // Pobierz wartość tego ustawienia $value = get_option($field); // echo właściwego input type="text" echo sprintf('<input type="text" name="%s" id="%s" value="%s" />', $pole, $pole, $wartość); } I wyświetlane:
 <?php if ( isset( $_GET['settings-updated'] ) ) { echo "

Ustawienia zaktualizowano pomyślnie.

"; } ?> <?php screen_icon(); ?>
Szablon wtyczki WP
 <form method="post" action="options.php"> <?php //Wypisz pola nonce, action i option_page dla strony ustawień. Pamiętaj, że ta funkcja musi być wywołana wewnątrz tagu formularza na stronie opcji. ?> <?php @settings_fields('wp_plugin_template-group'); ?> <?php @do_settings_fields('wp_plugin_template-group'); ?> <?php @do_settings_sections('wp_plugin_template'); ?> <?php @submit_button(); ?> </form>
 Wersja HTML A:

WP Szablon wtyczki
 <form action="options.php" method="post"> <input type="hidden" value="wp_plugin_template-group" name="option_page"><input type="hidden" value= "aktualizacja" name="akcja"><input type="hidden"value="5d72478b96"name="_wpnonce"id="_wpnonce"><input type="hidden"value="/inspired/wp-admin/admin .php?page=usy-settings" name="_wp_http_referer">
MOJE ustawienia
 Te ustawienia robią rzeczy dla szablonu wtyczki WP.Ustawienie ASustawienie B A także próbowałem tego: Wersja HTML B:

Szablon wtyczki WP

Ustawienia zostały zaktualizowane pomyślnie.

 <form action="options.php" method="post"> <input type="hidden" value="wp_plugin_templ ate-group" name="option_page"><input type="hidden"value="update"name="action"><input type="hidden"value="5d72478b96"name="_wpnonce" id="_wpnonce" ><input type="hidden" value="/inspired/wp-admin/admin.php?page=usy-settings&settings-updated=true" name="_wp_http_referer">
MOJE ustawienia
 Te ustawienia rzeczy dla szablonu wtyczki WP.Ustawienie ASustawienie B Zastanawiałem się, czy istnieje lepszy sposób na zrobienie tego? Miałem wrażenie, że wszystkie wartości formularza zostaną przekazane jako parametr **$args** Ale bez względu na to, co spróbuję, **$args** zawsze jest puste:( Czy możesz mi pomóc zrozumieć, jak to działa? czy też **$_POST['setting_a']** jest moją jedyną opcją?


title: Jak uruchomić skrypt jQuery na stronie?

text: Mam trudności z ustaleniem, jak uruchomić skrypt jQuery na mojej stronie Wordpress w sposób "poprawny". Śledziłem ten artykuł i zaimplementowałem to, co mówi pierwsza odpowiedź. Jest tak wiele samouczków i artykułów, które przeczytałem na temat tego, jak uruchomić jQuery na swoim blogu, ale po prostu nie mogę tego rozgryźć. Mam wiele pytań, na które mam nadzieję odpowiedzieć od innych, którzy mieli w tym doświadczenie. Po pierwsze, większość samouczków i rzeczy, które przeczytałem, dotyczy tego, jak umieścić jQuery **_included_** na swoim blogu. Moje pierwsze pytanie brzmi, czy większość motywów, które tam pobierasz, nie powinno automatycznie zawierać jQuery w nagłówku? Na przykład moja witryna ma następujące wiersze automatycznie dołączane do każdej strony od samego początku:  ' . "\n"; } add_action('wp_head', 'add_jquery_script'); Następnie zapisuję plik i testuję go. Moja strona DZIAŁA!!! Hurra! Robi to, co chcę. Jednak nie jestem z tego zadowolony. Czytałem wszędzie, że zawsze powinieneś kolejkować swoje skrypty za pomocą metody, której próbowałem użyć, ale nie udało się. Więc kilka końcowych pytań, na które mam nadzieję uzyskać odpowiedź: * Po pierwsze, dlaczego to nie zadziałało, gdy próbowałem dodać skrypt do kolejki, ale zadziałało przy mojej drugiej metodzie? * Po drugie, chodzi o to, że skrypt jQuery, który napisałem, jest umieszczany na KAŻDEJ stronie mojej witryny... każdym poście, stronie itp. Czy to jest problem? Czy jest jakiś sposób, aby po prostu umieścić go na JEDNEJ stronie, na której chcę uruchomić skrypt, aby nie wpływał na inne strony? * Po trzecie, dlaczego nie mogę dołączyć tego skryptu do zakładki „tekst” mojego edytora TinyMCE, którego używam podczas pisania strony/postu? Próbowałem użyć znaczników `<script>` i po prostu umieścić swój mały skrypt pomiędzy nimi, ale to nie działa. * Po czwarte, jeśli NIE MOGĘ sprawić, by mój skrypt działał tylko dla jednej strony i musi on być zawarty na każdej stronie, to oczywiście będę musiał znacznie lepiej kierować moje elementy HTML. Oczywiście nie będę używał skryptu, który celuje w każdy przycisk za pomocą `$("button")`, więc czy po prostu nadałbym mojemu przyciskowi na tej konkretnej stronie jakiś unikalny identyfikator, taki jak `<button id="some-unique -id">` a następnie skierować go przez moje jQuery? W ten sposób skrypt będzie działał tylko dla tego przycisku. Przepraszam za bardzo długi post i noobowe pytania... Po prostu nigdy tak bardzo nie zadzierałem z jQuery i staram się owinąć głowę tym, jak pracować z Wordpressem, aby uwzględnić moje własne niestandardowe skrypty i rzeczy, które chcę uruchomić . Jeśli ktoś ma jakieś uwagi na którekolwiek z moich pytań, byłoby to BARDZO mile widziane. Dzięki wielkie!


title: Zapobieganie usunięciu/przeniesieniu pierwszej strony do kosza

text: Chcę zapobiec usunięciu/przeniesieniu mojej strony głównej do kosza za pomocą tego: add_action( 'wp_trash_post', 'tcb_page_delete_check' ); add_action( 'before_delete_post', 'tcb_page_delete_check' ); function tcb_page_delete_check( $post_id ){ $frontpage = get_option( 'page_on_front'); $blogpage = get_option('page_for_posts'); if( $post_id === $frontpage || $post_id === $blogpage ) { wp_redirect(admin_url('edit.php?post_type=page')); Wyjście; } } Problem polega na tym, że identyfikator opcji ('page_on_front') zmienia się z 7 (co jest moim pożądanym identyfikatorem strony głównej) na 0, gdy klikam "Kosz", więc nigdy nie pasuje do identyfikatora strony głównej i przenosi moją stronę do kosza. A jeśli zmienię to na: if( $post_id === 7 ... Strona nie zostanie przeniesiona do kosza, ale identyfikator opcji('page_on_front') zostanie zmieniony na 0. Jak zapobiec opcji('page_on_front ') zmienić na 0, aby moja strona główna pozostała taka sama i nie mogła zostać wyrzucona?


title: Zmiana kolejności treści przy użyciu wartości meta

text: Mam ten motyw, w którym możesz dodawać posty typu „portfolio” i chcę mieć możliwość zmiany ich kolejności. Dodałem niestandardowe pole meta o nazwie "pozycja" i już ustawiłem te wartości. Wszystko dobrze. Moje pytanie brzmi: jak mogę zmodyfikować zapytanie, aby dołączyć do tabeli wp_postmeta i uporządkować je według wartości „postion”? Oto aktualne zapytanie: $loop = new WP_Query( array( 'post_type' => 'portfolio', 'posts_per_page' => $homepagenumber ) ); Naprawdę doceniam każdą wskazówkę na ten temat. Wielkie dzięki.


title: Pomoc z funkcją powiązanych postów

text:
Próbuję napisać funkcję, która będzie pobierać wszystkie powiązane posty zgodnie z terminem taksonomii. Mam problem z zapytaniem o wiele terminów. Sposób, w jaki teraz to robię, polega na używaniu pierwszego terminu do wysyłania zapytań o powiązane posty. Masz pomysł, jak sprawdzić, czy jest to wielokrotność? function related_posts($related_type, $related_tax) { global $wpdb, $post; // Pobierz termin pokrewny $terms = array(); foreach(wp_get_object_terms($post->ID, $related_tax) as $term){ $terms[] = $term->slug; }; // Pobierz pierwszy termin z tablicy $related_term = array_shift(array_values($terms)); // Zapytanie o powiązane posty $related_posts = $wpdb->get_results( " SELECT * FROM $wpdb->posts LEFT JOIN $wpdb->term_relationships ON($wpdb->posts.ID = $wpdb->term_relationships.object_id) LEFT DOŁĄCZ $wpdb->term_taxonomy WŁ.($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) DOŁĄCZ DO LEWEJ $wpdb->terms WŁ.($wpdb->term_taxonomy.term_id) = $. $wpdb->posts.post_type = '$related_type' AND $wpdb->posts.post_status = 'publish' AND $wpdb->term_taxonomy.taxonomy = '$related_tax' AND $wpdb->terms.slug = '$related_term' AND $wpdb->posts.ID <> $post->ID ORDER BY $wpdb->posts.post_date DESC "); if($related_posts) { echo '
'; foreach ($related_posts jako $post):setup_postdata($post); echo '
'.get_the_title().'
'; na każdym kroku; echo '
'; } else { echo 'Nie znaleziono powiązanych postów'; } } Chciałbym coś takiego: jeśli ten termin LUB ten termin LUB ten termin TO wyświetl wszystkie powiązane posty. Wcześniej używałem $wpdb->terms.slug IN ('$terms'), ale wyświetliłoby to tylko powiązane posty z tym dokładnym dopasowaniem.


title: Struktura taksonomii i przepisywania

text: Mam niestandardowy typ postu (przepisy) i niestandardową taksonomię (r_cat). Szczerze mówiąc, jestem nowicjuszem i wypróbowałem różne scenariusze i opcje z tego, co przeczytałem w różnych postach i wyszukiwarkach google, ale nie mogę zmusić go do zrobienia tego, czego potrzebuję. Oto kod: add_action('init', 'cptui_register_my_cpt_recipes'); function cptui_register_my_cpt_recipes() { register_post_type('recipes', array( 'label' => 'Zdrowe przepisy', 'description' => '', 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'capability_type' => 'post', 'map_meta_cap' => true, 'hierarchical' => false, 'rewrite' => array('slug' => 'zdrowe przepisy', 'with_front' => true) , 'query_var' => true, 'has_archive' => true, 'supports' => array('title','editor','custom-fields','thumbnail','page-attributes','post-formats '), 'taxonomies' => array('post_tag','r_cat'), 'labels' => array ( 'name' => 'Zdrowe przepisy', 'singular_name' => 'Recipe', 'menu_name' => 'Recipes', 'add_new' => 'Dodaj przepis', 'add_new_item' => 'Dodaj nowy przepis', 'edit' => 'Edytuj', 'edit_item' => 'Edytuj przepis', 'new_item' => ' Nowy przepis', 'view' => 'Wyświetl przepis', 'view_item' => 'Wyświetl przepis', 'search_items' => 'Wyszukaj przepisy', 'not_f ound' => 'Nie znaleziono przepisów', 'not_found_in_trash' => 'Nie znaleziono przepisów w koszu', 'parent' => 'Przepis nadrzędny', ) ) ); } add_action('init', 'cptui_register_my_taxes_r_cat'); function cptui_register_my_taxes_r_cat() { register_taxonomy( 'r_cat',array ( 0 => 'recipes', ), array( 'hierarchical' => true, 'label' => 'Kategorie przepisów', 'show_ui' => true, 'query_var ' => true, 'rewrite' => array( 'slug' => 'zdrowe-receptury' ), 'show_admin_column' => false, 'labels' => array ( 'search_items' => 'Kategoria przepisów', 'popular_items ' => '', 'all_items' => '', 'parent_item' => '', 'parent_item_colon' => '', 'edit_item' => '', 'update_item' => '', 'add_new_item' = > '', 'new_item_name' => '', 'separate_items_with_commas' => '', 'add_or_remove_items' => '', 'choose_from_most_used' => '', ) ) ); } Kiedy po prostu ustawię taksonomię na: 'rewrite' => array( 'slug' => 'health- Recipes' ), wynikiem jest strona 404. Kiedy po prostu ustawię to na: 'rewrite' => true, wynikiem jest adres URL taki: http://website.com/r_cat/gluten-free-recipes/ To, czego naprawdę potrzebuję, to adres URL taki jak: http:/ /website.com/gluten-free-recipes/ Co muszę zmienić, a może dodać... aby uzyskać taką strukturę? Co jeszcze musisz wiedzieć? Z góry dziękuję!


title: Jak wyłączyć e-mail administratora „Twoja witryna została zaktualizowana do WordPress x.y.z”?

text: Korzystając z automatycznej aktualizacji moich blogów WordPress na własnym serwerze, skonfigurowałem automatyczne aktualizacje zarówno rdzenia WordPress, jak i wtyczek i motywów WordPress (za pośrednictwem tej wtyczki). Za każdym razem, gdy nastąpi aktualizacja rdzenia, otrzymuję wiadomość e-mail w stylu: > _Twoja witryna została zaktualizowana do wersji WordPress 3.9.2_ > > Witaj! Twoja witryna pod adresem http://example.org została automatycznie zaktualizowana do > WordPress 3.9.2. > > Nie musisz nic więcej robić. Aby uzyskać więcej informacji na temat wersji 3.9.2, przejdź do ekranu > O WordPress fora mogą być w stanie pomóc. > https://wordpress.org/support/ > > Zespół WordPressa Rozumiem, że mogę całkowicie wyłączyć powiadomienia e-mail z powiadomieniami administracyjnymi, ale wolałbym wyłączyć tylko powyższe powiadomienie. **Dlatego moje pytanie brzmi:** Jak wyłączyć powiadomienia o aktualizacjach w WordPressie?


title: Dodawanie stylów CSS tylko do STRON w obszarze administracyjnym (nie do WPISÓW i CPT)

text: Używam tego do ładowania stylów css w obszarze administracyjnym (dla każdego użytkownika, który nie jest administratorem): function wpse_admin_styles() { if ( !current_user_can( 'manage_options' )) { echo '<style> .fun-stuff-tutaj {kolor:aqua;} </style> '; } } add_action('admin_head', 'wpse_admin_styles'); Ale muszę ładować tylko niektóre style, jeśli przeglądana strona administratora jest **stroną** (nie postem lub niestandardowym postem typu post) Czy to możliwe? Myślę, że odpowiedź wybrana w tym pytaniu WPSE ma pewien potencjał, ale nie wiem, jak dodać niezbędny kod do tego, co mam: Jak dodać funkcję administratora tylko do postów, a nie stron? Natknąłem się również na ten post na Forum Wsparcia Wordpress. Odpowiedź OP u dołu (8. post od góry) wyglądała obiecująco, ale w użyciu stosuje CSS do wszystkich sekcji stron, postów i niestandardowych typów postów: http://wordpress.org/support/topic/add-new- przycisk-strony-w-administracji


title: Jak inaczej sformatować pierwszą linię posta?

text: Chciałbym, aby pierwszy akapit/zdanie moich postów na ich stronie single.php był inaczej stylizowany - powiedzmy... pogrubiony. Jak mam to zrobić w najbardziej efektywny sposób?


title: Czym różni się aktywacja sieci od aktywacji (przez implementację)?

text: Czym różni się aktywacja sieci wtyczek od normalnej aktywacji przez implementację? Co zostało zrobione/nie zrobione podczas aktywacji sieci, co zostało zrobione/nie zostało zrobione podczas aktywacji?


title: Połącz dziecko z niestandardowym typem wpisu z rodzicem za pomocą menu rozwijanego

text: Mam niestandardowy typ posta o nazwie wine, będzie to główny typ, mam również niestandardowy typ posta o nazwie recenzja. Chcę mieć możliwość powiązania wielu recenzji z winem i kontrolowania tego na ekranie edycji recenzji. W szablonie Wine muszę być w stanie połączyć się ze stroną zawierającą wszystkie recenzje tego wina, więc recenzja musi znać $post->id wina. Dzięki, Mark


title: Sztuczka, aby wyświetlić niestandardowe typy postów na niestandardowej stronie taksonomii?

text: Skonfigurowałem niestandardowy typ posta i niestandardową taksonomię dla tego typu postu, ale mam jeden problem - na stronach permalinków niestandardowej taksonomii treść niestandardowego posta, który powinien tam być, nie jest wyświetlana. Jednak patrząc na źródło strony, widzę, że jest div, który powinien zawierać treść posta. Jakieś sugestie, jak wyświetlić całą treść? Edycja: Wtyczka UI Custom Post Types została użyta do tworzenia niestandardowych typów postów i niestandardowych taksonomii. Edycja 2: Okazuje się, że był to problem z pracą dyplomową. Opcje projektu > Opcje wyświetlania > Archiwa zostały ustawione na „Tylko tytuły”, co uniemożliwiało wyświetlanie treści postów.


title: sprawdź, czy zarejestrowany pasek boczny jest aktywny i ma zawartość widżetu

text:
Chciałbym sprawdzić, czy zarejestrowany pasek boczny ma zawartość widżetu — ale nie mogę znaleźć dla tego funkcji WP — is_active_widget sprawdza, czy ma zawartość, ale nie, czy istnieje, czy nie. function ql_widget( $widget, $widget_name, $element = 'sider' ){ if ( $widget ) { // nazwa widżetu przekazana ## // sprawdź czy widżet jest aktywny - zwróć zawartość html i widżetu jeśli prawda ## if ( is_active_sidebar ( $widget ) ) { echo '
'; dynamic_sidebar( $widget ); echo '
'; } else { // wyślij błąd, jeśli żądany widżet nie istnieje lub jest pusty ## if ( ql_user_is_administator() ) { // użytkownik jest administratorem ## if ( dynamic_sidebar( $widget )) { // pusty ## $message = ' pusty'; } else { // błędny identyfikator lub nazwa widżetu ## $message = 'błąd'; } ?>
Widżet <?php echo $wiadomość; ?>: <?php echo $widget_name ? $widget_name : $widget ; ?>
 <?php } } } } Wywołuję to na stronie używając: // ładuj widżet ## // widget_id, nazwa widżetu, klasa elementu zawierającego ## ql_widget( 'sidebar-general', 'Standard Pasek boczny', 'boczny' ); Panele boczne są poprawnie zarejestrowane za pomocą register_sidebar() i mają przypisany unikalny identyfikator. obecnie ta funkcja zwraca błąd do administratora, jeśli widżetu brakuje lub jest pusty - chciałbym móc dostosować błąd, aby wskazywał, czy go brakuje, czy jest pusty. Dzięki! **AKTUALIZACJA** oto działająca funkcja: link do pastebin


title: Usunięto akapity podczas używania get_post_custom()?

text: Używam wtyczki pól niestandardowych o nazwie Zaawansowane pola niestandardowe do tworzenia pól niestandardowych, ale nie sądzę, że to jest przyczyną problemu. Kiedy pobieram pola niestandardowe z szablonu za pomocą get_post_custom(), znaczniki w polu są usuwane. Jeśli przeglądam źródło, jest napisane jak duży kawałek tekstu, ale z „normalnymi” podziałami wierszy, ale nie jest to widoczne, chyba że przeglądasz źródło w trybie offc. Jak pobrać pola niestandardowe i zachować tagi? Próbowałem dodać tag wokół jakiegoś tekstu i poszło dobrze, bez problemów z wyświetlaniem go. To tylko tagi, grr. Jakieś pomysły?


title: Przepisz strony i niestandardowy typ postu

text: Stworzyłem typ posta o nazwie soft_drink z regułą przepisywania /my_soft_drinks/%soft_drink%. my_soft_drinks to także slug strony. W moim menu struktura posiada stronę soft_drinks nadrzędne pozycje podmenu. Kiedy odwiedzam stronę podmenu, na przykład domain.com/my_soft_drinks/low_drinks zwraca błąd 404. Moim rozwiązaniem była reguła przepisywania w filtrze init, ale to nie działa: add_rewrite_rule( 'my_soft_drinks/([^/]+)/?', 'index.php?pagename=$matches[1]', 'top' );


title: Ładowanie niestandardowego szablonu strony na jednostronicowej witrynie internetowej

text: W przypadku witryny jednostronicowej zmodyfikowałem stronę główną tak, aby indeksowała wszystkie strony zamiast postów. Dla niektórych stron chcę stworzyć własny szablon (np. page-slug.php). Ale te szablony są ładowane tylko na pojedynczej stronie, a nie na stronach indeksu/archiwum. Bardzo mile widziane byłoby rozwiązanie tego problemu. DZIĘKI!


title: Shortcode, aby uzyskać strony podrzędne wielu rodziców (przy użyciu ślimaka rodzica)

text:
Używam ładnego shortcode, aby uzyskać strony podrzędne określonej strony, używając tylko slug strony nadrzędnej. [getChild name="page-slug"] Odbywa się to za pomocą tego kodu: function getChild_function($atts){ extract(shortcode_atts(array( 'name' => '', ), $atts)); globalny $post; $ta strona = $post; $wynik = nowy WP_Query('nazwa strony=' . $nazwa); $lookup = array( 'post_parent' => $result->post->ID, 'post_type' => 'strona', 'zamówienie' => 'ASC', 'orderby' => 'menu_order' ); $strony podrzędne = get_children($lookup); // jeśli strona ma dzieci, wypluj je. if(count($childpages) > 0){ $final_html = ''; foreach($strony podrzędne jako $k => $post){ setup_postdata($post); $final_html .= '

'. get_the_title() .'

'; } return $final_html; } // jeśli strona ma dzieci, wyrzuć je. $post = $ta strona; } Działa to dobrze, ale czasami muszę pobrać dzieci z 2 stron nadrzędnych. Próbowałem użyć shortcode 2 razy ([getChild name="page-slug"] [getChild name="page-slug2"]), ale to nie działa. Byłoby więc miło móc wpisać dwie lub więcej stron nadrzędnych oddzielonych przecinkami i mieć na liście wszystkie dzieci, na przykład: [getChild name="page-slug,page-slug2"] Wiem, że powinienem rozbić $atts jako sugerowane tutaj (przekazywanie wartości wielu rodziców do krótkiego kodu), ale nie wiem, jak mieszać kod i sprawić, by działał.


title: Jak zaimplementować wtyczkę z funkcją Foursquare jak check-in

text: Muszę dodać funkcję odprawy (bardzo podobną do odprawy Foursquare) w witrynie opartej na worpress. Na górze strony pojawi się przycisk „Zamelduj się”, a po kliknięciu go odwiedzający zostanie wyświetlona lista miejsc. 1. Czy ktoś może mi pomóc zdecydować, który z nich jest bardziej odpowiedni dla architektury wordpress? i. Klikając przycisk „Zaewidencjonuj”, wykonaj wywołanie AJAX i zaprezentuj listę miejsc jako modalne okno dialogowe. ii. Klikając przycisk „Zamelduj się”, wyświetl stronę Worpress z listą miejsc i przyciskiem przesłania. 2. Gdzie powinienem hostować API po stronie serwera? Użyj Wordpress XML RPC lub jako oddzielnej aplikacji API (może znajdować się na innym serwerze, a wywołanie AJAX między witrynami może być wykonane za pośrednictwem proxy php-curl)?


title: Jak dodać akcję machnięcia do stron wordpress

text: Mam stronę z wiadomościami. Mam główną stronę tytułową, a także kilka podstron (sportowych, społecznościowych). Pozostałe sekcje działają poprzez category.php. Lubię dodawać funkcję gestów dotykowych, taką jak ta http://jedrzejchalubek.com/glide/, ale jak to zrobić? Chodzi mi o to, jak mogę załadować różne strony, które zawsze są różne? Widzę, że ten rodzaj skryptu po prostu inaczej pozycjonuje już załadowaną zawartość. Jakieś pomysły?


title: Dodaj obraz do czytnika wtyczki RSS z innego kanału RSS

text:
Witam, potrzebuję pomocy z "Super czytnikiem RSS". Działa świetnie, ale potrzebuję dodać funkcję, aby uzyskać miniaturę obrazu z opisu RSS. foreach ($rss_items as $item){ // Pobierz link $link = $item->get_link(); while ( stristr($link, 'http') != $link ){ $link = substr($link, 1); } $link = esc_url(strip_tags($link)); // Pobierz tytuł elementu $title = esc_attr(strip_tags($item->get_title())); if ( empty($title) ) $title = __('Bez tytułu'); // Pobierz datę $data = $item->get_date('j F Y'); // Pobierz opis $desc = str_replace( array("\n", "\r"), ' ', esc_attr( strip_tags( @html_entity_decode( $item->get_description(), ENT_QUOTES, get_option('blog_charset')) ) )) ); if($strip_desc != 0){ $desc = wp_html_excerpt( $desc, $strip_desc ); if ( '[...]' == substr( $opis, -5 ) ) $opis = substr( $opis, 0, -5 ) . „[…]”; elseif ( '[…]' != substr( $desc, -10 ) ) $desc .= ' […]'; } $desc = esc_html( $desc ); // Pobierz autora $author = $item->get_author(); if ( is_object($autor)) { $autor = $autor->get_name(); $autor = esc_html(strip_tags($autor)); } // Otwórz linki w nowej karcie $newtab = ($open_newtab) ? ' target="_blank"' : ''; echo "\n\n\t"; // Wyświetl elementy kanału echo '
'; echo '' .$tytuł . ''; if($show_date) echo '
' . $data . ''; if($show_author) echo ' - ' . $autor . ''; if($show_desc) echo '
' . $desc . '
'; echo '
'; // Koniec wyświetlania $j++; } } Po prostu muszę dodać część "pobierz obraz". znalazłem kilka funkcji, ale nie jestem w stanie ich zaimplementować. Myślę, że wiele innych osób korzystających z czytnika super rss chętnie będzie wiedziało, jak dodać obrazki z opisu, a następnie wyświetlić je na widżetach. Wysyłam też pytanie do twórcy, ale na razie nie ma odpowiedzi. Dziękuję za wszelkie rady.


title: Wstaw galerię ACF z adresu URL

text:
Zbudowałem galerię przy użyciu zaawansowanych pól niestandardowych (ACF) i Flexslider. Suwak i obrazy wyświetlają się poprawnie przy użyciu poniższego kodu ACF. Ponieważ większość obrazów będzie hostowana gdzie indziej (na innym serwerze). 1. Czy nadal powinienem używać `the_field('gallery')` ? 2. Jak sformatować adresy URL do importu csv? To jest dla galerii `["174591","174592","174593","174594","174595"]` 3. Czy muszę dostosować kod, aby zawierał `wp_get_attachment_url()` Proszę pamiętać, że nie super biegły w php, przykłady pomogą. <?php /* * Wyświetl dane tablicy (do debugowania) */ var_dump( get_field('gallery') ); /* * Utwórz znacznik dla suwaka * Ten przykład utworzy znacznik dla Flexslider (http://www.woothemes.com/flexslider/) */ $images = get_field('gallery'); if( $obrazy ): ?>

 <?php foreach( $obrazy jako $obraz ): ?>
 <img src= "<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" />
<?php echo $image['podpis'] ; ?>

 <?php endforeach; ?>

 <?php /* * Poniższy kod tworzy nawigację miniatur */ ?>

 <? php foreach( $obrazy jako $obraz ): ?>
 <img src="<?php echo $obraz ['rozmiary']['miniaturka']; ?>" alt="<?php echo $obraz[ 'alt']; ?>" />
 <?php endforeach; ?>

 <?php endif; ?>


title: Jak mogę naprawić serwer, aby aktualizacja rdzenia/wtyczek/motywu nie po cichu nie zawodziła?

text: Prowadzę własny serwer i mam kilkadziesiąt stron WordPress. Ostatnio wiele aktualizacji (wtyczki i rdzeń) po cichu kończyło się niepowodzeniem. Jeśli próbuję dokonać aktualizacji ze strony aktualizacji, otrzymuję komunikat podobny do tego: > Rozpoczyna się proces aktualizacji. Na niektórych hostach ten proces może trochę potrwać, prosimy więc o cierpliwość. > > Włączanie trybu konserwacji… > > Aktualizacja wtyczki Jetpack przez WordPress.com (1/1) Ale nigdy nie postępuje dalej. Jeśli spróbuję aktualizacji ze strony wtyczek, otrzymuję > Pobieranie aktualizacji z > http://downloads.wordpress.org/plugin/jetpack.2.3.1.zip… > > Pobieranie aktualizacji z > http://downloads.wordpress .org/plugin/jetpack.2.3.1.zip… Ale nic więcej. Nie ma nic w dziennikach błędów PHP ani Apache, nawet jeśli ustawię WP_DEBUG na true. Aby było jasne, dzieje się tak w przypadku kilku wtyczek na wszystkich witrynach na tym serwerze, więc przypuszczam, że wystąpił problem z konfiguracją lub inny problem. Ale nie wiem, od czego zacząć szukać rozwiązania i/lub debugowania problemu. Czy ktoś może doradzić? PS - Na serwerze działa WHM/CPanel, więc to CENTOS 5.8. Apache 2.2, PHP 5.3 (problem wystąpił również w 5.2). Problem zaczął się, gdy zarządzane wsparcie wprowadziło pewne zmiany, które miały na celu powstrzymanie przeciążania serwera.


title: Jak wyciągnąć listę postów w kategorii, jednocześnie wykluczając posty w podkategoriach kategorii?

text: Korzystam z wywołania get_posts(), aby pobrać listę wpisów w określonej kategorii. Jednak zestaw rekordów zawiera również posty w podkategoriach kategorii docelowej. Jak mogę wykluczyć podkategorie z zapytania? $kot = get_query_var( 'kot' ); $catHidden=get_cat_ID('ukryty'); $args = array('cat' => "$cat,-$catHidden"); $mojeposty = get_posts($args);


title: Pokaż link czytaj więcej obok ostatniego słowa

text: Mam ten fragment function <?php function pietergoosen_get_the_content_limit_custom_allowedtags() { // Dodaj niestandardowe tagi do tego ciągu return ',<title>,<base>,<link>,<meta>,


title: Paginacja dla postów na blogu, która ponownie ładuje tę samą stronę

text:
**Symptomy** Zgodnie z oczekiwaniami odwiedzenie /blog/ wczytuje pierwsze 10 postów. Odwiedzenie /blog/page/2/ (i dalej) ładuje nowy adres URL, ale z tymi samymi 10 postami. Nic się nie zmienia poza adresem URL. **Szczegóły konfiguracji** Niestandardowa struktura linków bezpośrednich: `/blog/%year%/%monthnum%/%day%/%postname%/` Strona z postami statycznymi: „Blog” (slug „blog”) Używam ` home.php` wyświetla posty z następującymi znacznikami: <?php /** * Archiwum postów na blogu */ get_header(); ?>

 <?php while ( have_posts() ) : the_post(); ?> <?php get_template_part( 'zawartość', 'indeks bloga' ); ?> <?php koniec; ?>
 <?php get_sidebar( 'blog' ); ?>
 <?php wp_pagenavi(); ?>

 <?php get_footer(); ?> Sprawdziłem pod kątem konfliktów wtyczek i prowadzę stosunkowo minimalistyczną konfigurację. Używam **WP-PageNavi** do generowania stronicowania. Próbowałem również zmienić nazwę strony /blog/ na "blog2" z myślą, że może wystąpić konflikt permalink - ten sam wynik. /blog2/strona/2/ ładuje te same pierwsze 10 postów. Jakieś pomysły, co może być tutaj przyczyną?


title: printf, tłumaczenie i link_autora_postów()

text: Z jakiegoś powodu następujący kod nie wyświetla się poprawnie na interfejsie mojej witryny - <?php printf( esc_attr__( 'O %s', 'textdomain' ), the_author_posts_link() ); ?> Zamiast wyświetlać możliwy do przetłumaczenia ciąg 'About' przed nazwą/linkiem autora, wyświetla go później. Zakładam, że dzieje się tak, ponieważ używam tam funkcji zamiast zmiennej. Czy jest sposób, aby to zadziałało, czy powinienem to całkowicie przepisać?


title: Błąd podczas żądania wiadomości e-mail o zresetowaniu hasła - uwierzytelnianie wp

text: Gdy użytkownik próbuje zażądać wiadomości e-mail dotyczącej resetowania hasła, pojawia się następujący błąd: Nie można wysłać e-maila. Możliwy powód: Twój host mógł wyłączyć funkcję mail(). Zgodnie z zaleceniami, które przeczytałem w Internecie, wypróbowałem kilka wtyczek SMTP. Żaden nie działał. W końcu otrzymałem od jednego z informacji debugowania. Najpierw ustawienia SMTP, których użyłem (dla gmaila) serwer: smtp.gmail.com port: 587 Bezpieczeństwo: TLS Require Auth: Yes Użytkownik: <myuser>@gmail.com Pass: mypass Oto wynik: Wynik: bool (false) Pełne wyniki debugowania są pokazane poniżej: object(PHPMailer)#365 (65) { ["Priorytet"]=> int(3) ["CharSet"]=> string(5) "UTF-8" [" ContentType"]=> string(10) "text/plain" ["Kodowanie"]=> string(4) "8bit" ["ErrorInfo"]=> string(95) "Następujący adres nadawcy nie powiodło się: <myuser>@ gmail.com : Wywołano Mail() bez połączenia" ["Od"]=> string(20) "<mójużytkownik>@gmail.com" ["NazwaOd"]=> string(10) "Tim Shutes" ["Nadawca "]=> string(0) "" ["ReturnPath"]=> string(0) "" ["Temat"]=> string(50) "WP Mail SMTP: Przetestuj pocztę do <myuser>@gmail.com" ["Body"]=> string(68) "To jest testowy e-mail wygenerowany przez e Wtyczka WordPress WP Mail SMTP." ["AltBody"]=> string(0) "" ["MIMEBody:protected"]=> string(69) "To jest testowy e-mail wygenerowany przez wtyczkę WP Mail SMTP WordPress." ["MIMEHeader:protected"]= > string(453) "Data: środa, 11 września 2013 20:33:18 +0000 Return-Path: <mójużytkownik>@gmail.com Do: <mójużytkownik>@gmail.com Od: Tim Shutes Temat: Poczta WP SMTP: Przetestuj pocztę na adres <myuser>@gmail.com Message-ID: X-Priority: 3 X-Mailer: PHPMailer 5.2.4 (http://code.google.com/a/apache-extras.org/p/phpmailer/ ) Wersja MIME: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 " ["mailHeader:protected"]=> string(0) "" ["WordWrap"]=> int (0) ["Mailer"]=> string(4) "smtp" ["Sendmail"]=> string(18) "/usr/sbin/sendmail" ["UseSendmailOptions"]=> bool(true) ["PluginDir "]=> string(0) "" ["PotwierdźCzytajDo"]=> string(0) "" ["Nazwa hosta"]=> string(0) "" ["M essageID"]=> string(0) "" ["MessageDate"]=> string(0) "" ["Host"]=> string(14) "smtp.gmail.com" ["Port"]=> string (2) "25" ["Helo"]=> string(0) "" ["SMTPSecure"]=> string(3) "ssl" ["SMTPAuth"]=> bool(true) ["Nazwa użytkownika"]= > string(20) "<mójużytkownik>@gmail.com" ["Hasło"]=> string(9) "<mojehasło>" ["Typ Auth"]=> string(0) "" ["Realm"]=> string(0) "" ["Stacja robocza"]=> string(0) "" ["Limit czasu"]=> int(10) ["SMTPDebug"]=> int(2) ["Debugoutput"]=> string( 4) "echo" ["SMTPKeepAlive"]=> bool(false) ["SingleTo"]=> bool(false) ["SingleToArray"]=> array(0) { } ["LE"]=> string(1 ) " " ["DKIM_selector"]=> string(0) "" ["DKIM_identity"]=> string(0) "" ["DKIM_passphrase"]=> string(0) "" ["DKIM_domain"]=> string (0) "" ["DKIM_prywatny" ]=> string(0) "" ["funkcja_działania"]=> string(0) "" ["Wersja"]=> string(5) "5.2.4" ["XMailer"]=> string(0) " " ["smtp:protected"]=> obiekt(SMTP)#364 (11) { ["SMTP_PORT"]=> int(25) ["CRLF"]=> string(2) " " ["do_debugowania"]= > int(2) ["Debugoutput"]=> string(4) "echo" ["do_verp"]=> bool(false) ["Limit czasu"]=> int(10) ["Limit czasu"]=> int( 30) ["Wersja"]=> string(5) "5.2.4" ["smtp_conn:private"]=> bool(false) ["błąd:prywatne"]=> array(1) { ["błąd"] => string(37) "Called Mail() bez połączenia" } ["helo_rply:private"]=> NULL } ["to:protected"]=> array(1) { [0]=> array(2) { [0]=> string(23) "<mójużytkownik>@gmail.com" [1]=> string(0) "" } } ["cc:pr otected"]=> array(0) { } ["bcc:protected"]=> array(0) { } ["OdpowiedzDo:chronione"]=> array(0) { } ["all_recipients:protected"]=> array(1) { ["<mójużytkownik>@gmail.com"]=> bool(true) } ["attachment:protected"]=> array(0) { } ["CustomHeader:protected"]=> array(0 ) { } ["message_type:protected"]=> string(5) "zwykły" ["boundary:protected"]=> array(3) { [1]=> string(35) "b1_b0121eb40a93fb27be20cbb901b9250f" [2]=> string(35) "b2_b0121eb40a93fb27be20cbb901b9250f" [3]=> string(35) "b3_b0121eb40a93fb27be20cbb901b9250f" } ["language:protected"]=> array(18) { ["uwierzytelnij"]=> Błąd SMTP(35) " nie uwierzytelniać." ["connect_host"]=> string(43) "Błąd SMTP: Nie można połączyć się z hostem SMTP." ["data_not_accepted"]=> string(30) "Błąd SMTP: dane nie zostały zaakceptowane." ["empty_message"]=> string(18) "Treść wiadomości jest pusta" ["kodowanie"]=> string(18) "Nieznane kodowanie: " ["wykonaj"]=> string(19) "Nie można wykonać: " [ "file_access"]=> string(23) "Nie można uzyskać dostępu do pliku: " ["file_open"]=> string(33) "Błąd pliku: nie można otworzyć pliku:" ["from_failed"]=> string(35)" Następujący adres nadawcy nie powiódł się: " ["instantiate"]=> string(36) "Nie można utworzyć wystąpienia funkcji poczty." ["invalid_address"]=> string(15) "Nieprawidłowy adres" ["mailer_not_supported"]=> string(25) " Mailer nie jest obsługiwany." ["provide_address"]=> string(54) "Musisz podać co najmniej jeden adres e-mail odbiorcy." ["recipients_failed"]=> string(45) "Błąd SMTP: następujący adresaci nie powiedli się: " ["podpisywanie"]=> string(15) "Błąd podpisywania: " ["smtp_connect_failed"]=> string(22) "SMTP Connect() nie powiodło się." ["smtp_error"]=> string(19) "Błąd serwera SMTP: " ["variable_set"]=> string(30) "Nie można ustawić lub zresetować zmiennej: " } ["error_count:protected"]=> int(2) ["sign_cert_file:protected"]=> string(0) "" ["sign_key_file:protected"]=> string(0) "" ["sign_key_pass:protected"]=> string(0) "" ["wyjątki:chronione "]=> bool(false) } Wyniki debugowania SMTP są pokazane poniżej: SMTP -> ERROR: Nie można połączyć się z serwerem: Permission denied (13) Poniższy adres nadawcy nie powiodło się: <myuser>@gmail.com : Called Mail( ) bez połączenia To zachowanie występuje TYLKO w witrynie zdalnej. E-maile odzyskiwania hasła działają dobrze w lokalnej kompilacji. Dodatkowo, w moim rozumieniu, gdyby to był tylko problem z webhostem, wtyczki SMTP zadziałałyby, a nie. Czy ktoś może wskazać mi tutaj właściwy kierunek? Możesz zobaczyć zachowanie tutaj: abundancellc.com/wp-admin - spróbuj poprosić o zresetowanie hasła i wpisz "testuser" jako użytkownik. Nawiasem mówiąc, nie miałem problemu ze skonfigurowaniem "testusera", ale nigdy nie otrzymałem e-maila z moim hasłem - mimo że o to poprosiłem. Co się dzieje? Jeśli są to serwery rackspace, dlaczego wtyczki SMTP nie działają?


title: jak otworzyć podmenu na aktywnej stronie wordpress

text: mam ten sam problem na mojej stronie kliknij tutaj jak mogę zmienić kod dla kiedy klikniesz na profil firmy wchodzisz na stronę i podmenu pozostaje otwarte proszę o pomoc


title: WP_Query pobiera dodatkowy post na stronę

text:
Pytam o listę wszystkich postów, 20 posts_per_page, ale wynik pokazuje wszystkie posty, ale z 21 postami na stronę. Jeśli zmienię posts_per_page na 19, to 20 pokaż. Jeden post jest lepki i pojawia się dwa razy; nie jestem pewien, czy to jest przyczyną problemu. Kod: $allposts = array( 'post_type' => 'post', 'posts_per_page' => 20 ); $wp_query = nowe WP_Query($allposts); ?> <?php while ( $wp_query->have_posts() ): $wp_query->the_post(); ?>
<?php the_title(); ?>
 <?php foo_pagination(); ?> <?php koniec; ?>


title: Zapytanie Wp dla niestandardowej strony szablonu

text:
Chcę stworzyć niestandardowy szablon strony, który tę niestandardową stronę kopiuję z index.php. Na index.php mam 3 kolumny (2 sidebar i 1 kolumnę zawartości listy). Ale na tej niestandardowej stronie planuję tworzyć tylko w 2 kolumnach, co oznacza 1 dla paska bocznego i drugą dla kolumny z zawartością listy. Słyszę problem, że jeśli chcę, aby ta niestandardowa strona wyświetlała zawartość, taką jak index.php, muszę użyć zapytania wp. Pytanie, jak zaimplementować ten index.php za pomocą zapytania wp? dzięki

 <?php if(have_posts()): ?><?php while( have_posts()):the_post(); ?>

<?php the_post_thumbnail('slidethumb'); ?>

 <a href="<?php the_permalink(); ?>"> <?php if (strlen($post->post_title) > 40) { echo substr(the_title($before = '', $after = '', FALSE), 0, 40) . „...”; } inny { tytuł_(); } ?>
 <?php the_time('F d, Y'); ?> | <?php kategoria_(' '); ?>
<?php echo get_the_catcharacter_excerpt(); ?>...

 <?php endwhile; ?> <?php endif; ?> <?php if (function_exists('wp_corenavi')) wp_corenavi(); ?>
 <?php get_sidebar('prawo'); ?>

 Dzięki Bogu mam 2 dni na rozwiązanie tego problemu, uhhh. Możesz znaleźć odpowiedź tutaj WP_Query pociągając dodatkowy post na stronę


title: Zmień e-mail dla powiadomienia o aktualizacji

text: Niedawno otrzymałem e-mail z powiadomieniem o aktualizacji. `[Przykład.com] Twoja witryna została zaktualizowana do wersji WordPress 3.8.1` `Witaj! Twoja witryna pod adresem http://www.example.com została automatycznie zaktualizowana do wersji WordPress 3.8.1. [...]` **Chcę zmienić adres e-mail, na który trafia to powiadomienie.** Wygląda na to, że nie jest powiązany z żadnym użytkownikiem. Przeszukałem cały backend i nie mogę znaleźć wymaganego ustawienia.


title: Wylogowanie daje błąd 404

text: Kiedy próbuję wylogować się z mojej witryny, przenoszę się do strony 404 i wylogowanie nie działa. Adres URL wygląda tak: http://www.mysite.com/wp-login.php?action=logout&_wpnonce=4a09cb2887&redirect_to=http://www.mysite.com Czy ktoś może wskazać mi właściwy kierunek?


title: Terminy z tablicy zapytań podatkowych są niesprawne

text:
Chcę, aby moje terminy tax_query wyświetlały posty w kolejności, w jakiej zostały wymienione w poniższej tablicy, ale nie jest to kolejność wymieniona. $args = array( 'post_type' => 'staff', 'posts_per_page' => '-1', 'tax_query' => array( array( 'taxonomy' => 'staff-title', 'field' => ' slug', 'terms' => array( 'edytor-naczelny', 'edytor-zarządzający', 'edytor-fikcji', 'edytor-poezji', 'edytor-literatury faktu', 'kierownik-produkcji' )) ) ); $my_query = nowe WP_Query( $args ); if ($my_query->have_posts()) : while ($my_query->have_posts()) : $my_query->the_post(); echo'
'; echo'
'; echo'
'; pole_('tytuł_pracownika'); echo'
'; echo'
'; the_field('nazwa_członka_pracownika'); echo'
'; echo'
 '; echo'
'; echo''; echo'
 '; echo'
 '; Zawartość(); koniec; endif; ?> zamiast tego wyświetla posty w następującej kolejności: Edytor fikcji Edytor fikcji Edytor poezji Edytor poezji Edytor nonfiction Menedżer produkcji Redaktor zarządzający Redaktor naczelny


title: Podział na strony WP_Query używający tylko liczb zamiast /page/1 w adresie URL

text: Nie rozumiem, co się tutaj dzieje. Jestem na szablonie strony podrzędnej, generując w locie WP_Query dla niestandardowych typów postów, tak jak to: $notrel = new WP_Query(array( 'post_type' => $type, 'posts_per_page' => $perpage, 'monthnum ' => $mes, 'rok' => $ano, 'paged' => $paged )); Pętle i filtry $_GET dla `post_type`, `monthnum` i `year` działają doskonale. Ale paginacja sprawia mi kłopoty. A) Jeśli spróbuję adresu URL `http://example.com/parent-page/child-page/page/4/` otrzymam `paged = 1`. B) Z drugiej strony, „http://example.com/strona-nadrzędna/strona-dziecka/4/” poprawnie daje „paged = 4”, ale paginacja nie działa, ponieważ „next_posts_link” automatycznie kształtuje adresy URL, takie jak A. Myślę, że `/page/4/` jest standardem, więc dlaczego tutaj nie działa? Czy to może parametr rewrite na register_post_type? **EDYTUJ:** nadal nie rozwiązany, zobacz -> paginate_links() dodaje pusty href do pierwszej strony i poprzedniego linku


title: Jak dodać wrapper do Infinite Scroll JavaScript?

text: Używam Wordpressa i ręcznie dodaję Infinte Scroll z pauliris na GitHub: https://github.com/pauirish/infinite-scroll/ Ładuje się poprawnie, ale jak mogę dodać wrapper wokół wszystkich moich postów? Zasadniczo wyprowadzam każdy post w znaczniku `<li>`. I chcę dodać `<ol>` aby otoczyć/zawinąć pozycję listy postów. Jakieś myśli, jak to zrobić? Dla odniesienia, to jest skrypt, którego używam w pliku functions.php: /** * Załaduj JavaScript dla Infinte Scroll */ function custom_theme_js(){ wp_register_script( 'infinite_scroll', get_template_directory_uri() . '/js/jquery. nieskończoność.min.js', array('jquery'),null,true ); if(! is_page_template( 'archiwum') ) { wp_enqueue_script('infinite_scroll'); } } add_action('wp_enqueue_scripts', 'custom_theme_js'); /** * Nieskończone przewijanie */ function custom_infinite_scroll_js() { if( ! is_page_template( 'archiwum' ) ) { ?> <script> var endless_scroll = { loading: { img: "<?php echo get_template_directory_uri(); ?>/ images/ajax-loader.gif", msgText: "<?php _e( 'Wczytywanie następnego zestawu postów...', 'niestandardowe' ); ?>", finishMsg: "<?php _e( 'Wszystkie posty zostały załadowane .', 'custom' ); ?>" }, "nextSelector":".navigation .nav-next a", "navSelector":".navigation", "itemSelector":".archive-image", "contentSelector" :"#zawartość-archiwum" }; jQuery( endless_scroll.contentSelector ).infinitescroll( endless_scroll ); </script> <?php } } add_action( 'wp_footer', 'custom_infinite_scroll_js',100 ); Dziękuję!


title: Single Sign On lub Bridge w witrynach WordPress?

text: Mam 5 różnych instalacji wielostanowiskowych. Chcę, aby wszystkie instalacje w wielu lokalizacjach (nie tylko podlokacje, całe instalacje) były rejestrowane w trybie jednokrotnego logowania . Dzięki temu użytkownik może zalogować się do wszystkich witryn, jeśli zarejestruje się na jednej stronie internetowej. Mogę użyć niektórych wtyczek OAuth lub wtyczek jednokrotnego logowania. Ale nadal potrzebują dwóch kroków, aby zarejestrować się i zalogować w każdej witrynie WordPress. Więc chciałbym dostosować lub użyć dowolnej wtyczki, aby to zrobić. Znam trochę PHP i postaram się to zrobić, jeśli ktoś mi pomoże. Czy ktoś mógłby dać mi znać, czy powinienem to zrobić, kodując, czy używając wtyczki? Uwaga: używam instalacji WordPress 3.1.1 i serwera VPS aktualizacji CentOS: słyszałem o kilku opcjach, takich jak LDAP, Cosign on itp. Jest kilka wtyczek, takich jak LDAP, CoSign SSO itp. Nie wiem, jak z nich korzystać. Czy ktoś mógłby dać mi znać, jeśli pomoże mi w tej sytuacji? BTW, aktywowałem XAuth i nie wiem jak zacząć. Dzięki !


title: Jak utworzyć instancję funkcji wywołania zwrotnego custom_save_after?

text: Muszę wykonać kilka niestandardowych operacji po zapisaniu ustawień w konfiguratorze. Wygląda na to, że funkcja callback nie została wywołana. Co ja robię źle? Coś związanego ze stanem dostosowania Ajax? add_action('customize_save_after', 'myCustomizeSaveAfter', 99); function myCustomizeSaveAfter() { wp_die("Dlaczego nie umrę?"); } UWAGA: Powodem nie jest wywołanie `wp_die()`. Inne instrukcje również nie są wykonywane.


title: Jak usunąć określone style z CSS motywu nadrzędnego za pomocą CSS motywu potomnego?

text: W moim motywie macierzystym jest kilka stylów, które po prostu usunąłbym z arkusza stylów, gdybym nie używał motywu potomnego. Oczywiście nie chcę ich usuwać z nadrzędnego CSS, ale czy istnieje sposób na skuteczne „usunięcie” stylów za pomocą mojego motywu potomnego?


title: Wtyczka GeoMashup: jak dostosować znaczniki / ikony klastrów?

text: Czy istnieje sposób na dostosowanie standardowego znacznika ikony klastra, którego GeoMashup używa do wyświetlania pobliskich postów zgrupowanych w określonym obszarze? Domyślnie jest to czerwona kropka w V2 lub niebieska kropka w V3. Muszę dostosować jego wygląd i zastąpić go tłem/obrazem?


title: Motyw ma superfish - jak dodać supersubs?

text: Używam motywu, który używa Superfish do menu nawigacyjnego. Problem polega na tym, że jeśli element podrzędny jest zbyt długi, spadnie pod spodem, chcę zachować tekst poszczególnych elementów menu w jednym wierszu. Teraz znalazłem supersubs do menu superfish, ale nie wiem, jak dodać je do motywu. To jest w pliku functions.php. wp_enqueue_script('superfish', get_stylesheet_directory_uri() . '/js/superfish.js'); a to jest w pliku header.php. <script type="text/javascript"> jQuery(function($){ $(document).ready(function(){ //Menu rozwijane $('ul.sf-menu').superfish({ opóźnienie: 1000 , animacja: {opacity:'show',height:'show'}, speed: 'normal', autoArrows: true, dropShadows: false }); }); }); </script> Jak mogę dodać supersubs do menu, aby rozwiązać problem, który mam z sub-elementami. Dziękuję


title: Jak ręcznie naprawić kod galerii WordPress za pomocą PHP w functions.php?

text:
Wiele razy mówiono, że Wordpress generuje naprawdę zły kod dla wbudowanej funkcji galerii. To jest główny kod odpowiedzialny za wyjście galerii (w /wp-include/media.php): function gallery_shortcode($attr) { global $post; $instancja statyczna = 0; $instancja++; // Zezwalaj wtyczkom/motywom na zastępowanie domyślnego szablonu galerii. $output = apply_filters('post_gallery', '', $attr); if ( $wyjście != '' ) return $wyjście; // Ufamy danym wprowadzonym przez autora, więc upewnijmy się przynajmniej, że wygląda jak prawidłowe polecenie orderby if ( isset( $attr['orderby'] ) ) { $attr['orderby'] = sanitize_sql_orderby( $attr[' Zamów przez'] ); if ( !$attr['orderby'] ) unset( $attr['orderby'] ); } extract(shortcode_atts(array( 'order' => 'ASC', 'orderby' => 'menu_order ID', 'id' => $post->ID, 'itemtag' => 'dl', 'icontag' = > 'dt', 'captiontag' => 'dd', 'columns' => 3, 'size' => 'thumbnail', 'include' => '', 'exclude' => '' ), $attr) ); $id = intval($id); if ( 'RAND' == $order ) $orderby = 'brak'; if ( !empty($include)) { $include = preg_replace( '/[^0-9,]+/', '', $include ); $_attachments = get_posts( array('include' => $include, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) ); $załączniki = tablica(); foreach ( $_attachments as $key => $val ) { $attachments[$val->ID] = $_attachments[$key]; } } elseif ( !empty($exclude)) { $exclude = preg_replace( '/[^0-9,]+/', '', $exclude ); $attachments = get_children( array('post_parent' => $id, 'exclude' => $exclude, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) ); } else { $attachments = get_children( array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) ); } if ( empty($attachments) ) return ''; if ( is_feed() ) { $output = "\n"; foreach ( $attachments as $att_id => $attachment) $output .= wp_get_attachment_link($att_id, $size, true) . "\n"; zwróć $wyjście; } $itemtag = tag_escape($itemtag); $captiontag = tag_escape($captiontag); $kolumny = intval($kolumny); $itemwidth = $kolumny > 0 ? piętro (100/kolumny $): 100; $float = is_rtl() ? 'prawo lewo'; $selector = "galeria-{$instance}"; $gallery_style = $gallery_div = ''; if ( apply_filters( 'use_default_gallery_style', true ) ) $gallery_style = "  "; $size_class = sanitize_html_class( $rozmiar ); $gallery_div = "
"; $output = apply_filters( 'gallery_style', $gallery_style . "\n\t\t" . $gallery_div ); $i = 0; foreach ( $attachments as $id => $attachment ) { $link = isset($attr['link']) && 'file' == $attr['link'] ? wp_get_attachment_link($id, $rozmiar, fałsz, fałsz) : wp_get_attachment_link($id, $rozmiar, prawda, fałsz); $output .= "<{$itemtag} class='gallery-item'>"; $output .= " <{$icontag} class='gallery-icon'> $link </{$icontag}>"; if ( $captiontag && trim($attachment->post_excerpt)) { $output .= " <{$captiontag} class='wp-caption-text gallery-caption'> " . wptexturize($attachment->post_excerpt) . " </{$captiontag}>"; } $output .= "</{$itemtag}>"; if ( $kolumny > 0 && ++$i % $kolumny == 0 ) $output .= '
'; } $output .= "

\n"; zwróć $wyjście; } # Co chciałbym naprawić? **[1]** Powyższy kod wyświetla styl CSS bezpośrednio w poście. Chcę to powstrzymać, ponieważ mogę łatwo dodać ten sam kod css do mojego arkusza stylów style.css. **[2]** Chcę wyłączyć wyświetlanie w kodzie podpisów obrazów pod ich miniaturami. Chcę, aby podpisy wyświetlały się tylko na stronach załączników, a nie w poście. **[3]** Wspomniany kod dodaje dwa elementy `<br style="clear: both;">` po kodzie galerii. Chciałbym również to wyłączyć, ponieważ mogę do tego użyć "margin" w kodzie css. Chciałbym wykonać powyższe "TRZY" rzeczy używając kodu PHP w pliku `functions.php`, ponieważ edycja plików core nie jest zalecana. Mam nadzieję, że ktoś może ci pomóc. (Nie umiem kodować, więc proszę o wyjaśnienie, jak to tylko możliwe.) Dzięki! **WAŻNE:** Plik źródłowy do przejrzenia to `/wp-includes/media.php` (tutaj jest wersja trunk \-- poszukaj funkcji `gallery_shortcode`).


title: Uzyskaj współrzędne wybranego obszaru do wykorzystania w mapach obrazów

text: Opracowuję wtyczkę WordPress, która pozwala użytkownikowi wstawiać mapy obrazów na obrazie z domyślnego edytora obrazów WordPress. Potrzebuję do tego JavaScriptu, aby po wybraniu przez użytkownika jakiegoś obszaru na obrazie zwrócono współrzędne wybranego obszaru do użycia w tagu obszaru.


title: wyszukiwanie i dodawanie treści wordpress

text: Mam wtyczkę wordpress, która wyświetla filmy za pomocą shortcode. Mój problem polega na tym, że przypisuje div do identyfikatorów, takich jak video-1-player, video-2-player itp. Muszę utworzyć funkcję, która przeszukuje moją treść pod kątem `<div id="video-(tutaj dowolna liczba)- player">` i dodaje klasę wewnątrz div. Znalazłem ten kod, który wyszukuje pierwszy obraz, a następnie możesz go wydrukować. Mój PHP nie jest wystarczająco dobry, abym mógł go edytować zgodnie z potrzebami. Może to ci pomoże? function catch_that_image() { global $post, $posts; $pierwszy_img = ''; ob_start(); ob_end_clean(); $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches); $ first_img = $matches [1] [0]; if(empty($first_img)){ //Definiuje domyślny obraz $first_img = "/images/default.jpg"; } return $first_img; }


title: Czy dodawanie i modyfikowanie domyślnego indeksu tabeli Wordpress przerwie przyszłą aktualizację Wordpress?

text: Mam konkretny przypadek użycia dla niektórych domyślnych tabel wordrpess, do których muszę dodać kilka indeksów do niektórych kolumn, aby poprawić wydajność. Zastanawiam się, czy dodanie tych indeksów zepsuje przyszłą aktualizację Wordpress, gdy zdecydują się dodać indeks do tej samej kolumny?


title: Windows 7 pobierz WordPress i załaduj do stosu LAMP i skonfiguruj

text: Jaki jest najszybszy sposób utworzenia instancji Windows istniejącej witryny WordPress, zakładając, że mam kopię zapasową kodu i bazy danych z serwera? Bawiłem się różnymi stosami LAMP, ale zastanawiam się, czy nie mogę zrobić czegoś prostego i lekkiego.


title: media_sideload_image generuje puste?

text: Tworzę niestandardowy formularz postu, który ma pobrać zewnętrzny obraz i przesłać go do biblioteki multimediów i dołączyć do tego postu. Powinno to być możliwe przy użyciu media_sideload_image, ale otrzymuję pustą stronę zamiast działać poprawnie, bez błędu. Mój kod: // Dodaj zawartość formularza do $post jako tablicę $new_post = array( 'post_title' => $title, 'post_content' => $description, 'tags_input' => $tags, 'post_type' = > 'link_submit', 'post_status' => 'opublikuj' ); //zapisz nowy post i zwróć jego identyfikator if ($stop == false){ $pid = wp_insert_post($new_post); update_post_meta($pid,'Link',$link,prawda); update_post_meta($pid,'Typ',$typ,prawda); // dołącz obrazek set_time_limit(300); $upload = media_sideload_image($link, $pid, "test"); if ( is_wp_error ( $ prześlij ) ) { die ( 'Nie' ); } $link = pobierz_permalink( $pid ); wp_redirect( $link."?wysłane" ); umierać(); } Pomysły? Dzięki, Dennis edytuj: nowy kod: if (is_page('Upp')){ require_once(ABSPATH . 'wp-admin/includes/file.php'); require_once (ABSPATH . 'wp-admin/includes/media.php'); set_time_limit(300); $upload = media_sideload_image("http://29.media.tumblr.com/tumblr_lmp1tbiYwh1qzlfumo1_500.jpg", "202", "mój opis"); umrzeć ( $prześlij ); }


title: Przesłać obraz przez adres URL?

text: Próbuję stworzyć niestandardowy formularz, który pobiera obraz (offsite) i dołącza go do posta, abym mógł go użyć jako miniatury w pętli. Patrzyłem na media_handle_upload, ale wydaje się, że działa tylko w przypadku treści przesłanych lokalnie. Pomysły? Dzięki, Dennis


title: programowe tworzenie kategorii

text: Tworzę program do przesyłania wsadowego i byłoby dobrze, gdybym mógł również dodawać do moich postów kategorie z kategoriami nadrzędnymi. Mam następujący kod: $my_cat = array( 'cat_name' => $cat_name, 'category_description' => $cat_desc, 'category_nicename' => $cat_slug, 'category_parent' => $cat_parent); if (function_exists('wp_insert_category')){ $my_cat_id = wp_insert_category($my_cat); }elseif(function_exists('wp_create_category')){ $my_cat_id = wp_create_category($cat_name,$cat_parent); }elseif(function_exists('wp_insert_term')){ $parent_term = termin_exists($cat_name, $cat_parent); $parent_term_id = $parent_term['term_id']; $ var = wp_insert_term ($ cat_name, $ cat_parent); if ( is_wp_error($zmienna)){ echo $zmienna->get_error_message(); echo " Kategoria ";var_dump($cat_name);echo" nie zostało utworzone "; } zarówno $cat_name, jak i $cat_parent są zawsze poprawne z pewną wartością, a $cat_parent istnieje zawsze przed utworzeniem $cat_name. ale zawsze otrzymuję tylko > Nieprawidłowa taksonomia, co oznacza, że działa ostatnia opcja elseif. uruchamiam ten kod z pliku functions.php motywu, więc mam 2 pytania: po pierwsze: dlaczego żadna z pierwszych dwóch spraw nie zostanie uruchomiona? (Jeśli usunę sprawdzenie, czy istnieje, zgłosi, że funkcja nie istnieje) po drugie: dlaczego trzecia nie zostanie uruchomiona?


title: Jak wykryć opublikowany komentarz w rozwoju motywu?

text: Motyw zwykle publikuje w wp-comments-post.php, gdy ktoś zostawia komentarz. Gdy się powiedzie, ponownie przekierowuje do strony, ale dodaje „#comment-” do adresu URL. Chciałem zostawić wiadomość: „Twój komentarz czeka na moderację, co zajmuje około 24 godzin”. Jasne, mogę przechwycić plik location.href i sprawdzić, czy zawiera on „#comment-”, a następnie wyświetlić komunikat moderacji. Istnieją jednak inne sposoby, w jakie można kliknąć stronę i wyświetlić „#komentarz-”, co sprawia, że jest to wizualne dziwactwo, a nie tak, jak zamierzałem. Jak łatwo sprawić, by motyw WordPress wykrywał, że komentarz został właśnie opublikowany i przekierowywany z powrotem na stronę?