title: Przetłumaczony termin WPML

text: Ponieważ napisałem na ich forum i nie otrzymałem żadnej odpowiedzi, oto zadaję ponownie to samo pytanie. A więc: stworzyłem skrypt, który dodaje możliwość dodania obrazu i zmiany kolejności warunków niestandardowej taksonomii (tzw. itinerary). Używam więc tego sposobu, aby uzyskać każdy termin, jeden po drugim (jest tylko do 10 terminów, więc nie sądzę, aby były jakiekolwiek kary za wydajność): $term = get_term_by('id', $itinerary_id, 'itinerary' ); następnie pobierz obraz, opis, adres URL i tak dalej. Problem, jaki mam, polega jednak na tym, że muszę mieć zawartość wielojęzyczną w taki sposób, aby zachować niestandardową kolejność ORAZ niestandardowy obraz, więc administrator witryny nie musi dodawać obrazów dla każdego języka (10 terminów * 6 języków * inne obrazy co tydzień nie brzmi zabawnie!) Próbowałem zagłębić się w tabele WPML sql, ale nie znalazłem niczego, co odnosiłoby się do obu (gram teraz tylko z 2 językami, angielskim i włoskim), więc zastanawiałem się, czy istnieje coś takiego jak `get_translated_term()`? Dziękuję!


title: Jak mogę pobrać domyślną wartość postu na stronę? od ustawień->czytanie. A całkowita liczba postów?

text: Chcę pobrać domyślną wartość Post na stronę (wartość ustawiona w ustawieniach-> czytanie. Rozejrzałem się i do tej pory znalazłem tylko sposoby na zapytanie. Problem w tym, że nie chcę zmieniać tego, co było set Chcę go po prostu pobrać do celów stronicowania.Myślałem o użyciu `$something->post_count.`(może się mylić, ale jak rozumiem, zwraca liczbę aktualnie wyświetlanych postów), ale w niektórych przypadkach może to być błędne. Jak mogę uzyskać całkowitą liczbę postów?


title: Formularze i WordPress Nonce

text: WordPress nonce doprowadza mnie do szału! Miałem ten problem, kiedy uruchomiłem wtyczkę i ją usunąłem, ale teraz wróciłem do niej i nadal nie wiem, co robić. Wszędzie szukałem rozwiązania. Mój kod jest taki sam/podobny do innych przykładów. Otrzymuję błąd „niezdefiniowany indeks 'mrlpt_client_check'”. Otrzymuję również ten sam błąd dla „mrlpt_client” podczas sprawdzania uprawnień na podstawie możliwości użytkownika, ale jest to niestandardowy typ posta, który stworzyłem, więc nie jestem pewien, dlaczego to też nie działa? Oto kod, w którym są rzeczy nonce. Zawiera tylko krótki formularz z dwoma polami wejściowymi, jednym dla adresu e-mail, a drugim dla numeru telefonu, wewnątrz niestandardowego pola meta. Próbowałem dołączyć wp_nonce_field() do formularza HTML, ale to też nie działa, ten sam błąd. Czy ktoś może pomóc? Dziękuję!! function mrlpt_client_details( $client_post ) { // Pobierz zapisane metadane, jeśli istnieją $mrlpt_clientEmail = get_post_meta( $client_post->ID, '_mrlpt_client_email', true ); $mrlpt_clientPhoneNum = get_post_meta( $client_post->ID, '_mrlpt_client_phone_num', true ); // Utwórz pole do weryfikacji wp_nonce_field( 'mrlpt_submit_client', 'mrlpt_client_check' ); // Dołącza elementy formularza do pola meta require_once( 'includes/mrlpt-client-form.php' ); } // Zaktualizuj/zapisz metadane klienta add_action( 'save_post', 'save_client_metadata' ); function save_client_metadata( $client_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 innych przypadkach, jeśli ( !isset( $_POST['mrlpt_client_check'] ) && !wp_verify_nonce( $_POST['mrlpt_client_check'], 'mrlpt_submit_client ' ) ) {             zwrócić; } // Sprawdź uprawnienia - Jeśli typ posta to mrlpt_client if ( 'post' == $_POST['mrlpt_client'] ) { // Jeśli użytkownik nie może publikować postów if ( !current_user_can_for_blog( $blog_id, 'publish-post' ) ) { // Sprawdza według możliwości, a nie roli wp_die( 'Niewystarczające uprawnienia: Przepraszamy, nie masz dostępu do tej strony.' ); } } // OK, jesteśmy uwierzytelnieni: musimy znaleźć i zapisać dane // Sprawdź, czy metadane są ustawione if ( isset( $_POST['mrlpt_client_email'] ) && isset( $_POST['mrlpt_client_phone_num'] ) ) { // Zapisz metadane update_post_meta( $client_post_id, '_mrlpt_client_email', strip_tags( $_POST['mrlpt_client_email']) ); update_post_meta( $client_post_id, '_mrlpt_client_phone_num', strip_tags( $_POST['mrlpt_client_phone_num']) ); } }


title: Filtruj według pola niestandardowego (meta_key) za pomocą interfejsu API JSON

text: Cześć Używam świetnego interfejsu API JSON dla Wordpress i chciałbym filtrować moje niestandardowe typy postów według określonego pola niestandardowego (przy użyciu parametrów meta_key i meta_value). Zapytanie w moim adresie URL wygląda na razie tak: > > http://example.org?json=get_recent_posts&post_type=mytype&custom_fields=myfield&include=title,custom_fields&meta_key=myfield&meta_value=myvalue Jednak nadal zwraca wszystkie posty (z tego typu postu) , bez względu na to, czy zawierają niestandardowe mapowanie pól. Co jest nie tak? Z góry dziękuję za wszelką pomoc.


title: W edit.php, status niestandardowy tylko przy użyciu pierwszej litery?

text: Stworzyłem niestandardowy typ postu (pozycje) i niestandardowy status (wypełniony). W obu przypadkach użyłem fragmentów dostarczonych przez generatewp.com do łączenia rzeczy. Rzeczy działają w 99% tak, jak chcę, z wyjątkiem jednej rzeczy: ![edit.php?post_type=positions](http://i.stack.imgur.com/PxEe7.jpg) Dziwność jest dwojaka : (a) tylko pierwsza litera statusu „Wypełnione (%s)” właściwości label_count jest wyświetlana pod elementem h2 i (b) pojedyncza wypełniona pozycja nie pojawia się pod filtrem „wszystkie”. Oto kod statusu, po którym następuje kod typu postu: $args = array( 'label' => 'Filled', 'label_count' => 'Filled (%s)', 'public' => false, ' show_in_admin_all_list' => prawda, 'show_in_admin_status_list' => prawda, 'exclude_from_search' => prawda, ); register_post_status('Wypełnione', $args); $labels = array( 'name' => 'Pozycje', 'singular_name' => 'Pozycja', 'menu_name' => 'Pozycje', 'parent_item_colon' => 'Pozycja rodzica:', 'all_items' => 'Wszystkie Pozycje', 'view_item' => 'Wyświetl pozycję', 'add_new_item' => 'Dodaj nową pozycję', 'add_new' => 'Dodaj nową', 'edit_item' => 'Edytuj pozycję', 'update_item' => ' Aktualizuj pozycję', 'search_items' => 'Wyszukaj pozycje', 'not_found' => 'Nie znaleziono pozycji', 'not_found_in_trash' => 'Nie znaleziono pozycji w koszu', ); $rewrite = array( 'slug' => 'pozycje', 'with_front' => true, 'pages' => true, 'feeds' => true, ); $args = array( 'label' => 'positions', 'description' => 'Typ postu dla ofert pracy i staży.', 'supports' => array( 'title', 'editor', 'excerpt', 'revisions', ), 'menu_icon' => 'dashicons-businessman', 'taxonomies' => array('categories'), 'rewrite' => $rewrite, 'labels' => $etykiety, 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'show_in_admin_bar' => true, 'can_export' => true, 'has_archive' => true, 'hierarchical' => false, 'publicly_queryable' => true , 'show_in_nav_menus' => fałsz, 'exclude_from_search' => fałsz, 'capability_Type' => 'strona', 'menu_position' => 5, ); register_post_type('pozycje', $args); jakieś pomysły?


title: Jak sprawdzić, czy filtr jest zastosowany?

text: Chcę zastosować ten filtr z tego pytania. add_filter( 'zawartość', 'pre_content_filter', 0 ); function pre_content_filter( $content ) { return preg_replace_callback( '|<pre.*>(.*)</pre|isU' , 'convert_pre_entities', $content ); } function convert_pre_entities( $matches ) { return str_replace( $matches[1], html_entity_decode( $matches[1]), $matches[0] ); } Ale wygląda na to, że nie ma efektu. Chcę więc sprawdzić, czy funkcja `pre_content_filter` jest rzeczywiście zastosowana. Jak mogę to zrobić? Próbowałem `debug-bar` i `debug-bar-extender`, ale nie mogłem znaleźć, czy mogę to zrobić.


title: Jak stworzyć niestandardową klasę CSS dla konkretnego szablonu strony?

text: Utworzyłem stronę o nazwie "mojastrona". Następnie stworzyłem niestandardową stronę szablonu o nazwie „page_mypage.php”. Teraz chciałem tylko stworzyć kilka niestandardowych klas CSS w style.css. Próbowałem z: div.page-mypage-php #myclass{}, ale nie otrzymuję wyników. Jaki jest właściwy sposób na zrobienie tego?


title: Niedozwolone znaki w adresach URL

text: Mam kilka starych permalinków (postów, stron, tagów), które zawierają teraz niedozwolone znaki - i już nie działają. W poprzednich wersjach WP dozwolone było używanie znaków innych niż łacińskie, ale zmieniło się to w nowszych wersjach. Czy istnieje sposób na wyczyszczenie bazy danych z tych permalinków (przekonwertowanie ich do dozwolonego formatu)?


title: Jaki jest prawidłowy sposób budowania widżetu za pomocą OOP

text: Pracuję nad prostym widżetem formularza wyszukiwania, z wbudowaną funkcją autouzupełniania (aktualną wersję możesz pobrać tutaj). Wtyczka działa, ale obecnie przepisuję cały kod za pomocą OOP. Jednym z problemów, z którymi się spotkałem, był fakt, że widget Wordpress jest już częścią klasy WP_Widget. Kod mogę podzielić na 2 klasy. Pierwszy z nich ładuje wszystkie skrypty i css oraz inicjuje widżet. Oto zarys kodu: class wdSearchForm { public function __construct() { // Akcja zaczep do załadowania widżetu // Zarejestruj i wstawiaj do kolejki style // Zarejestruj i wstawiaj do kolejki skrypty } // Zarejestruj widżet w WordPressie, aby był dostępny pod sekcja widżetów funkcja publiczna wd_searchform() { register_widget( 'wd_searchform' ); } } A oto zarys klasy widżetu: class wd_searchform extends WP_Widget { // Funkcja konstruktora wd_searchform() { } // Sama funkcja widżetu widżet( $args, $instance ) { // Kod widżetu } //Aktualizacja aktualizacja funkcji widżetu( $nowa_instancja, $stara_instancja ) { // Aktualizuj kod } function form( $instance ) { //Skonfiguruj ustawienia widżetu. } } Chciałbym połączyć te dwa elementy, aby użyć `wp_localize_script` i załadować skrypt z opcjami widżetu. Jak mam to zrobić? Wszelkie sugestie są mile widziane, nawet jeśli powiesz mi, że jestem w złym kierunku...


title: Dodaj pole ilości przy każdym produkcie na stronie sklepu-wooCommerce

text: Chcę dodać pole ilości przy każdym produkcie na stronie sklepu. Użyłem kodu <input type="number" step="1" min="1" name="ilość" value="" title="ilość" class="input-text qty text"/> w woocommerce/templates /loop/add-to-cart.php Ale nie można dodać ilości w momencie składania. Proszę o wszelkie sugestie. Z góry dziękuję


title: pobierz adres URL załącznika dla średniej wielkości obrazu

text:
Cześć Używam kodu do tworzenia pokazu slajdów z funkcjonalnością lytebox - poniższy kod jest używany w pętli do ściągania kolejno każdego obrazu dołączonego do posta. Wygląda na to, że ciągnie tylko duży obraz, mimo że ustawiłem wartość na medium - wszelkie pomysły, jak mogę uzyskać .wp_get_attachment_url($attachment->ID, 'medium', false, false) do ciągnięcia średniej wielkości obrazy? dzięki <?php $argsThumb = array( 'order' => 'DESC', 'post_type' => 'attachment', 'post_parent' => $post->ID, 'post_mime_type' => 'image', 'post_status' => null ); $attachments = get_posts($argsThumb); if ($attachments) { foreach ($attachments as $attachment) { echo '
ID, 'medium', false , false). '">ID, 'medium', false, false).'" />
'.apply_filters('the_content' , $attachment->post_content).'

'; } }


title: Jaka jest różnica między esc_html a wp_filter_nohtml_kses?

text: Jaka jest dokładna różnica między `esc_html` a `wp_filter_nohtml_kses`. Wszędzie, gdzie spojrzę, mówi, że obaj usuwają **cały** html, jedyną różnicą, jaką widzę, jest dokładnie to, jak to robią. Czy `esc_html` koduje znaczniki i czy `wp_filter_nohtml_kses` całkowicie je usuwa?


title: Shortcode, aby wyświetlić wszystkie posty z kategorii na stronie

text: Mam 10 kategorii, a kiedy wybiorę kategorię na pasku bocznym, wypiszę wszystkie posty z tej kategorii.... W porządku, piękna Teraz lubię stronę z tekstem i zdjęciami, a następnie po tej treści lubię mieć na liście wszystkie posty z kategorii, tak jak widok kategorii... Czy istnieje wtyczka lub krótki kod, który po prostu to robi?


title: Jak mogę uzyskać listę najnowszych postów poza moją instalacją WP?

text: Mam witrynę z zainstalowanym WP pod adresem /blog i chciałbym po prostu uzyskać listę najnowszych postów na blogu do wyświetlenia na stronie głównej witryny ... to znaczy, moja niestandardowa strona główna (PHP), NIE strona Wordpress. Znalazłem to, ale nie działa — najnowsza wersja Wordpressa szuka Translate_Entry.php lub innego rodzaju klasy, której nie może znaleźć. Czy można to zrobić w prosty sposób, poza pobieraniem i analizowaniem kanału RSS w locie?


title: Używaj poprawnie wp_upload_dir()

text: Wszystko, używam wtyczki Uploadify, aby przesłać niektóre obrazy. Dołączyłem folder uploadify do mojego folderu motywów. Jednak gdy próbuję wywołać uploadify.php, pojawia się następujący błąd: Wywołanie niezdefiniowanej funkcji wp_upload_dir() Mój kod wygląda tak: global $cssPath, $jsPath, $themePath, $theLayout; $upload_dir = wp_upload_dir(); echo $katalog_przesyłania['ścieżka']; Jakiś pomysł, jak mogę to właściwie wykorzystać? Z góry dziękuję za wszelkie sugestie!


title: wysyłaj zapytania do wielu postów według identyfikatora za pomocą parametru ciągu, a nie array()

text: Szukam sposobu na zapytanie o posty według identyfikatora i użycie ciągu jako parametru zamiast tablicy. Tak: query_posts('p=153'); Ale potrzebuję wielu postów. Na przykład z identyfikatorami 153 i 154. Jak mam to zrobić z ciągiem jako parametrem? Powodem, dla którego używam ciągu, jest to, że generuję ten ciąg za pomocą javascript i jeśli zrobię to inaczej, stanie się to bardzo skomplikowane. Jakieś pomysły?


title: 404 podczas przeglądania niezapisanej wersji roboczej

text: Właśnie zacząłem nową pracę i wpadam w dość ciężkie błędy WordPressa w ich mocno zmodyfikowanym systemie. Zasadniczo chodzi o to, że mają swój własny CMS, który obsługuje większość witryny, ale jeśli mam bloga, wstrzykujemy tam wordpress. Backend wszystkich witryn (w tym backend administratora WP) działa z jednej domeny. Następnie mamy bloga i samą witrynę na osobnej domenie. Więc w zasadzie to, co mogę wywnioskować, to to, że sesja użytkownika nie jest przenoszona z kopii zapasowej do interfejsu użytkownika w celu podglądu. Czy ktoś tutaj ma jakieś przemyślenia, jak to naprawić?


title: Wyświetlaj pole niestandardowe tylko wtedy, gdy ma wartość

text: to jest poprawne rozwiązanie <?php $meta_cat_name = get_post_meta( $post->ID, 'powiązane artykuły na blogu', true ); if( !empty( $meta_cat_name ) ): $my_query = new WP_Query( array( 'category_name' => $meta_cat_name, 'posts_per_page' => 5, ) ); if ( $my_query->have_posts() ): while ( $my_query->have_posts() ) : $my_query->the_post(); ?> <a href="<?php the_permalink() ?>" rel="zakładka" title="Stały link do <?php the_title(); ?>"><?php the_title(); ?> <?php endwhile; endif; endif; wp_reset_query(); ?> ----- oryginalne żądanie i stary kod poniżej ----- Ponieważ jeszcze nie znalazłem samouczka, który robi to, czego potrzebuję, używam wtyczki More Fields, aby móc dodać częściowo wypełnione niestandardowe pola/meta pola na stronie edycji postów. Mają już ustawiony klucz, więc użytkownik musi tylko wprowadzić wartość - w tym przypadku nazwę kategorii, która wyświetli 5 postów od tego kota. Działa to dobrze, chyba że post zostanie opublikowany bez wpisania wartości. Powoduje to, że opublikowany post zawiera również listę 5 najnowszych postów. Zakładam, że to dlatego, że zostało poinstruowane, że coś się tam dzieje, ale ma tylko połowę informacji. Jak więc sprawić, by fragment kodu poniżej pojawiał się tylko wtedy, gdy wprowadzono wartość? dzięki James <?php $my_query = new WP_Query(array( 'category_name' => get_post_meta($post->ID, 'powiązane artykuły na blogu', true), 'posts_per_page' => 5, )); if ($my_query->have_posts()): ?> <?php while ($my_query->have_posts()) : $my_query->the_post(); ?> <a href="<?php the_permalink() ?>" rel="zakładka" title="Stały link do <?php the_title(); ?>"><?php the_title(); ?> <?php endwhile; ?> <?php endif; ?> <?php wp_reset_query(); ?>


title: Blokujesz dostęp administracyjny dla autorów i subskrybentów?

text: Chciałbym wyłączyć panel administracyjny dla autorów i subskrybentów. Czy jest jakiś bezpieczny sposób, aby trzymać je z dala od panelu administracyjnego?


title: Umieścić dwa najczęściej głosowane posty na górze (w witrynie Wordpress, która korzysta z wtyczki Głosuj na to)?

text: Używam wtyczki Głosuj na górę. Czy istnieje sposób na umieszczenie dwóch najczęściej głosowanych postów na górze? (Jak na Youtube)? Nie jestem pewien, czy jest to trudne, czy łatwe do osiągnięcia. **EDYTUJ:** Ktoś opublikował tutaj metodę na forach Wordpress, ale Mike Schindel powiedział: > Ten przykład jest absolutnie STRASZNY. Może działać, ale to znacznie więcej kodu niż > potrzebujesz i może się zepsuć w przyszłej wersji WordPressa. Gram z Wordpressem od jakiegoś czasu, ale nadal jestem początkującym PHP. Czy istnieje sposób na naprawienie tego kodu opublikowanego na forach Wordpress? A może lepsza metoda?


title: Refaktoryzacja Wordpressa w celu poprawy wydajności pamięci

text: Dokładnie przyjrzałem się zużyciu pamięci Wordpress. Na mojej stronie wygląda na to, że na każdą trafioną stronę przydzielane jest 20 MB pamięci RAM, aby przygotować wygodne środowisko dla wszystkich wtyczek do uruchomienia. Wykreśliłem to w ten sposób: ![](http://zenka.net/roman/wordpress_memory_consumption .gif) Nie ma jednego miejsca do optymalizacji, ani jednego złego faceta, który pochłania większość pamięci. Konsumpcja jest rozłożona na wiele, wiele, wiele modułów php. Jak możemy sprawić, by Wordpress zainicjował swoje środowisko w pamięci tylko raz, a następnie wielokrotnie używał go przy każdym trafieniu? Nie chcę, aby wolne PHP zjadało 20 MB przy każdym kliknięciu przez użytkownika - nawet na serwerze z dużą ilością pamięci wykonanie całej tej pracy zajmuje kilka sekund. Zasadniczo potrzebujesz fragmentów pamięci tylko do odczytu, które można ponownie wykorzystać. Także... dlaczego 20MB? Czy ktoś może zapewnić wgląd w to? Edycja: Oto dane wyjściowe WinCacheGrind na Wordpressie działającym na moim komputerze deweloperskim (znacznie szybszym niż hosting współdzielony). Jak widać, wytworzenie kodu HTML strony głównej zajmuje sekundę. Zwolnij, korzystając z hostingu współdzielonego, a masz przepis na kłopoty. Wybrałem metodę, która zajmuje najwięcej czasu. Jak byś podszedł do optymalizacji tego? ![](http://zenka.net/roman/wordpress_cpu_usage.gif) Edytuj: Oto statystyki zapytań z tego fantastycznego narzędzia do profilowania functions.php. Załaduj: 12 zapytań - 532ms - 19,1MB - 43 trafienia w pamięci podręcznej / 53 Zapytanie: 15 zapytań - 563ms - 19,0MB - 72 trafienia w pamięci podręcznej / 86 Wyświetlacz: 21 zapytań - 705ms - 19,2MB - 234 trafienia w pamięci podręcznej / 257 Edycja: Czy chcesz zobaczyć coś, co na pewno cię przerazi? Wstaw następujące wiersze na końcu index.php: echo "<pre>\n"; print_r(get_defined_vars()); echo "</pre>\n"; Próbowałem policzyć, ile razy treść aktualnego wpisu jest przechowywana w pamięci. Naliczyłem 20 instancji. Potem zdałem sobie sprawę, że PHP ma zliczanie referencji, więc ilość kopii zredukowana do trzech: dwie wydają się być w WP_Query, jedna w buforze obiektów. Badam dalej. Dlatego uważam, że WordPress potrzebuje refaktoryzacji ukierunkowanej na problemy z pamięcią. Nie można już obwiniać zużycia pamięci za samą złożoność tego, co robi. Po prostu robi kilka rzeczy _niepoprawnie_. Edycja: Po całym dniu próbując to rozgryźć, oto moje ustalenia: 1) 88% całej pamięci pochodzi z wywołań typu require lub include lub include_once: ![](http://zenka.net/roman/wordpress_memory_requires .gif) 2) Dołączanie pliku php ma miejsce głównie podczas pierwszej części obsługi żądania (co nie jest zaskakujące), gdzie również cała pamięć jest zjadana: ![](http://zenka.net/roman/wordpress_includes .gif) 3) Interesujące jest wykreślenie wszystkich funkcji, które są wykonywane podczas tworzenia żądania. W sumie jest ponad 12 000 połączeń. Zmieniłem je, aby były bardziej widoczne (oś Level to w zasadzie głębokość stosu): ![](http://zenka.net/roman/wordpress_functions.gif) 4) Jedynym sposobem na przyszłość, który przychodzi mi do głowy, jest minimalizacja ilość dołączonych plików .php. Jeśli podzielę funkcje na plik, z którego pochodzą, widać, że wiele plików jest uderzanych raz lub dwa razy. Potrzebujemy sposobu, jak je pominąć, gdy nie są potrzebne. Na przykład moja wtyczka do zdalnej kopii zapasowej bazy danych jest ładowana i rejestrowana, aby nigdy nie była używana. Oto powyższa fabuła podzielona według nazwy pliku: ![](http://zenka.net/roman/wordpress_functions_files.gif) Oferuję nagrodę wartą całej mojej reputacji :) za refaktoryzację, która doprowadziłaby do zmniejszenia pamięci mojego bloga o 30% lub więcej. Edycja: zainstalowałem WP 3.1, oto porównanie ze starą wersją. ![](http://zenka.net/roman/wordpress_memory_usage_comparison.png) Niebieski to WP 3.1, czerwony to 3.0.4. Nowy WP jest szybszy, ale też pochłania więcej pamięci. Oto lista według pliku dołączanego. ![](http://zenka.net/roman/wordpress_3.1_vs_3.0.4_mem_by_file.png) To pozwoliło mi zdać sobie sprawę, jak dużo pamięci jest zjadane przez "All In One SEO pack" - jedną drogą byłoby użycie tylko część funkcjonalności wtyczki, aby uzyskać to, czego chcę. Również moje własne wtyczki wydają się być dość złe. Chciałbym wypróbować warunkowe ładowanie np. comment.php (nie zezwalam na komentarze na moim blogu) i kilka innych. Usunąłem cały przestarzały kod. Skróciłem kses.php, aby ładować jego globalne tabele tylko na żądanie. Uprościłem l10n (nie robię lokalizacji), dzięki czemu jego funkcje zwracają ciągi od razu, bez wyszukiwania. Wciąż daleko mi do arbitralnie ustalonego przeze mnie 30% poziomu. Edycja: pobrałem i włączyłem APC z domyślnymi ustawieniami (32 MB pamięci podręcznej opcode). Oto porównanie: ![](http://zenka.net/roman/3.1_without_with_apc.png) Widać, że ładowanie kodu przyspieszyło masowo, a kod również zajmuje mniej miejsca w pamięci (prawdopodobnie dlatego, że mamy do czynienia tylko z kody operacyjne, a nie oryginalne źródło). Zużycie pamięci jest jednak nadal dość wysokie.


title: Optymalny kod dla dwóch add_rewrite_rule

text: Mam dwie niestandardowe reguły przepisywania; po przeczytaniu wielu świetnych postów tutaj znalazłem sposób, aby działały. Pytanie brzmi: **Czy istnieje sposób na scalenie tego kodu? Nie jestem pewien, czy sposób, w jaki to napisałem, jest optymalny:** W moim functions.php mam kod pierwszej reguły: add_action('init', 'rewrite_cat'); // Przepisz kategorię add_action('query_vars', 'rewrite_query_vars_cat'); add_filter('template_include', 'rewrite_template_include_cat'); function rewrite_cat(){ add_rewrite_rule( '([^/]+)/([0-9]+)/?', 'index.php?catname=$matches[1]&currentpage=$matches[2]', ' Top' ); } function rewrite_query_vars_cat($query_vars){ $query_vars[] = 'bieżąca strona'; $query_vars[] = 'nazwa kota'; zwróć $query_vars; } function rewrite_template_include_cat($szablon){ if (get_query_var('bieżąca strona') || get_query_var('nazwa kota')){ $szablon = locate_template(array('kategoria.php')); } return $szablon; } Dalej, to jest kod drugiej reguły: add_action('init', 'rewrite_perf'); // Przepisz Perf add_action('query_vars', 'rewrite_query_vars_perf'); add_filter('template_include', 'rewrite_template_include_perf'); function rewrite_perf(){ add_rewrite_rule('cam/([^/]+)/([^/]+)/?', 'index.php?name=cam&sgcatname=$matches[1]&perf=$matches[2] ', 'Top'); } function rewrite_query_vars_perf($query_vars){ $query_vars[] = 'sgcatname'; $query_vars[] = 'perf'; zwróć $query_vars; } function rewrite_template_include_perf($szablon){ if (get_query_var('sgcatname') || get_query_var('perf')){ $template_perf = locate_template(array('single.php')); } return $szablon; }


title: Arkusz stylów agenta użytkownika zniekształcający witrynę

text: Tworzę swoją pierwszą witrynę wordpress z jej wersji html. Moja strona html jest dość prosta i wygląda na poprawną w popularnych przeglądarkach. Możesz to teraz zobaczyć na k-gayduk.ru. Na co dzień używam Mozilli, więc wykorzystałem ją również w tej pracy. Wszystko było w porządku: moja strona wp wyglądała dokładnie tak, jak jej kopia html. Jednak po sprawdzeniu innych przeglądarek okazało się, że arkusz stylów agenta użytkownika zniekształcił go w Google Chrome i IE8 w bardzo dużym stopniu. Oznacza to, że wp wpłynęło na style CSS w ten specyficzny sposób. Wygooglowałem problem, ale nie znalazłem nic poza sugestią reset.css, która była bezużyteczna w tym przypadku. Myślę jednak, że nie jestem pierwszą osobą, która zmaga się z problemem. Doceń każdą pomoc w tej sprawie. Powinienem przeprosić, ponieważ nie mogę wyświetlić strony z wordpress, ponieważ nadal jest na lokalnym hoście.


title: qtłumacz i treść

text: Mam motyw nostalgii z lasu tematycznego. Próbuję przekonwertować go na wielojęzyczny za pomocą qtranslate, który tłumaczy linki i nazwy stron, ale z jakiegoś powodu przywraca mi domyślną zawartość, gdy wywołuję stronę. On function: `theme_get_content()` mam następującą linię: $result["html"] = do_shortcode(get_the_content()); Który zwraca domyślną zawartość. Strona jest nazwana nieco niekonwencjonalnie w temacie: post_name) '" class="nostalgia -menu-pozycja nostalgia-menu-pozycja-' . $post->post_name . '">' . pobierz_tytuł() . ''; co skutkuje: query_posts("name=" . $_GET["name"] . "&post_type=page"); Jak zmusić qtranslate do pracy z linią $result["html"]? Jakaś pomoc?


title: Używasz preg_replace do oddzielania galerii od the_content?

text:
W motywie Wordpress muszę oddzielić galerię od reszty `the_content`. Myślę, że można to zrobić za pomocą get_the_content i preg_replace, ale to trochę poza moim poziomem umiejętności, jak faktycznie zaimplementować rozwiązanie. Oto szczegóły. Jest galeria, która wygląda tak:

 kilka <figures>

 reszta zawartości Czy jest jakiś sposób, aby umieścić tę galerię w zmiennej i umieścić całą resztę zawartości w innej zmiennej. Wtedy mógłbym po prostu powtórzyć zmienne, gdziekolwiek chciałem, prawda?


title: Wordpress 3.8 - Opcje ekranu pulpitu 1-kolumnowego

text: W nowym Wordpress 3.8 w opcjach ekranu wydaje się, że źle umieścili funkcję "Kolumny", w której można umieścić widżety w 1 kolumnie, 2 kolumnach, 3 kolumnach lub 4 kolumnach. Moje pytanie brzmi, jak zmusić widżety pulpitu nawigacyjnego, aby składały się tylko z 1 kolumny, czyli innymi słowy, zajmowały całą szerokość ekranu, a nie tylko część ekranu?


title: W jakiej kolejności WordPress ładuje pliki wtyczek?

text: W jakiej kolejności są ładowane wtyczki do WordPressa? A w jakim folderze konkretnej wtyczki, jaka kolejność jest ładowana?


title: Dostęp do zserializowanych wartości meta postu

text: Używam widelca Humanmade niestandardowej klasy meta box, dają możliwość ustawienia grup powtarzalnych pól, jako takie mam post zapisany z post_meta w następujący sposób ... 6 wpisów meta_id w tabeli post_meta z tym samym kluczem "daty-kursu", każdy z tych kluczy ma podklucze i wartości jako dane serializowane, na przykład w następujący sposób ... a:2:{s:18:"daty-kursu-początek";s:10:" 25.11.2013";s:16:"course-dates-end";s:10:"12/20/2013";} Jak mogę uzyskać dostęp do tych indywidualnych wartości lub wciągnąć je wszystkie i zapętlić po nich? Dziękuję _**_*EDIT* _*_ *** Udało się poniżej, aby wszystkie kombinacje powtarzały się echem, nadal nie jestem pewien, jak uzyskać dostęp do określonych wartości .... <?php $daty = get_post_custom ( $post-> ID ); $data = $daty['daty-kursów']; foreach ( $data jako $d ) { $rpt = unserialize( $d ); echo $rpt['daty-kursu-początek'].' - '.$rpt['daty-kursu-koniec']; echo '<br/>'; } ?>


title: Motywy o zmiennej szerokości czy pojedyncze kolumny? Chcę wyświetlić kod źródłowy

text: Właśnie założyłem nowego bloga wordpress i jako programista chcę również zamieścić trochę kodu źródłowego. Teraz znalazłem odpowiednie wtyczki, których potrzebuję, a także elegancki motyw, a przynajmniej tak mi się wydawało. Problemem jest szerokość, jest po prostu za mała. Nawet jeśli wybiorę opcję, w której ten motyw ma używać tylko jednej kolumny, nadal nie jest wystarczająco szeroki. Sądzę, że moje wybory jako programisty, który chce, aby motyw poprawnie wyświetlał mój kod, będą raczej płytkie, ale musi być coś, co mogę zrobić? Oto pierwszy post, który napisałem na tym blogu: http://www.froginvasion.be/blog/?p=11


title: Moja wtyczka nie utworzy tabeli w wordpressie 3.5

text: Cześć Mam tę funkcję do zainstalowania wtyczki i utworzenia tabeli bazy danych: function sortresult_install() { //instalacja opcji sort_search_result do bazy danych global $wpdb; $sortsearchtitle_db_version = '1.0'; $tabela = $wpdb->przedrostek."sortsearchresult"; $struktura = "UTWÓRZ TABELĘ JEŚLI NIE ISTNIEJE $tabela (id INT(9) NOT NULL AUTO_INCREMENT,wartość_zamówieniax VARCHAR(5) NOT NULL,UNIKALNY identyfikator klucza (id));"; require_once (ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($struktura); //Zapisz wersję bazy danych update_option("sortsearchtitle_db_version", $sortsearchtitle_db_version); // Wstaw domyślne ustawienie sortowania rosnąco $wpdb->query("INSERT IGNORE INTO $table(order_valuex) VALUES('ASC')"); } A to jest funkcja konstrukcji: function __construct() { //Zarejestruj hak aktywacji register_activation_hook(__FILE__,array(&$this,'sortresult_install')); //Dodaj zaczep menu add_action( 'admin_menu', array(&$this,'sort_searchresults_menu')); //Aktualizuj hak funkcji add_action('plugins_loaded', array(&$this,'sortsearchtitle_update_db_check')); //Uruchom funkcję wyszukiwania add_action('pre_get_posts',array(&$this,'sort_searchresult_by_title')); } Jakieś pomysły, dlaczego powyższe funkcje nie stworzą tabeli bazy danych? Aktualizuję tę wtyczkę dla Wordpress 3.5.Dzięki.


title: Wyklucz tablicę

text: Przenoszę panel edycji posta do frontendu. Więc oto przypadek, mam pytania, jeden o załączniki do produktu, a drugi o WSZYSTKIE. Teraz chcę wykluczyć załączniki produktu ze WSZYSTKICH zapytań o załączniki, oto przykład, jak wykluczyć miniaturę posta z Kodeksu WordPress: <?php $args = array( 'post_type' => 'attachment', 'numberposts' => -1, 'post_status' => null, 'post_parent' => $post->ID, 'exclude' => get_post_thumbnail_id() ); $załączniki = get_posts( $args ); if ( $attachments ) { foreach ( $attachments as $attachment ) { echo apply_filters( 'the_title', $attachment->post_title ); link_załącznika( $załącznik->ID, fałsz ); } } ?> wcześniej mam zapytanie o wszystkie produkty, więc czy `exclude` może przyjąć argument tablicowy? Na przykład z moim kodem $mediaArgs = array( 'post_type' => 'attachment', 'post_mime_type' => 'image', 'numberposts' => -1, 'post_status' => null, 'post_parent' => $current_post , ); $MediaAttachments = get_posts($mediaArgs); Czy mogę wtedy foreach to i zapisać MediaAttachment->ID wewnątrz jakiejś tablicy i wykluczyć umieścić go obok `exclude`? W mojej teorii powinno działać jak zwykle, ale bez względu na to, jak próbowałem, nie działa.


title: różne poziomy zagnieżdżonych komentarzy na stronie

text: Pracuję nad stroną wordpress, która zazwyczaj pozwala na trzy poziomy zagnieżdżonych komentarzy. Ale chciałbym, aby (przynajmniej) jedna konkretna strona zezwalała tylko na jeden poziom komentarzy => bez zagnieżdżania. Jak mogę to zrobić? edycja: prośba o wyjaśnienie: Potrafię zidentyfikować tę stronę po użytym szablonie strony.


title: ?login=failed dołączony tylko do adresu URL w pewnych okolicznościach

text: Używam tego fragmentu kodu do przekierowywania nieudanych logowań do mojej niestandardowej strony... add_action( 'wp_login_failed', 'my_front_end_login_fail' ); // przechwycenie funkcji logowania nie powiodło się my_front_end_login_fail( $username ) { $referrer = $_SERVER['HTTP_REFERER']; // skąd wzięło się zgłoszenie posta? // jeśli istnieje poprawna strona polecająca i nie jest to domyślny ekran logowania if ( !empty($referrer) && !strstr($referrer,'wp-login') && !strstr($referrer,'wp-admin' ) ) { $pos = strpos($referrer, '?login=failed'); if($pos === false) { // dodaj nieudany wp_redirect( $referrer . '?login=failed' ); // dodajmy informacje (login=failed) do adresu URL dla motywu } else { // już nie powiodło się nie dołączaj go ponownie wp_redirect( $referrer ); // już dodane przekierowanie wstecz } exit; } } Działa to znakomicie, ale tylko wtedy, gdy użytkownik faktycznie zawiedzie proces logowania, tj.; wprowadzają nieprawidłową nazwę użytkownika lub hasło. Jeśli użytkownik wykona jedną z poniższych czynności, to nie zadziała.... * Nie wpisuje nazwy użytkownika * Nie wpisuje hasła * Nie wpisuje nic w żadnym polu Zwrócony adres URL nie ma przypisanego ?login=failed, co, jak sądzę, jest powód, dla którego fragment go nie przechwytuje. Czy ktoś ma jakieś pomysły?


title: Niestandardowe zapytanie SQL ORDER BY termin_order

text: Mam niestandardową taksonomię, która wyświetla terminy w „seria”, które zawierają posty, które są również obecne w terminach w „media_type” i gdzie media_type to term_id 16. Chcę uporządkować listę według kolumny term_order w tabeli warunków, ale to nie działa . Co ja robię źle? Dziękuję! $q_result = $wpdb->get_col("SELECT DISTINCT {$wpdb->terms}.name FROM {$wpdb->terms} INNER JOIN {$wpdb->term_taxonomy} ON {$wpdb->term_taxonomy}.term_id = { $wpdb->terms}.term_id DOŁĄCZENIE WEWNĘTRZNE {$wpdb->term_relationships} ON {$wpdb->term_taxonomy}.term_taxonomy_id = {$wpdb->term_relationships}.term_taxonomy_id GDZIE {$wpdb->term._taxonomy} ' AND {$wpdb->term_relationships}.object_id IN ( SELECT object_id FROM {$wpdb->term_relationships} INNER JOIN {$wpdb->term_taxonomy} ON {$wpdb->term_taxonomy}.term_taxonomy_id = {$wplationship->} .term_taxonomy_id GDZIE {$wpdb->term_taxonomy}.taxonomy = 'media_type' AND {$wpdb->term_taxonomy}.term_id = '16' ORDER BY {$wpdb->terms}.term_order );");


title: Jaki jest najszybszy sposób na wygenerowanie unikalnego numeru identyfikacyjnego podczas rejestracji użytkownika?

text: Mam klienta, który chce zarejestrować użytkowników i nadać im unikalny numer ID po zakończeniu rejestracji. (Coś w rodzaju numeru członka) Czy mogę po prostu skonfigurować tabelę członków WP, aby zaczynała od numerów identyfikacyjnych w górnym zakresie 10 cyfr? Doświadczenie użytkownika byłoby następujące: 1. użytkownik odwiedziłby witrynę 2. użytkownik zarejestrowałby się 3. WP wyda 10-cyfrowy numer identyfikacyjny


title: Zasady przepisywania znikają

text: Mam dziwny problem. Niestandardowe reguły przepisywania są poprawnie zarejestrowane w moim haku aktywacji wtyczki. Ale jeśli wejdę na stronę ustawień permalinków i kliknę „Zapisz zmiany”, stracę reguły przepisywania zarejestrowane przez moją wtyczkę. Muszę dezaktywować i ponownie aktywować moją wtyczkę, aby ponownie odzyskać niestandardowe reguły przepisywania. Tutaj mój hak aktywacji i dezaktywacji register_activation_hook( __FILE__ , 'properties_plugin_activation' ); function properties_plugin_activation(){ create_property_post_type(); utwórz_właściwości_taksonomii(); //dodaj niestandardowe reguły przepisywania i niestandardowe zmienne przed flush_rewrite_rules() properties_add_rewrite_rules(); flush_rewrite_rules(); } register_deactivation_hook( __FILE__ , 'properties_plugin_deactivation' ); funkcja properties_plugin_deactivation(){ flush_rewrite_rules(); } Oto moje zasady przepisywania: // Zarejestruj nowe zmienne, które będą używane w funkcji przepisywania reguł properties_add_query_vars( $vars) { $vars[] = "action"; // nazwa zmiennej widziana w adresie URL return $vars; } add_filter('query_vars', 'properties_add_query_vars'); // Dodaj nowe reguły przepisywania function properties_add_rewrite_rules() { add_rewrite_rule( 'properties/search/?$' , 'index.php?post_type=properties&action=search' , 'top' ); $config = nowy PConfig(); foreach($config->taxonomies as $taxonomy){ add_rewrite_rule( 'properties/'.$taxonomy["slug"].'/(.+)/?$' , 'index.php?post_type=properties&'.$taxonomy ["slug"].'=$matches[1]' , 'top' ); } }


title: Wyskakująca pomyślna wiadomość w Fancybox?

text: Mam bardzo długą stronę i CF7 na dole. Problem polega na tym, że gdy/jeśli użytkownik wypełni pola i naciśnie przycisk Prześlij, komunikat o błędzie lub pomyślnym pojawieniu się pojawia się w pobliżu przycisku Prześlij, ale na dole, podczas gdy strona przewija się w górę z powodu odświeżenia. Czy istnieje sposób, aby wyświetlić tę wiadomość w wyskakującym/modalnym oknie Fancybox, które zostanie zamknięte po kliknięciu przez użytkownika lub na zewnątrz?


title: Jakakolwiek dostępna akcja, aby dodać zawartość przed i po pasku bocznym?

text: Cześć Jak mówi tytuł, szukam wstawienia wyjścia funkcji przed pierwszym widżetem paska bocznego i jednego na końcu po ostatnim widżecie, czy to możliwe? Z góry dziękuję.


title: Jak zmienić ilość kategorii wyświetlanych na desce rozdzielczej?

text: Mam ponad 100 kategorii i podkategorii dla witryny, nad którą pracuję. Jak zmienić kwotę wyświetlaną na liście kategorii (domyślnie 20 na stronę) na pulpicie nawigacyjnym?


title: Jak wordpress multisite zarządza subdomenami?

text: Mam zainstalowany Wordpress multisite i chciałbym zrozumieć, jak właściwie zarządzane są subdomeny, tj. w jaki sposób moja multisite Wordpress wie, gdzie znaleźć pliki/dane, gdy przeglądarka żąda adresu URL `user1.domain.com` ? Sprawdziłem rekord DNS A i widzę tylko symbol wieloznaczny. Sprawdziłem .htaccess i wygląda on następująco: RewriteEngine On RewriteBase / # Chroń plik htaccess <Files .htaccess> Zamów Zezwól, Odmów Odmów wszystkim </Files> # Chroń wpconfig.php <Files wp-config.php> Zamów Zezwól, Odmów Odmów wszystkim </Files> # Wyłącz przeglądanie katalogów Opcje Wszystkie -Indeksy RewriteRule ^index\.php$ - [L] # przesłane pliki RewriteRule ^files/(.+) wp-includes/ms-files.php ?file=$1 [L] Warunek Rewrite %{REQUEST_FILENAME} -f [LUB] Warunek Rewrite %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule . index.php [L] więc myślę, że .htaccess nie zarządza subdomeną, czy tak? więc skąd moja witryna Wordpress wie, gdzie znaleźć pliki/dane, gdy przeglądarka żąda adresu URL user1.domain.com ?


title: Przepisz listę kategorii jako instrukcję if / else

text:
Napisałem ten skrypt, aby wylistować otoczenie powiązane z postem:
Co się dzieje w:<?php foreach((get_the_category()) as $childcat) { if (cat_is_ancestor_of(12, $childcat) ) { echo 'cat_ID).'">'; echo $childcat->cat_name . ''; }} ?>
 Działa świetnie. Ale muszę przepisać to tak, aby było stwierdzeniem if / else, w przypadku, gdy nie ma sąsiedztwa przypisanego do postu, w którym nie pojawiłaby się część „Co się dzieje”. Mój PHP nie jest super mocny i nie jestem pewien, jak zmienić strukturę kodu tak, aby był skuteczny, jeśli / else. Każda pomoc jest mile widziana.


title: Jak utworzyć identyfikator załącznika za pomocą Ajax submit? Brak odświeżania strony

text: Wiem, że zrobiłem to już wcześniej, z formularzem postu frontendowego, który używał Ajax do wysyłania danych formularza do skryptu php, który używał wp_insert_post(), a następnie przekierowywał do tego postu po wyświetleniu komunikatu o sukcesie, ale nie mogę zrozumieć, jak zrobić to z załącznikami. To, co próbuję zrobić, jest trochę trudne do wytłumaczenia. Pozwól mi spróbować. Mam metabox, w którym możesz dodawać/usuwać załączniki za pomocą jquery, aby dodać kolejny zestaw danych wejściowych lub je usunąć, a następnie usunąć ten plik ze swojej witryny. To działa. To, co chciałbym zrobić, to po dodaniu nowego zestawu danych wejściowych, wypełnieniu informacji, wybraniu pliku obrazu do przesłania, a następnie kliknięciu przycisku Zapisz dla tego zestawu danych wejściowych (każdy zestaw ma swój własny przycisk zapisywania) przycisk zapisywania ma skrypt Ajax, który wysyła dane do post.php lub cokolwiek się stanie po kliknięciu przycisku Publikuj. Jeśli wypełnię kilka pól załączników i kliknę Publikuj, moja akcja „save_post” zostanie użyta do zapisania tych danych. Chcę utworzyć funkcję, która używa admin-ajax.php i niestandardowego haka. Obecnie mam funkcję usuwania, która używa admin-ajax.php do usuwania pliku załącznika z postu i biblioteki multimediów. Jak mogę stworzyć funkcję, która dodaje plik. Jestem tak zdezorientowany lol.


title: Przepływ pracy z programu InDesign do WordPress

text: Pracuję nad projektem dla miesięcznika opartego na programie InDesign, który umożliwia umieszczanie treści online za pośrednictwem WordPressa. Obecny przepływ pracy to: 1. Kopiowanie/wklejanie z programu InDesign do dokumentu programu Word (przez pracowników magazynu z dostępem do programu InDesign), a następnie kopiowanie/wklejanie z programu Word do różnych pól w WP (przez stażystę bez dostępu do programu InDesign, ale z dostępem do Worda) 2. Utwórz plik CSV, który zawiera wszystkie dane posta i użyj narzędzia CSV Importer, aby zaimportować go do WordPress. **Dlatego mam dwa pytania:** 1. Czy istnieje lepszy przepływ pracy InDesign => WordPress niż te, które omawiam powyżej? 2. Jeśli nie, jaki jest dobry sposób na wklejenie dużej ilości wielowierszowych danych HTML do arkusza kalkulacyjnego? Ogromna wdzięczność dla każdego, kto może w tym pomóc. Edycja: Rozwiązanie, którego szukam, wymaga **jak najmniej pracy po stronie InDesign**. Poświęcę miesiąc na pisanie od podstaw wtyczki XMLRPC do programu InDesign lub czegoś podobnie głupiego, jeśli oznacza to, że nie będę musiał ponownie otagować elementów strony w przypadku problemów o wartości dziesięciu lat – o ile jest to naprawdę najlepsza możliwa droga.


title: WordPress (TinyMCE) nie usuwa tagów skryptu

text: Mamy instalację WordPressa (3.9), gdzie TinyMCE _nie_ usuwa tagów skryptu (w postach itp.). To nieprawda, wierzę?! Myślę, że programista, który pracował nad projektem, prawdopodobnie zmienił coś, próbując coś uporządkować, ale w tej chwili nie widzę, gdzie - jakie są oczywiste miejsca? Dzięki Toby **Aktualizacja** : Wydaje się, że dzieje się to w nowej instalacji WP3.9. W zakładce tekstowej edytora postów mogę wpisać tagi skryptu, które pozostaną _chyba_ że przejdę do edytora wizualnego i zapiszę. Myślę, że to nie jest poprawne, myślę, że WP ma usuwać tagi skryptu ... czy coś przeoczyłem?


title: łączenie terminów programowo przy zachowaniu licznika

text: To pytanie dotyczy znalezienia najlepszego sposobu na łączenie podobnych terminów. Załóżmy, że masz 10 postów oznaczonych jako „Barack Obama” i 20 postów oznaczonych jako „Obama”. i chcesz je wszystkie zgrupować pod hasłem „Barack Obama” i zdobyć 30 postów na ten temat oraz pozbyć się tagu „Obama”. Z pewnością nastąpią pewne zmiany w wp_terms, wp_term_taxonomy, wp_term_relationships. Ale robiąc to, które interfejsy API powinny być używane i w jakiej kolejności, aby podczas usuwania jednego tagu wszystkie powiązane z nim posty były oznaczane jako drugi.


title: Jeśli oświadczenie, aby sprawdzić, czy post ma obraz

text: Mam następujący kod. Kiedy w backendzie jest tylko jeden obraz, drugi obraz pojawia się z małym znakiem zapytania zamiast z niczym. Szukam sposobu, aby najpierw sprawdzić, czy obraz istnieje, a jeśli tak, uruchom kod, a jeśli nie. <?php $obraz = wp_get_attachment_image_src(get_field('post_image1'), 'miniaturka'); ?> <img src="<?php echo $image[0]; ?>" alt="<?php get_the_title(get_field('post_image1')) ?>" /> <?php $image = wp_get_attachment_image_src(get_field( „post_image2”), „miniaturka”); ?> <img src="<?php echo $image[0]; ?>" alt="<?php get_the_title(get_field('post_image2')) ?>" />


title: Zastąp domyślny link galerii do ustawień

text: Czy istnieje sposób kontrolowania domyślnego ustawienia galerii „Link do”? Użycie filtra `image_default_link_type` w pliku `functions.php` działa przy wstawianiu pojedynczych obrazów do postów, ale nie wydaje się mieć żadnego wpływu na galerie...


title: Czy możesz połączyć niestandardowe typy postów ze stronami?

text: Powodem, dla którego pytam, jest to, że kiedy tworzę strony, nie wstawiają one zwykłej nazwy typu postu, tak jak robią to CPT. Na przykład, jeśli stworzę stronę o nazwie „toyota”, adres URL będzie wyglądać tak „http://domain.com/toyota”, ale jeśli utworzyłem niestandardowy typ postu, aby wprowadzić wszystkie tworzy jedną stronę z niestandardowymi linkami do określonych stron w moim i powiedzieć, że CPT nazywało się „Samochody”, a adres URL wyglądałby tak „http://domena.com/samochody/toyota” i dlatego nie zawierałby prawidłowego linku do strony. Czy można to obejść?


title: Wyświetlaj tylko najnowszy przyklejony post, wyświetlaj inne posty w porządku chronologicznym

text: Chcę wyświetlić tylko najnowszy przyklejony post na górze strony TwentyEleven, a pozostałe posty wyświetlić w porządku chronologicznym, bez względu na to, czy są przyklejone, czy nie. Próbowałem znaleźć. rozwiązanie tutaj: http://codex.wordpress.org/Sticky_Posts Ale wydaje się, że nie ma tego, czego potrzebuję. Czy ktoś mógłby pomóc w sformułowaniu poprawnego stwierdzenia? Dziękuję Ci!


title: Jak prawidłowo poprzedzić adres URL posta na blogu

text: Chcę poprzedzić moje posty na blogu `/news/` i zmiana moich Permalinków na `/news/%postname%` wydaje się załatwiać sprawę. Jednak mam również kilka niestandardowych typów postów iz jakiegoś powodu te adresy URL są teraz również poprzedzone `/news/`. Oczywiście nie tego chcę. Jak mogę się upewnić, że tylko gotowy typ posta Wordpress jest poprzedzony `/news/`?


title: @font-face Ścieżki nie działają poprawnie

text: Mam problemy z kodem @font-face w pliku style.css dla motywu. Przetestowałem już motyw jako witrynę HTML, a ścieżki są takie same. Plik style.css używa względnej ścieżki do folderu czcionek, jak na przykład: `@font-face{ font-family:'Fertigo_PRO-webfont'; src:url('./fonts/Fertigo_PRO-webfont.eot'); src:url('./fonts/Fertigo_PRO-webfont.eot?iefix') format('eot'), url('./fonts/Fertigo_PRO-webfont.woff') format('woff'), url('. /fonts/Fertigo_PRO-webfont.ttf') format('truetype'), url('./fonts/Fertigo_PRO-webfont.svg#webfont') format('svg'); } I nazywam to w arkuszu stylów dla identyfikatora: #masthead{ background-image:url('mastgrad.png'); powtarzanie w tle: powtarzanie-x; wysokość: 250px; szerokość:100%; dopełnienie:20px 0 0 0; margines:0; } Czcionka nie wyświetla się tam, gdzie powinna, mimo że nigdy nie miałem z tym problemu, zanim umieściłem to na moim serwerze LAMPP w celu opracowania. Wydaje się replikować w Firefoksie i Chrome, chociaż nie testowałem tego nigdzie indziej.


title: Media uploader & manager: dodaj/usuń klasę na obrazku z polem wyboru

text: Wygląda na to, że powinno to być dość proste, ale rysuję na nim puste miejsce: miej pole wyboru w programie do przesyłania multimediów i menedżerze multimediów, które po zaznaczeniu dodaje nazwę klasy CSS do obrazu. Powinno pozostać zaznaczone. Kicker polega na tym, że nie mogę użyć meta postu do przechowywania statusu sprawdzonego lub niesprawdzonego. To długa historia, ale zasadniczo wymagania projektu, nad którym pracuję, mówią, że ustawienie globalnego klucza/wartości meta na obrazie nie jest w porządku. Zorientowałem się, jak dodać pole wyboru i ustawić/usunąć meta posta za jego pomocą: /** * Dodaj pole wyboru do narzędzia do przesyłania i menedżera multimediów, aby oznaczyć obraz jako obraz profilu * */ function my_select_profile_image( $form_fields, $post ) { $is_profile_image = (bool) get_post_meta($post->ID, '_is_profile_image', prawda); $sprawdzone = ($is_profile_image) ? 'w kratę' : ''; $form_fields['is_profile_image'] = array( 'label' => 'Obraz profilu?', 'input' => 'html', 'html' => "<input type='checkbox' name='attachments[{$ post->ID}][is_profile_image]' id='attachments[{$post->ID}][is_profile_image]' {$checked} />", 'value' => $is_profile_image, 'helps' => 'Sprawdzanie to pole doda stylizację profilu do obrazu i podpisu.' ); zwróć $form_fields; } add_filter( 'attachment_fields_to_edit', 'my_select_profile_image', null, 2 ); /** * Aktualizuj meta obrazka w oparciu o status pola wyboru Obraz profilu * * */ function my_save_profile_image($post, $attachment) { if( isset( $attachment['is_profile_image'] ) ) update_post_meta( $post['ID'], '_jest_obrazem_profilu', prawda ); if( !isset( $attachment['is_profile_image']) ) update_post_meta( $post['ID'], '_is_profile_image', false ); return $post; } add_filter( 'attachment_fields_to_save', 'my_save_profile_image', null, 2 ) Ale z meta postu poza tabelą, nie wiem, jak to zrobić.


title: Loop.php vs zapętlanie wewnątrz pliku szablonu

text: Jaka jest najlepsza praktyka dla WP w odniesieniu do używania loop.php (loop-single.php, itp.) w porównaniu z pętlą wewnątrz pliku szablonu? Czy ma to znaczenie w odniesieniu do wydajności czy ?


title: Jak przeprowadzić testy jednostkowe na proponowanych łatach w Tracu?

text: Szukałem wglądu i dobrych zasobów, jak poprawnie wykonać testy jednostkowe na proponowanych łatkach WordPress w Trac i jak dokładnie raportować wyniki z testów. Jestem w tym nowy i przeczytałem zasoby znajdujące się w tym pytaniu WPSE. Sam bardzo chciałbym się nauczyć, jak to zrobić i zrobić to z prawdziwym błędem, takim jak ten bilet Trac # 5809. Przypuszczam, że po przeczytaniu zasobów we wspomnianym wcześniej pytaniu WPSE moim krótkim przyjściem jest to, że nie rozumiem, jak ustawić proponowane testy dla proponowanej łatki. **Aktualizacja:** Nadal szukam zasobów i obecnie oglądam ten film na temat testów jednostkowych WordPress.


title: Dodaj miniaturę posta z zewnętrznego obrazu za pomocą wtyczki

text: Obecnie piszę wtyczkę modyfikującą treść postu za pomocą filtru wp_insert_post_data. Robiąc to, chciałbym również dodać miniaturę posta za pomocą zewnętrznego adresu URL obrazu. Tak naprawdę nie ma znaczenia, czy obraz jest połączony z hotlinkem, czy skopiowany do mojej instalacji Wordpress. Czy ktoś wie, jak się do tego zabrać?


title: Wordpress Post HTML po opublikowaniu

text: Piszę wtyczkę do WordPressa, jednym z zadań, które muszę wykonać, jest wysłanie treści HTML nowego posta na adres e-mail w momencie publikowania, wiem, że mogę użyć niektórych hooków do uruchomienia po poście został zapisany, ale czy istnieje sposób na uzyskanie pełnej zawartości HTML nowej strony/postu z zastosowanym motywem? Mam niestandardowe pola w poście, więc idealnie chciałbym uzyskać cały post z adresu URL, zamiast rekonstruować wszystkie pola, aby następnie wysłać je w formacie HTML. Każda pomoc byłaby mile widziana! Dziękuję


title: Strona pojawiła się dwa razy na pierwszej stronie? Jak całkowicie usunąć tę stronę z pierwszej strony?

text: Mam tę witrynę Wordpress, nad którą pracuję jako osoba trzecia. Muszę nadać temu Wordpressowi ostateczny szlif. Istnieje strona o nazwie _Impressum_ i pojawia się ona dwa razy na pierwszej stronie, muszę ją całkowicie usunąć ze strony głównej i pozwolić, aby pojawiały się tylko produkty i pokaz slajdów. Każda pomoc byłaby mile widziana. To jest strona internetowa. Przewijając w dół, możesz zauważyć podwójne _Impressum_


title: Przyjazna pamięci PHP alternatywa dla get_posts()

text: Miałem problemy z pamięcią: `get_posts( array( 'posts_per_page' => '-1', 'post_type' => array( 'product', 'product_variation') )` (są tysiące wyników) po prostu próbuję aby uzyskać listę wszystkich identyfikatorów postów. Poniższy kod pobiera 10 produktów na raz, aby uniknąć ograniczeń pamięci. Wydaje się, że działa dobrze, ale prawdopodobnie istnieje bardziej eleganckie rozwiązanie. https://gist.github.com/ dtbaker/acd15e542d98bff68034 $product_page = 1; $product_per_page = 10; $product_query = new WP_Query( array( 'posts_per_page' => $product_per_page, 'paged' => $product_page, 'post_type' => array( 'variation', 'product_product ' ), ) ); $product_ids = array(); while($product_query->have_posts() ) { $product_result = $product_query->next_post(); if(!$product_result){ // pobierz następną partię wyników $product_page++; $product_query = nowe WP_Query( array( 'posts_pe r_page' => $product_per_page, 'paged' => $product_page, 'post_type' => array( 'product', 'product_variation' ), ) ); }else{ $product_ids[] = $product_result->ID; } } print_r($product_ids); Chciałbym wiedzieć, czy istnieje lepszy sposób na wykonanie tego zapytania „10 produktów na raz”. Dziękuję!


title: Jak jednoznacznie identyfikować zapytania?

text:
Dzisiaj zastanawiałem się, jak różnicować zapytania, głównie po to, by stworzyć unikalny identyfikator. W trakcie pobawiłem się trochę, patrz poniższy kod. Główną ideą jest zrobienie tego w zależności od właściwości `$query` lub `$query_vars` `WP_Query`. Właściwie istnieje już właściwość `query_vars_hash`, ale jest ona tworzona dość wcześnie z podzbiorem zmiennych i nie jest pomocna w rozróżnianiu zapytań, które pojawiają się na tym samym żądaniu. Do tej pory mam następujące: add_action( 'pre_get_posts', 'unique_query' ); /** * unique_query * * Utwórz unikalny identyfikator * */ function unique_query( $query ) { global $wp_query; $zapytanie_hasze = tablica(); if ( is_admin() ) return; /** * Pomiń dodatkowe przypadki */ /** if ( ! isset( $query->query['post_type'] ) || empty( $query->query['post_type'] ) || $query->query ['post_type'] == 'nav_menu_item' || $query->is_main_query() ) { return; } /**/ /** * Debugowanie */ /** echo '
'; print_r( $zapytanie ); print_r ( $wp_query ); print_r( $zapytanie->zapytanie ); print_r( $wp_query->zapytanie ); print_r( $query->query_vars ); print_r( $wp_query->query_vars ); echo '
'; /**/ /** * Ustaw tablicę skrótów zapytań */ $query_hashs[ '$wp_query->query_vars_hash' ] = $wp_query->query_vars_hash; $query_hashs[ 'uhash_$wp_query->query_vars' ] = md5( serialize( $wp_query->query_vars ) ); $query_hashs[ '$query->query_vars_hash' ] = $query->query_vars_hash; $query_hashs[ 'uhash_$query->query_vars' ] = md5( serialize( $query->query_vars ) ); $query_hashs[ 'uhash_$zapytanie->zapytanie' ] = md5( serialize( $zapytanie->zapytanie) ); $query_hashs[ 'uhash_$wp_query->zapytanie'] = md5( serialize( $wp_query->zapytanie) ); /** * Wypisuje tablicę skrótów zapytań */ echo '
'; print_r( $query_hashs ); echo '
'; }         Which produces the following exemplary output:               /* Main query */     [$wp_query->query_vars_hash]  => ffb3c63f9b858ab4882d8e9ed20fce67     [uhash_$wp_query->query_vars] => ffb3c63f9b858ab4882d8e9ed20fce67     [$query->query_vars_hash]     => ffb3c63f9b858ab4882d8e9ed20fce67     [uhash_$query- >query_vars]    => ffb3c63f9b858ab4882d8e9ed20fce67     [uhash_$query->query]         => 40cd750bba9870f18aada2478b24840a     [uhash_$wp_query->query]      => 40cd750bba9870f18aada2478b24840a          /* Query of wp_nav_menu */     [$wp_query->query_vars_hash]  => ffb3c63f9b858ab4882d8e9ed20fce67     [uhash_$wp_query- >query_vars] => 59e1dad0ba690eed5e758fbf15cda702     [$query->query_vars_hash]     => c5a049c558df9cf4cfd14dad179a97e8     [uhash_$query->query_vars]    => c5a049c558df9cf4cfd14dad179a97e8     [uhash_$query->query]         => d4226d11be5a53e8b44d5b85db43e8b0     [uhash_$wp_query->query]      => 40cd750bba9870f18aada2478b24840a          / * Zapytanie z przodu/domu */ [$wp_query->query_vars_hash]  => ffb3c63f9b858ab4882d8e9ed20fce67     [uhash_$wp_query->query_vars] => 59e1dad0ba690eed5e758fbf15cda702     [$query->query_vars_hash]     => 712b303f79eef3c8b5928d4ed8acfe2f     [uhash_$query->query_vars]    => 712b303f79eef3c8b5928d4ed8acfe2f     [uhash_$query->query] => b7ac5bdfe084209f0142d7ab3aa0683e [uhash_$wp_query->query] => 40cd750bba9870f18aada2478b24840a Jak widać jedynymi kandydatami do odrębnego określenia są `$query->query_vars_hash`/`uhash lub `query_$_query- `. Oczywiście w tym przykładzie pierwszy i drugi są takie same, ale w przyszłości może zaistnieć potrzeba wykonania rzeczy, których nie obejmuje istniejąca właściwość `query_vars_hash`. Poza tym musisz to zrobić sam, żeby mieć pewność. Więc pytanie brzmi: po pierwsze, _czy to rozsądne podejście do jednoznacznej identyfikacji zapytań?_ Czy coś mi brakuje, zwłaszcza, czy może jest lepsze, więc po drugie, jeśli ktoś ma dane wejściowe, jestem zainteresowany. * * * **Edytuj:** @G.M. ma prawie rację we wszystkim, co sugerowano w podniesionym problemie. Właściwie miałem zamiar dodać te informacje, po prostu nie miałem wystarczająco dużo czasu w momencie publikowania, teraz byłoby to po prostu zbędne, ale chciałem potwierdzić ten fakt.


title: Warunki taksonomii — zamówienie według wartości niestandardowej

text: Mam niestandardową wartość, która jest przechowywana jako `term_group`, ale w panelu administracyjnym chciałbym uporządkować je według tej grupy terminów. Mogę to zrobić za pomocą tej funkcji, ale jest problem: function change_term_order( $args, $taxonomies ) { if ( is_admin() && 'tax_products' !== $taxonomies[0] ) return $args; $args['orderby'] = 'term_group'; $args['zamówienie'] = 'ASC'; return $args; } add_filter( 'get_terms_args', 'change_term_order', 10, 2 ); Działa to tylko wtedy, gdy użytkownik sortuje według jednej z kolumn, a nie podczas początkowego ładowania strony. Próbowałem zmodyfikować filtr tak, aby był `get_terms`, ale po prostu wystąpił błąd w połowie strony. Czy ktoś zna odpowiedni filtr do zmiany kategorii porządkowania i taksonomii?


title: Drukuj kategorię potomną ślimak nicename

text: Chcę wydrukować (wyświetlić) slug kategorii podrzędnej, aby móc go używać w dynamicznym adresie URL na stronach kategorii. Więc jeśli jestem w kategorii www.example.com/category/main-category/child-category Przykład: www.example.com/category/games/board-games Na pasku bocznym będę miał link Aktualizacje z Planszówek więc Potrzebuję kodu, aby po prostu wyświetlić ślimak kategorii podrzędnej, w tym przypadku to "gry planszowe", a nazwa kategorii podrzędnej, w tym przypadku to "Gry planszowe" na stronach postów, to proste, mam ten kod i działa (może ktoś uzna to za przydatne) <?php $cat_slug = get_the_category(); ?><a href="<?php echo get_bloginfo('url') . "/updates-from-" . $cat_slug[0]->category_nicename; ?>" > Aktualizacje z '<?php echo $cat_slug[0 ]->nazwa_kotu . "";?>" dziękuję za pomoc!


title: Jak dodać akcję custom_register PO dodaniu niestandardowej taksonomii?

text: custom_register działa tylko z hakiem Customize_register i niezależnie od tego, jakiego haka użyję do dodania niestandardowej taksonomii, zawsze dzieje się to po custom_register. (Chcę przejrzeć listę terminów z mojej niestandardowej taksonomii, aby utworzyć kategorie i opcje niestandardowe dla każdego terminu) EDIT: To jest rozwodniony kod, o którym mowa w moim pliku funkcji szablonu: register_taxonomy( 'brand', $object_types, $args ); add_action( 'muplugins_loaded', 'marka', 0 ); // ????? Jakiego hooka mogę tutaj użyć^, który będzie działał przed hookiem 'customize_register' ????? // function iartz_customize_register( $wp_customize ) { $brands = get_terms('brand'); foreach($brands AS $brand){ //Dodaj opcje kolorów dla każdego terminu taksonomii 'brand' } } add_action( 'customize_register', 'iartz_customize_register' );


title: Arkusz stylów z wp_enqueue_style jest nadpisywany przez wtyczkę

text: W moim motywie używam Font Awesome. wp_enqueue_style('fontawesome', '//maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css'); Używam innej wtyczki, która używa Font Awesome, ale używa starej wersji. wp_enqueue_style( 'fontawesome', '//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css', array(), MSI_VERSION, 'all' ); Obie metody używają tego samego uchwytu, więc tylko jedna jest renderowana w HTML... i to jest stara wersja wtyczki. Mógłbym zmienić uchwyt, ale wtedy ładowałyby się dwie czcionki Font Awesome. Mógłbym zhakować wtyczkę, ale EWWW! Jak sprawić, by moja wersja Font Awesome miała pierwszeństwo i została załadowana?


title: wp_dropdown_categories nie zwraca wartości

text: Aktualizacja _*_ Po włączeniu debugowania otrzymuję następujący błąd: Uwaga: Właściwość niezdefiniowana: stdClass::$id w /home/buffalot/public_html/beta/wp-includes/category-template.php w wierszu 1096 kod do generowania listy rozwijanej kategorii. Z jakiegoś powodu nie jest zwracana żadna wartość dla kategorii i nie jestem pewien, co może być tego przyczyną (może konflikt motywu?) <form action="<?php bloginfo('url'); ?>/" method= "get" style="display:inline;"> <?php $select = wp_dropdown_categories('show_option_all=Wszystkie działania&show_count=1&orderby=name&echo=0&taxonomy=category'); $select = preg_replace("#<select([^>]*)>#", "<select$1 onchange='zwróć ten.form.submit()'>", $select); echo $wybierz; ?> </form> Dane wyjściowe (za pomocą chrome inspect element) przedstawiają następujące... <select name="cat" id="cat" class="postform" onchange="return this.form.submit()"> < option value="0" selected="selected">Wszystkie działania</option> <option class="level-0" value="">Działa  (5)</option> <option class="level-0" value ="">Bez kategorii  (2)</option> </select>


title: Taksonomie zapytań WP różnią się od danych wyjściowych

text: Próbuję utworzyć zapytanie niestandardowe i muszę dołączyć bieżący identyfikator kategorii. Wcześniej miałem argumenty WP_Query jako: Array ( [post_status] => publikuj [posts_per_page] => -1 [post_type] => kursy [cat] => 70 Kiedy wyprowadzam wynik SQL za tym zapytaniem argumentowym za pomocą `$query-> request;` taksonomie są odczytywane jako 95 i 203, zamiast 70? SELECT wp_posts.* FROM wp_posts WEWNĘTRZNE DOŁĄCZENIE wp_term_relationships WŁ. (wp_posts.ID = wp_term_relationships.object_id) WEWNĘTRZNE DOŁĄCZENIE wp_postmeta WŁ. JAK mt1 WŁĄCZONE (wp_posts.ID = mt1.post_id) WEWNĘTRZNE ZŁĄCZENIE wp_postmeta JAKO mt2 WŁĄCZONE (wp_posts.ID = mt2.post_id) WEWNĘTRZNE ZŁĄCZENIE wp_postmeta JAKO mt3 WŁĄCZONE (wp_posts.ID = mt3.postmeta_id) GDZIE 1.=1_ AND (wps_terms) term_taxonomy_id IN (95,203) Czy ktoś może mi powiedzieć, jak/dlaczego tak się dzieje i co muszę zrobić, aby znaleźć 95,203 z tych początkowych 70, abym mógł również zbudować to zapytanie ręcznie? Wielkie dzięki


title: https przekierowanie piekło (dodanie www)

text: Przeniosłem moją wielostronną witrynę Wordpress (www.example.com) do subdomeny (dev.example.com), aby pracować nad kilkoma dużymi zmianami. Oczywiście zmieniłem _siteurl_ i _home_ w DB dla wszystkich witryn. Problem polega na tym, że za każdym razem, gdy wchodzę na stronę https://dev.example.com, otrzymuję przekierowanie do nieistniejącego https://www.dev.example.com Nie mogę ustalić, skąd pochodzi ta www (i jest nie .htaccess). To doprowadza mnie do szału. Po godzinach google w końcu postanowiłem sięgnąć po pomoc. Dziękuję!


title: Administrator i pasek narzędzi na dole, jak rozwijać menu?

text: Umieściłem mój pasek administracyjny na desce rozdzielczej i interfejsie na dole i mam problem z wymyśleniem, jak utworzyć rozwijane menu. Również, gdy witryna jest wyświetlana w orientacji poziomej na urządzeniach mobilnych, pasek administracyjny pozostaje na dole i na górze treści, co jest świetne. Ale kiedy obracam telefon normalnie, pasek administracyjny pozostaje w 1 miejscu, gdy przewijam w dół. Nie pozostaje na dole i na górze treści. Próbuję naprawić te przykrości.


title: Jak stworzyć niestandardowe strony błędów 401, 403 i 500?

text: W przypadku napotkania błędu 404 można użyć pliku szablonu 404.php do wygenerowania niestandardowego komunikatu o błędzie. Jest to udokumentowane w artykule o hierarchii szablonów. Moim celem jest tworzenie niestandardowych stron błędów dla błędów 401, 403 i 500. Próbowałem utworzyć pliki 401.php, 403.php i 500.php w katalogu mojego motywu, ale to nie działa. Jak mogę utworzyć niestandardowe strony błędów 401, 403 i 500 w WordPressie?


title: Utwórz nowy post Wordpress [wp_insert_post] na podstawie wyników WP_Query

text: Mam stronę, na której użytkownicy mogą filtrować listę niestandardowych postów typu post na podstawie wtyczki „Ultimate WP Query Search Filter”. Wyniki są przekazywane do div na stronie za pomocą AJAX, z którego użytkownicy mogą wprowadzić ilość do każdego z wyników. To, co muszę zrobić, to to, że gdy użytkownik wprowadzi ilość w polu ilości, wszystkie informacje z tego wpisu oraz ilość muszą zostać wykorzystane do utworzenia nowego wpisu w innym niestandardowym typie wpisu. [Obecnie odbywa się to w oparciu o wynik po wynikach, ale jeśli jest możliwe, aby mieć 1 przycisk „dodaj” na końcu, który przegląda każdy wynik i tworzy post dla każdego, który byłby pierwszą nagrodą - ale nie ma problemu z „Dodaj " button per result] Używam następującego kodu do tworzenia nowych postów: <?php $order_productcode = get_field('product_code', $query->ID); $order_productdesc = get_field('product_description', $query->ID); $order_productcost = get_field('cena_sprzedaży', $zapytanie->ID); ?> <?php if(isset($_POST['nowy_post']) == '1') { $post_title = $_POST['post_title']; $new_post = array( 'post_type' => 'zamówienia-pozycje', 'ID' => '', 'post_author' => $user->ID, 'post_title' => $post_title, 'post_status' => 'publikuj ' ); $post_id = wp_insert_post($nowy_post); add_post_meta($post_id, 'linked_order_id', 379, prawda); add_post_meta($post_id, 'kod_produktu', $kod_zamówienia_produktu, prawda); add_post_meta($post_id, 'product_description', $order_productdesc, true); add_post_meta($post_id, 'ilość', '1', prawda); add_post_meta($post_id, 'cena_jednostkowa', $order_productcost, prawda); $post = get_post($post_id); wp_redirect($post->guid);} ?> A następnie następujący kod do wywołania formularza: <form method="post" action=""> <input type="text" class="orderresult_qty" name="post_title " size="45" id="input-title"/> <input type="ukryty" name="nowy_post" value="1"/> <input class="subput round" type="prześlij" name=" submit" value="Add"/> Na pojedynczej stronie lub przykładowej stronie zakodowanej na stałe działa to doskonale, ale gdy kod jest umieszczony wewnątrz pętli Wordpress, nic się nie dzieje po przesłaniu elementu. Nie jest wyświetlany żaden błąd i pozycja nie jest tworzona. Mam problemy z wklejeniem pełnego kodu, więc tutaj jest link do GIST, gdzie można zobaczyć pełny kod wewnątrz pętli (wygenerowany w pliku function.php) https://gist.github.com/stankobrin/bb0b7d38dbbe1fd3b83e * *Jest to dość pilne, więc każda pomoc w uzyskaniu tej pracy będzie mile widziana!**


title: get_posts działa, ale nowe wp_query nie

text:
Powiedziano mi, że `get_posts` jest bardzo złą funkcją do użycia, że tworzenie `nowego WP_query` jest absolutnie lepsze. Mój problem polega na tym, że mój kod `get_posts` działa, ale kiedy próbowałem przekształcić go w `WP_query`, zwraca puste wyniki. Proszę o pomoc? :( Bardzo chciałbym, aby to zadziałało, ponieważ podejrzewam, że get_posts, które mam w index.php / category-9.php zakłócają normalną pętlę w category.php Wersja Get_posts: <?php if ( have_posts () : while ( (have_posts() ) ) : the_post(); ?>

<a href="<?php the_permalink();?>"><?php the_title (''); ?>
 <?php $args = array( 'post_type' => 'attachment', 'post_mime_type' => 'image', 'numberposts' => 4, 'post_status ' => null, 'post_parent' => $post->ID, 'orderby' => name, 'order' => ASC ); $attachments = get_posts($args); if ($attachments) { foreach ($attachments as $post) { setup_postdata($post); ?> <a class="postpreview" href="<?php echo get_permalink($post->post_parent) ?>"><?php echo wp_get_attachment_image($post->ID , miniatura) ?> <?php }; }; ?>

 <?php endwhile; endif; wp_reset_query(); ?> Wersja WP_query: <?php if ( have_posts() ) : while ( ( (have_posts() ) ) : the_post(); ?>

<a href="<?php the_permalink();?>"><?php the_title(''); ?>
 <?php $args = array( 'post_type' => 'attachment', 'post_mime_type' => 'image', 'numberposts' => 4, 'post_status' => null, 'post_parent' => $post->ID, 'orderby' => nazwa, 'order' => ASC ); $załączniki = nowe WP_Query($args); while ($attachments->have_posts()) : ?> <a class="postpreview" href="<?php echo get_permalink($post->post_parent) ?>"><?php echo wp_get_attachment_image($post->ID , miniatura) ?> <?php endwhile; wp_reset_postdata(); ?>

 <?php endwhile; endif; ?>


title: Wyłączony edytor wizualny i Wordpress ciągle dodają łamania linii do mojego kodu

text:
Wyłączyłem edytor wizualny, więc nie może być problemu z przełączaniem się między dwoma różnymi edytorami, co widziałem w wielu pytaniach związanych z tym samym problemem. Wklejam kod na stronę:
Coś

Coś

Coś

Coś
 Kiedy go zapisuję, wygląda to tak: pojawia się w edytorze. Kiedy przeglądam stronę, wiersze są łamane. Potwierdziłem, oglądając źródło, które jest renderowane:
Coś

Coś

Coś

Coś
 Kiedy wrócę do edytor, nadal pojawia się w jednej linii, ale gdzieś WordPress miesza z moim kodem (prawdopodobnie w tym samym czasie usuwa moje tagi `<p>`) i jest to bardzo frustrujące. Jak mogę sprawić, żeby przestał to robić? Używam dwudziestu czternastu jako motywu podstawowego, więc może jest coś w motywie, który powoduje to zachowanie. To dopiero mój drugi tydzień korzystania z WordPressa, więc nie mam na to odpowiedzi. **Edycja:** Próbowałem więc różnych metod modyfikowania kodu HTML, aby pozbyć się błędu spacji i spacji, i właśnie natknąłem się na kolejną ciekawostkę WordPressa. Próbując czegoś takiego jak:
Coś

Coś

Coś

Coś
 Co jest kolejnym sposobem na pozbycie się tego błędu. Rendery Wordpress:
Coś

Coś

Coś
 Czy Wordpress przeżył jakieś załamanie psychiczne? Z pewnością nie może być tak głupi, żeby nawet nie zdawał sobie sprawy, że a) byłoby śmieszne zmienianie kodu na taki i b) nie można nawet mieć `<p>` jako bezpośrednich dzieci `<ul> ` elementy. Trudno sobie wyobrazić, by taka powszechna wiedza przeszła przez umysły programistów WordPressa, kiedy wpadli na fantastyczny pomysł, by zmienić kod ludzi. Powinni przynajmniej upewnić się, że zmieniają kod na coś ważnego.


title: Problem dotyczący pozycji menu niestandardowego CPT w WP

text: Mam dwa CPT jako „Sukienka” i „Nieformalny” i chciałbym umieścić je blisko siebie dokładnie za „Dashboard” w menu. Mam ten kod w moim niestandardowym typie postu dla obu: 'menu_position' => 2, jednak wynik jest wyświetlany jako: ![tutaj wprowadź opis obrazu](http://i.stack.imgur.com/6LX3D.png) pozycje „Post” po „Sukience”! czy możesz mi powiedzieć, dlaczego tak się dzieje i jak mogę zachować wszystkie CPT po sobie przed „postem”. (mam 5 niestandardowych typów postów) Dzięki


title: Utwórz „pojedynczą” stronę dla niestandardowego typu postu

text: Ok, zainstalowałem wtyczkę Custom Post Type UI i ją utworzyłem. Następnie dodałem do niego nowy post. W moim motywie mam taki fragment kodu: <?php $loop = new WP_Query( array( 'post_type' => 'case studies', /* edytuj tę linię */ 'posts_per_page' => 15) ); ?> <?php while ( $loop->have_posts() ): $loop->the_post(); ?> <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>" > <?php the_post_thumbnail('thumbnail'); ?> </a> <?php endwhile; ?> Teraz, po pierwsze, jeśli kliknę miniaturę, pojawia się błąd w przeglądarce mówiący, że jest w pętli przekierowania, ale po drugie chciałbym wiedzieć dokładnie, jakie pliki muszę utworzyć, aby wyświetlić pojedynczy post tego niestandardowego typu postu . I co umieścić w tym pliku.


title: Dodajesz Permalink do slajdów za pomocą wtyczki „Simple Nivo Slider”?

text:
_Aktualizacja 27 kwietnia 10:57 — dziennik niepowodzeń_ Aby **wyjaśnić** , dostosowałem i dostosowałem tylko CSS. Pierwszy slajd działa poprawnie z linkowaniem, ale _TYLKO_ przy pierwszym cyklu / pierwszym załadowaniu strony. Potem następnym razem, gdy się prześlizgnie, przestanie się łączyć. _**??_** -- **Oryginalne P:** Więc chyba po wyjęciu z pudełka. Wtyczka **_Simple Nivo_** Slider ( _chociaż powinna?_ ) nie ma włączonej opcji bezpośredniego linku umożliwiającego przechodzenie przez slajdy do odpowiednich ostatnich postów. **Muszę to zrobić ręcznie, ponieważ już dostosowałem suwak na tyle, by bolało zacząć od początku.** Użyłem więc tej wtyczki: **http://wordpress.org/extend/ plugins/simple-nivo-slider/** Wcześniej użyłbym fragmentu php poniżej; ale zastanawiam się, gdzie mógłbym go dodać w plikach wtyczek? <?php the_permalink() ?> Czy ktoś ma jakieś sugestie lub doświadczenia z tym tematem? Ach!? **--- PEŁNY 'simple-nivo-slider.php' poniżej:** <?php /* Nazwa wtyczki: ProstaNivo Slider Plugin URI: http://wordpress.org/extend/plugins/simple-nivo-slider/ Opis: Znakomity Nivo Slider Gilberta Pellegroma, łatwo dostępny dla WordPressa Wersja: 0.5.6 Autor: Thomas M Steenholdt URI autora: http ://www.tmus.dk/ Licencja: GLP2 */ /* Copyright 2011 Thomas Munck Steenholdt (e-mail : tmus@tmus.dk) Ten program jest wolnym oprogramowaniem; możesz go rozpowszechniać i/lub modyfikować zgodnie z warunkami Powszechnej Licencji Publicznej GNU, wersja 2, opublikowanej przez Free Software Foundation. Ten program jest rozpowszechniany w nadziei, że będzie przydatny, ale BEZ ŻADNEJ GWARANCJI; bez dorozumianej gwarancji PRZYDATNOŚCI HANDLOWEJ lub PRZYDATNOŚCI DO OKREŚLONEGO CELU. Więcej szczegółów znajdziesz w Powszechnej Licencji Publicznej GNU. Wraz z tym programem powinieneś otrzymać kopię Powszechnej Licencji Publicznej GNU; jeśli nie, napisz do Wolnego OprogramowaniaFoundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ /* wersja bazy danych wtyczki - służy do identyfikacji potrzeby "uaktualnienia" bazy danych */ define('SNIVO_DB_VERSION', 5); /* obsługiwane efekty */ define('SNIVO_EFFECTS', 'fold fade wycinekDownRight sliceDownLeft sliceUpRight sliceUpLeft sliceUpDown sliceUpDownLeft slideInPrawy slajdInLeft boxRandom boxRainReverse boxRainGrow boxRainGrowReverse'); /* * zdefiniuj wartości domyślne dla wszystkich opcji wtyczek * funkcja może zwrócić całą tablicę lub wartość pojedynczej opcji, jeśli określono opt_name */ function snivo_defaults($opt_name=null) { $defaults = Array( 'snivo_category' => 1, 'snivo_imagesize' => 'full', 'snivo_shuffle' => 0, 'snivo_nivo_effects' => explode(' ', constant('SNIVO_EFFECTS')), 'snivo_nivo_slices' => 15, 'snivo_nivo_box, snivo_nivo_boxrows' => 4, 'snivo_nivo_animspeed' => 500, 'snivo_nivo_pausetime' => 3000, 'snivo_nivo_directionnav' => 1, 'snivo_nivo_directionnavhide' => 1, 'snivo'_nivo_h_overniv' => 1 ' => 1, 'snivo_nivo_captionopacity' => 80 ); /* zwróć całą tablicę, jeśli $opt_name jest pusta */ if (empty($opt_name)) return $defaults; /* w przeciwnym razie zwróć wartość określonej opcji z tablicy */ return $defaults[$opt_name]; }; /* * zaczep aktywacji wtyczki */ function snivo_activate() { /* dodaj/zaktualizuj wszystkie opcje wtyczek */ update_option('snivo_db_version', constant('SNIVO_DB_VERSION')); foreach (snivo_defaults() as $opt_name => $default_value) { add_option($opt_name, $default_value); } }/* * zaczep dezaktywacji wtyczki */ function snivo_deactivate() { /* usuń przestarzałe opcje z bazy danych po dezaktywacji */ delete_option('snivo_nivo_testtest'); } /* * hak dezinstalacji wtyczki */ function snivo_uninstall() { /* usuń wszystkie opcje wtyczek */ delete_option('snivo_db_version'); foreach (snivo_defaults() as $opt_name => $default_value) { delete_option($opt_name); } } /* * wyświetla powiadomienie administracyjne, gdy baza danych jest aktualizowana */ function snivo_update_notice() { ?>

 Prosty suwak Nivo: baza danych została zaktualizowana.

 <?php } /* * obsługuj aktualizacje wtyczek */ function snivo_update_helper() { /* * jeśli aktualna baza danych 'snivo_db_version' jest mniejsza niż plwersja bazy danych ugin, * zaktualizuj bazę danych wtyczek przez wywołanie funkcji deactivate() i Activate() */ if (intval(get_option('snivo_db_version')) < constant('SNIVO_DB_VERSION')) { /* deactivate, aktywacja obsłuży dodawanie nowych opcji do bazy danych * i zaktualizuj też wersję_db_danych */ snivo_deactivate(); snivo_activate(); /* powiadom administratora o aktualizacji */ add_action('admin_notices', 'snivo_update_notice'); } } /* * plugin funkcja akcji admin_init */ function snivo_admin_init() { register_setting('snivo-settings', 'snivo_category', 'intval'); register_setting('snivo-settings', 'snivo_imagesize'); register_setting('snivo-settings', 'snivo_shuffle', 'intval'); register_setting('snivo-settings', 'snivo_nivo_effects'); register_setting('snivo-settings', 'snivo_nivo_slices', 'intval'); register_setting('snivo-settings', 'snivo_nivo_boxcols', 'intval'); register_setting('snivo-settings', 'snivo_nivo_boxrows', 'intval'); register_setting('snivo-settings', 'snivo_nivo_animspeed', 'intval'); register_setting('snivo-settings', 'snivo_nivo_pausetime', 'intval'); register_setting('snivo-settings', 'snivo_nivo_directionnav', 'intval'); register_setting('snivo-settings', 'snivo_nivo_directionnavhide', 'intval'); register_setting('snivo-settings', 'snivo_nivo_controlnav', 'intval'); register_setting('snivo-settings', 'snivo_nivo_keyboardnav', 'intval'); register_setting('snivo-settings', 'snivo_nivo_pauseonhover', 'intval'); register_setting('snivo-settings', 'snivo_nivo_captionopacity', 'intval'); snivo_update_helper(); } /* * plugin funkcja akcji admin_menu */ function snivo_admin_menu() { if (function_exists('add_submenu_page')) add_submenu_page('plugins.php','Prosta konfiguracja suwaka Nivo', 'Prosty suwak Nivo', 'manage_options', 'snivo_menu', 'snivo_admin_options'); } /* * jest to funkcja, która faktycznie udostępnia suwak (wywoływany z motywu) */ function simple_nivo_slider($id='slider', $category='') { # upewnij się, że motyw ma obsługę post-miniatur, jeśli (! current_theme_supports('post-thumbnails')) add_theme_support('post-thumbnails'); ?>  <div id="<?php echo $id?>"> <?php # zbuduj ciąg zapytania post, a następnie wykonaj zapytanie (domyślna kategoria jest określona w ustawieniach wtyczki) $query = 'posts_per_page=-1& '; if (empty($category)) $query .= 'cat='.get_option('snivo_category'); else $query .= 'nazwa_kategorii='.$kategoria; # wykonaj zapytanie, przetasuj if shuffle włączone if (get_option('snivo_shuffle', snivo_defaults('snivo_shuffle'))) shuffle(query_posts($query)); else query_posts($query); # przetworzyć wyniki while (have_posts()) { the_post(); if(!has_post_thumbnail()) przerwa; # określ link $link = trim(get_post_meta(get_the_id(), 'simple_nivo_link', true)); if (pusty($link)) $link = get_permalink(); # zbuduj znaczniki otwierające i zamykające 'a', jeśli chcesz $linkhead = $linktail = ''; if (strtolower($link) != 'brak') { $linkhead = ""; $linktail = ""; } list($imgsrc) = wp_get_attachment_image_src(get_post_thumbnail_id(), get_option('snivo_imagesize', snivo_defaults('snivo_imagesize'))); $caption = get_post_meta(get_the_id(), 'simple_nivo_podpis, prawda); ?> <?php echo $linkhead ?><img src="<?php echo $imgsrc ?>" alt="" title="<?php echo $podpis ?>" /><?php echo $linktail." \n" ?> <?php } wp_reset_query(); ?>
 <?php } /* * obsługa tagów shortcode snivo */ function snivo_shortcode($atts) { extract(shortcode_atts(array( 'id' => 'slider', 'category' => '', ) , $atts)); # wywołaj funkcję głównej wtyczki używając określonych opcji simple_nivo_slider($id, $category); } /* * strona opcji administracyjnych wtyczki */ function snivo_admin_options() { if (!current_user_can('manage_options')) { wp_die( __('Nie masz wystarczających uprawnień dostępu do tej strony.') ); } ?>

Prosta konfiguracja Nivo Slider
 <form method="post" action="options.php" id="simple-nivo-slider-conf"> <?php settings_fields('snivo-settings'); ?>

Kategoria posta	 <select name="snivo_category"> <option value="1" >Wybierz kategorię</option> <?php $category = get_option('snivo_category'); $categories= get_categories(); foreach ($categories as $cat) { $option = '<option value="'.$cat->term_id.'"'; if ($cat->term_id == $kategoria) $opcja .= ' selected="selected"'; $opcja .= '>'; $option .= $cat->cat_name.'('.$cat->category_count.')'; $opcja .= '</option>'; echo $opcja; }?> </select>

Rozmiar obrazu	 <select name="snivo_imagesize"> <?php $imagesize = get_option( 'snivo_imagesize'); $imagesizes = get_intermediate_image_sizes(); $imagesizes[] = 'pełny'; foreach (array_reverse($imagesizes) as $tmpsize) { $option = '<option value="'.$tmpsize.'"'; if ($tmpsize == $imagesize) $opcja .= ' selected="selected"'; $opcja .= '>'; $opcja .= $tmpsize; if ($tmpsize == snivo_defaults('snivo_imagesize')) $option .= ' (domyślnie)'; $opcja .= '</option>'; echo $opcja; } ?> </select>

Włączone efekty	 <?php $all_effects = explode(' ', constant('SNIVO_EFFECTS')); $enabled_effects = get_option('snivo_nivo_effects'); foreach ($all_effects as $effect) { ?> <input type="checkbox" name="snivo_nivo_effects[]" value="<?php echo $effect ?>"<?php if (in_array($effect, $enabled_effects) ) echo 'checked="sprawdzone"'?>><?php echo $effect ?>
 <?php } ?>

Numer plasterków	 <input type="text" name="snivo_nivo_slices" size="3" value="<?php echo get_option('snivo_nivo_slices') ?>">

Liczba kolumn pola	 <input type="text" name="snivo_nivo_boxcols" size="3" value="<?php echo get_option('snivo_nivo_boxcols') ?>">

Liczba wierszy w polu	 <input type="text" name="snivo_nivo_boxrows" size="3" value="<?php echo get_option('snivo_nivo_boxrows') ?>">

Prędkość przejścia	 <input type="text" name="snivo_nivo_animspeed" size="5" value="<?php echo get_option('snivo_nivo_animspeed') ?>"> ms

<ty zakres="row">Opóźnienie między przejściami	 <input type="text" name="snivo_nivo_pausetime" size="5" value="<?php echo get_option('snivo_nivo_pausetime') ? >"> ms

Nieprzezroczystość napisów	 <input type="text" name="snivo_nivo_captionopacity" size="3" wartość ="<?php echo get_option('snivo_nivo_captionopacity') ?>"> %

Opcje	 <input type="checkbox" name="snivo_shuffle" value="1"<?php if (get_option('snivo_shuffle') == 1 ) echo 'checked="checked"'?>>Przetasuj kolejność obrazów
 <input type="checkbox" name="snivo_nivo_directionnav" value="1"<?php if (get_option('snivo_nivo_directionnav') == 1 ) echo 'checked="checked"'?>>Pokaż kierunkowe łącza nawigacyjne
 <input type="checkbox" name="snivo_nivo_directionnavhide" value="1"<?php if (get_option('snivo_nivo_directionnavhide') == 1) echo 'checked="checked"'?>>Pokaż kierunkowe łącza nawigacyjne tylko po najechaniu myszą
 <input type="checkbox" name="snivo_nivo_controlnav" value="1"<?php if (get_option('snivo_nivo_controlnav) ') == 1) echo ' check="zaznaczone"'?>>Włącz nawigację sterowania
 <input type="pole wyboru" name="snivo_nivo_keyboardnav" value="1"<?php if (get_option('snivo_nivo_keyboardnav ') == 1) echo ' sprawdzone="sprawdzone"'?>>Włącz klawiszeard navigation
 <input type="checkbox" name="snivo_nivo_pauseonhover" value="1"<?php if (get_option('snivo_nivo_pauseonhover') == 1) echo 'check="checked"'?>>Pauza suwak po najechaniu myszą

 <input type="submit" class="button-primary" value="<? php _e('Zapisz zmiany') ?>" />
 </form>
 <?php } /* zainstaluj/odinstaluj */ register_activation_hook( __FILE__, 'snivo_activate' ); register_deactivation_hook( __FILE__, 'snivo_deactivate' ); register_uninstall_hook( __FILE__, 'snivo_uninstall' ); /* akcje */ add_action('admin_init', 'snivo_admin_init' ); add_action('admin_menu', 'snivo_admin_menu'); /* shortcodes */ add_shortcode('snivo', 'snivo_shortcode'); /* arkusze stylów */ wp_enqueue_style('nivo-slider', plugins_url('/nivo-slider/nivo-slider.css', __PLIK__)); wp_enqueue_style('simple-nivo-slider', plugins_url('/styles.css', __FILE__)); /* skrypty */ wp_enqueue_script('nivo-slider', plugins_url('/nivo-slider/jquery.nivo.slider.pack.js', __FILE__), array('jquery')); ?>


title: jak przetłumaczyć dane krajów z bazy danych wp?

text: Mam listę krajów w języku francuskim przechowywaną w mojej bazie danych (wp_country). używam powyższego kodu, aby pobrać wszystkie kraje z tym ecohing `echo ''' . $country['name_country'] .'",';` wyświetla kraje w tym formacie `"Francja",` `"Afrique du sud "," ""włoski"," i tak. Powodem, dla którego wypisuję kraje w nawiasach, po których następuje przecinek, jest to, że chcę wprowadzić motyw w zmiennej autouzupełniania javascript: `var availableCountries = [//lista krajów z wp_country ?> ]`. Mój problem polega na tym, jak przetłumaczyć otrzymane kraje za pomocą funkcji tłumaczących `__()` lub `_e()` <?php global $wpdb; $sql_countries = $wpdb->prepare("SELECT id, nazwa_kraj FROM kraj ORDER BY nazwa_kraj ASC"); $result_countries = mysql_query($sql_countries); while($kraj = mysql_fetch_array($wynik_kraje)) { echo ''"' . $kraj['nazwa_kraju'] .'",'; } ?> dziękuję


title: Przesyłanie wielu załączników z interfejsu użytkownika z opisem

text: Pracuję nad witryną Wordpress, która ma niestandardowy formularz zgłoszeniowy typu front-end do dodawania wpisu typu treści „sketchpad”. Formularz ma sekcję, która pozwala na przesłanie wielu zdjęć z polem opisu, które będzie używane jako znacznik alt. Jaki jest dla mnie łatwy sposób przesyłania wielu załączników z towarzyszącymi opisami z interfejsu użytkownika? Kod, który obecnie przechwytuje przesłane pliki, znajduje się tutaj: // Upewnij się, że użytkownik może edytować posty (poziom kontrybutora) if (current_user_can('edit_posts')) { global $post; // Jeśli mamy pliki if ( $_FILES ) { // Pobierz pliki załączników do przesłania $files = $_FILES['upload_attachment']; foreach ($files['name'] as $key => $value) { if ($files['name'][$key]) { $file = array( 'name' => $files['name'] [$key], 'type' => $files['type'][$key], 'tmp_name' => $files['tmp_name'][$key], 'error' => $files['error' ][$klucz], 'rozmiar' => $pliki['rozmiar'][$klucz] ); $_FILES = array("upload_attachment" => $plik); foreach ($_FILES jako $plik => $tablica) { $newupload = insert_attachment($plik,$post->ID); } } } } } To jest funkcja „wstaw załącznik”, która faktycznie obsługuje przesłane pliki i wstawia je: function insert_attachment($file_handler, $post_id) { // sprawdź, czy przesyłanie zakończyło się powodzeniem if ($_FILES[$file_handler ]['błąd'] !== UPLOAD_ERR_OK) __return_false(); require_once(ABSPATH . "wp-admin" . '/includes/image.php'); require_once(ABSPATH . "wp-admin" . '/includes/file.php'); require_once(ABSPATH . "wp-admin" . '/includes/media.php'); $attach_id = media_handle_upload( $file_handler, $post_id ); zwróć $attach_id; }


title: Wywoływanie programu do przesyłania/selektora galerii WP z Metabox

text:
Kiedy klikam przycisk Dodaj multimedia we wpisie/stronie, mam możliwość dodania multimediów. Po wybraniu mediów klikam Wstaw do posta i obrazy są wstawiane. Istnieje jednak inna opcja, która znajduje się na lewym pasku bocznym. Mogę kliknąć Utwórz galerię. Proces wyboru obrazu jest taki sam, ale kiedy klikam Utwórz nową galerię, przechodzi do nowej ramki, która pozwala mi edytować kolejność obrazów. To drugie okno jest tym, o co mi chodzi. Wywołuję ramkę z metaboksu i udało mi się ją zdobyć, aby umożliwić mi przechwytywanie jednego lub wielu obrazów i zapisywanie identyfikatorów jako ciągu, a także wstawianie miniatur na żywo do pola podglądu. Nie mogę znaleźć nic na temat wywoływania ramki Galerii. Mój obecny kod wygląda następująco: jQuery('#fg_select').on('click', function(event){ event.preventDefault(); // Jeśli ramka multimedialna już istnieje, otwórz ją ponownie. if ( file_frame ) { file_frame .open(); return; } // Utwórz ramkę multimedialną file_frame = wp.media.frame = wp.media({ title: "Wybierz obrazy do galerii", button: {text: "Select",}, library : { type : 'image'}, multiple: true // Ustaw na true, aby umożliwić zaznaczenie wielu plików }); file_frame.on('open', function() { var selection = file_frame.state().get(' wybór'); ids = jQuery('#fg_metadata').val().split(','); ids.forEach(function(id) { attachment = wp.media.attachment(id); attachment.fetch() ; selection.add( załącznik ? [ załącznik ] : [] ); }); }); file_frame.on('ready', function() { // Tutaj możemy dodać niestandardową klasę do naszego modu medialnego. // .media-modal nie istnieje przed // całkowitym zainicjowaniem ramki. $( '.media-modal' ).addClass( 'brak paska bocznego' ); }); // Po wybraniu obrazu uruchom wywołanie zwrotne. file_frame.on('select', function() { var imageIDArray = []; var imageHTML = ''; var metadataString = ''; images = file_frame.state().get('selection'); images.each(funkcja (obraz) { imageIDArray.push(image.attributes.id); imageHTML += '
<button></button>
'; }); metadataString = imageIDArray.join(","); if(metadataString){ jQuery("#fg_metadata").val(metadataString); jQuery("#featuredgallerydiv ul").html(imageHTML); jQuery('#fg_select').text('Edytuj zaznaczenie'); jQuery('#fg_removeall').addClass('visible'); } }); // Na koniec otwórz plik modalny file_frame.open(); }); Jakieś pomysły?


title: Jak mogę przechowywać dane z pól niestandardowych w tabelach niestandardowych?

text: Wiem, jak tworzyć niestandardowe pola dla moich niestandardowych typów postów. Wiem również, że istnieje wtyczka `Advanced Custom Fields`. Ale muszę wiedzieć, jak mogę przechowywać moje niestandardowe pola w niestandardowym typie postu w moich niestandardowych tabelach DB. Szukałem tutoriali, ale znajduję tylko jak tworzyć tabele SQL we wtyczkach. Jak mogę pobrać „swoje dane” (i zapisać je we własnych tabelach) i jednocześnie w normalny sposób zapisać inne dane strony?


title: Generowanie kodu do osadzenia dla użytkowników do udostępnienia

text: Ostatnio wpadłem na pomysł, aby umożliwić użytkownikom i innym blogerom osadzenie całej strony mojego bloga na swoich blogach. Problem polega na tym, że za każdym razem muszę zmieniać adres URL w kodzie, a kody wypełniają wynik na mojej stronie. Czy jest jakiś sposób, w jaki skrypt może automatycznie pobrać adres URL przeglądanej strony i zaktualizować kody dla użytkowników bez generowania treści na mojej stronie? Właśnie tego próbowałem. <object data=http://domena.tld/Requested_page width="100%" height="500"> <embed src=http://domena.tld/Requested_page width="100%" height="500"> </embed> Błąd: nie można wyświetlić osadzonych danych. Odwiedź Odwiedź </object>


title: Odzyskaj po nieudanej konwersji w wielu witrynach

text: Zwykle jestem niezłym technikiem (spójrz na moje konto SF!), ale okazuje się, że nic nie wiem o Wordpressie i w ten sposób sabotowałem blog mojej żony. Jako rodzina mamy pakiet hostingowy za pośrednictwem Namecheap, który również zarządza moimi domenami, nie mam nic przeciwko całej sprawie DNS. Zapewniają hosting przez / public_html i używając ich cpanel zainstalowałem Wordpress w trybie pojedynczej witryny w / public_html/ _imię żony_ Wszystko szło świetnie przez wiele miesięcy, dopóki moja córka nie poprosiła o witrynę, a następnie postępowałem zgodnie z instrukcjami, aby przekonwertować ją na wielostronną ale coś poszło nie tak, po odrobinie kłótni z .htaccess udało mi się go ponownie uruchomić - z wyjątkiem tego, że nie pozwala na aktualizacje zdjęć i nadal mam na rękach bardziej nastrojowego niż normalnego nastolatka. To, co naprawdę chciałbym zrobić, to w jakiś sposób wykonać kopię zapasową wszystkich postów, konfiguracji, zdjęć itp. mojej żony, w tym bazy danych, wymazać całą instalację, ponownie zainstalować jako multisite i przywrócić wszystko. Jakie są szanse, że to zadziała, a jeśli tak, jakie byłyby moje pierwsze kroki. Znowu przepraszam, że wydaje się to takie amatorskie, naprawdę nie jest to coś, co zwykle robię.


title: Najlepsze role i możliwości w witrynie z funkcjami recenzowania przy użyciu niestandardowego posta front-end

text: Pracuję nad witryną Movie Blog, będę miał recenzję filmu dla członków witryny i planuję utworzyć/zainstalować wtyczkę, która może utworzyć post/edycję frontonu przy użyciu niestandardowego typu postu dla tych recenzji. Planuję również stworzyć niestandardowe **role i możliwości** dla moich członków, którzy będą rejestrować się w mojej witrynie. Moje pytanie brzmi, jaka jest najlepsza rola i zdolności do wykorzystania w tego rodzaju członkostwie? To lista tego, co planuję dla użytkowników. * Może edytować swój profil. * Może pisać/edytować własną recenzję (za pośrednictwem niestandardowego typu postu) Dzięki!


title: Bezpiecznie przechowuj kod (html/js ..) w bazie danych

text: Pracuję więc nad małą wtyczką, a ta wtyczka pozwala użytkownikom zapisywać dane do mojej bazy danych. Te dane są w większości zwykłym tekstem, ale 3 pola będą miały wewnątrz znaczniki. 1 pole może służyć do zapisywania wszelkiego rodzaju kodu (js/php/html....) w mojej bazie danych, a 2 pola mogą akceptować tylko kod JS. Moje pytanie, jak mam zapisać tego rodzaju dane w DB, aby zapobiec wstrzyknięciom i tym podobne. _Nadal jestem nowy w całej walidacji, więc wszelkie wskazówki i pomoc byłyby miłe (nie umieszczaj linków do dokumentów wordpress w komentarzach poniżej, już je przeczytałem)_ _Mój kod do tej pory_ $wpdb->insert($table, array( 'field-no-tags' => sanitize_text_field($_POST['field-no-tags']), 'field-have-all-tags' => $_POST['field-have-all-tags'] , 'field-have-js-tags' => $_POST['field-have-js-tags'] ),array( 's%', 's%', ) ); <form> Niedozwolony kod <textarea name="field-no-tags"></textarea> Cały kod dozwolony <textarea name="field-have-all- tags"></textarea> Dozwolony tylko JS <textarea name="field-have-js-tags"></textarea> <button type="submit">Zapisz</button> </ formularz>


title: Dodaj skrypt asynchroniczny

text: Pracuję nad wtyczką, która ma wstrzykiwać skrypt na strony (coś w rodzaju RefTagger), co byłoby łatwe przy użyciu `wp_enqueue_script`, ale są dwa powody, dla których nie mogę tego zrobić: tag skryptu musi mieć identyfikator i powinien być wykonywane asynchronicznie. Znalazłem trzy możliwe rozwiązania, ale żadne z nich mi się nie podoba: 1. **Wystarczy powtórzyć skrypt w `wp_footer`** To jest najłatwiejsze i mam pełną kontrolę nad tagiem skryptu, ale prawdopodobnie jest to skrzywione na (zamierzam przesłać moją wtyczkę do repozytorium wtyczek, więc wszelkie porady dotyczące oficjalnych wytycznych są mile widziane). 2. **Użyj standardowych funkcji i użyj filtrów, aby zmodyfikować tag skryptu.** Odpowiedzi na to pytanie szczegółowo opisują proces, mój problem polega na tym, że jest on bardzo zwariowany (i prawdopodobnie może się zepsuć w przyszłości) i dodaje logikę do ` clean_url` ma koszt wydajności - dla jednego tagu skryptu. 3. **Utwórz fragment kodu, który dynamicznie wstrzykuje skrypt, zapisz go jako plik i użyj standardowych metod.** To bardzo prosty sposób, ale do pobrania jest jeszcze jeden skrypt, co oznacza wolniejsze ładowanie strony. Czy jest inny sposób, aby to zrobić, lub czy któreś z moich rozwiązań jest akceptowalne?


title: Widżet PHP i do_shortcode

text: Używam Widget PHP, który umożliwia wykonanie kodu PHP z widżetu. Próbowałem użyć tego kodu do wykonania do_shortcode, ale to się nie renderuje <?php $lat = get_field('woo_maps_lat'); $long = get_field('woo_maps_long'); echo do_shortcode('[lokalizacja prognozy="' .$lat .','.$long. '"pomiar=\'C\']'); ?> Jeśli wywołam echo zmiennej za pomocą po prostu `echo $lat;' to działa. Widget PHP działa dobrze. Problem polega na powtórzeniu krótkiego kodu w widgecie. Mogę dodać shortcoded dobrze do widżetu, ale muszę być w stanie dodać zmienne php tam, gdzie się znajdują. Próbowałem dodać `add_filter('widget_text', 'do_shortcode');` do mojego functions.php, ale nadal nie renderuje się poprawnie. Jakieś sugestie? Dziękuję


title: Nie można filtrować kategorii według kategorii nadrzędnej

text: Próbuję uzyskać wszystkie bezpośrednie kategorie podrzędne w hierarchii kategorii. Co próbowałem: $args = array( 'child_of' => get_query_var("cat") ); $kategorie = get_categories($args); foreach($categories as $category) { $catID = $category->cat_ID; $test = "ID_kota: " . $kategoria->ID_kota . " " . "rodzic: " . $kategoria->rodzic . ", "; echo $test; } W przypadku `get_query_var("cat") == 14` otrzymuję następujący wynik: > cat_ID: 35 rodzic: 14, cat_ID: 34 rodzic: 14, cat_ID: 36 rodzic: 34, cat_ID: > 37 rodzic: 34, co nie jest tym, czego chcę, ponieważ wyświetla to kategorie podrzędne dziecka. Próbowałem więc $args = array('parent' => strval(get_query_var("cat")) ); co daje > cat_ID: 35 rodzic: 14, zamiast tego, czego się spodziewałem > cat_ID: 35 rodzic: 14, cat_ID: 34 rodzic: 14, Więc co się dzieje?


title: Edytuj funkcję treści

text: Chcę edytować domyślną funkcję `the_content()`. Wiem, że mogę `add_filter('the_content', 'with_my_function')` ale mam problemy z wypisaniem starej zawartości z moim. Oto przykład tego, co robię. add_filter('treść', 'moja_funkcja'); function moja_funkcja() { $write = 'witaj świecie'; $content = apply_filters('the_content', get_the_content()); echo $zapis.$treść; } Jak mogę to uruchomić?


title: sprawdź, czy przesłany komentarz zakończył się powodzeniem

text: Chcę użyć php, aby zrozumieć, czy przesłanie komentarza powiodło się. Czy są jakieś dane `get/post`, których mogę użyć do stworzenia w tym celu funkcji `if`?


title: do_shortcodes() nie działa

text: Tworzę szablon strony głównej dla mojego motywu i chcę wywołać wtyczkę, a mianowicie royalslider. Na pewno do_shortcode('[gallery id= "1"]'); Czy powinien załatwić sprawę?


title: Zmień link do obrazu: link wp_get_attachment

text: Czy ktoś może mi pomóc filtrować wp_get_attachment_link tak, aby określone wystąpienie łączyło się z obrazem „średnim” lub innym rozmiarem, a nie pełnym rozmiarem. W szablonie strony mam następujące elementy: $args = array( 'post_type' => 'attachment', 'numberposts' => -1, 'post_status' => null, 'post_parent' => $post->ID ); $załączniki = get_posts($args); if ($attachments) { foreach ( $attachments as $attachment ) { echo wp_get_attachment_link( $attachment->ID , array(150,150) ); } } Mogę dodać filtr, aby dodać klasę lub rel, ale i tak nie mogę znaleźć zmiany domyślnego (oryginalnie przesłanego) pełnowymiarowego obrazu połączonego z szablonem .... Powyższe działa dobrze z colorbox (nie wtyczką) utworzyć lightbox, ale jeśli użytkownik prześle bardzo duży obraz (tj. 4000x4000+ pikseli), link będzie ładował się zbyt wolno i nie chcę, aby publiczność mogła pobrać obraz w jakości do druku z lightboxa.


title: Jak programowo dodać widżet do nowo utworzonej witryny (WPMU) w ramach wtyczki?

text: Tworzę wtyczkę, która tworzy nowe witryny (WPMU), a także ma swój własny widżet, który należy umieścić w nowych witrynach, które tworzy. Problem, który mam, polega na tym, że nie mogę wstawić wtyczki (najlepiej, aby zastąpić wszystkie widżety tylko moimi) do nowo utworzonej witryny. W połowie robi to w tym sensie, że umieszcza wtyczkę w stanie "nieaktywnym", zamiast na pasku bocznym. Oto kod, który mam: function se160609($blog_id, $user_id, $domain, $path, $site_id, $meta) { switch_to_blog($blog_id); switch_theme("dwadzieścia dwanaście"); register_sidebar( array ( 'name' => 'Główny pasek boczny', 'id' => 'sidebar-1', 'before_widget' => '', 'after_widget' => '', 'before_title' => '', ' po_tytule' => '', ) ); update_option('widget_mywidget', array( 'title' => 'Zasady' ) ); update_option('sidebars_widgets', array( 'sidebar-1' => array('mójwidget') ) ); restore_current_blog(); } add_action('wpmu_new_blog', 'se160609'); Mam też to, aby zarejestrować (i wyrejestrować) widżety: function se160609_load_widget() { register_widget( 'MyWidget' ); unregister_widget( 'WP_Widget_Archives' ); unregister_widget( 'WP_Widget_Calendar' ); unregister_widget( 'WP_Widget_Categories' ); unregister_widget( 'WP_Widget_Links' ); unregister_widget( 'WP_Widget_Meta' ); unregister_widget( 'WP_Widget_Pages' ); unregister_widget( 'WP_Widget_Recent_Comments' ); unregister_widget( 'WP_Widget_Recent_Posts' ); unregister_widget( 'WP_Widget_RSS' ); unregister_widget( 'WP_Widget_Search' ); unregister_widget( 'WP_Widget_Tag_Cloud' ); unregister_widget( 'WP_Widget_Text' ); } add_action( 'widgets_init', 'se160609_load_widget' );


title: Jak opróżnić tabelę bazy danych z niestandardowym wpisem wordpress

text: Mam około 2000 niestandardowych postów. I 7 zwykłych stron wp. Chcę usunąć wszystkie te niestandardowe posty bez wpływu na strony. Pomyślałem, że najprostszym sposobem będzie opróżnienie niestandardowej tabeli postów, ale nie wiem, jak to zrobić. Jestem zaznajomiony z operacjami DB, ale nie znam schematu postów wp, więc nie mam pojęcia, gdzie znajdują się te niestandardowe posty. Nie mam nic przeciwko używaniu wtyczki, aby to zrobić. W skrócie: - Po prostu chcesz usunąć wszystkie niestandardowe posty i ich dane.