title: Swobodnie przełączaj się między kartą Visual i HTML

text:
Tak więc to pytanie było wielokrotnie podnoszone pod różnymi flagami, jednak chciałbym przedstawić zunifikowany wątek dla ostatecznego rozwiązania tego problemu. W WordPress, domyślnie, podczas przełączania się między edytorami HTML i Visual w TinyMCE, niektóre tagi są usuwane z treści i pojawiają się inne dziwne funkcje. Dwa znane obejścia do pisania wydajniejszego kodu HTML to usunięcie funkcji wp_auto_p za pomocą filtrów oraz zainstalowanie TinyMCE Advanced i włączenie opcji „przestań usuwać tagi p & br”. To działa tylko tak dobrze, niestety. Weźmy na przykład następujący przykład:
Jak to działa?

Aby korzystać z jQuery Easy Columns, musisz zainstalować ją tak, jak każdą inną wtyczkę jQuery. Najpierw pobierz plik zip za pomocą powyższego przycisku. Po pobraniu pliku rozpakuj go do wybranej lokalizacji i przenieś wyodrębniony folder na swój serwer za pomocą ulubionego klienta FTP. Po przeniesieniu wtyczki na serwer (i oczywiście wywołaniu źródła jQuery w swoim dokumencie), wywołaj ją na swojej stronie, używając następującego fragmentu kodu:

 Jeśli wpiszę ten kod do edytora HTML, gdy obie opcje wymienione powyżej są już włączone, to po przełączeniu się między dwoma różnymi edytorami, nic się nie dzieje, czego można się spodziewać. Niestety, podczas zapisywania kod automatycznie konwertuje do tego:
Jak to działa?

Aby korzystać z jQuery Easy Columns, musisz zainstalować go tak, jak każdą inną wtyczkę jQuery. Najpierw pobierz plik zip za pomocą powyższego przycisku. Po pobraniu pliku rozpakuj go do wybranej lokalizacji i przenieś wyodrębniony folder na swój serwer za pomocą ulubionego klienta FTP. Po przeniesieniu wtyczki na serwer (i oczywiście wywołaniu źródła jQuery w swoim dokumencie), wywołaj ją na swojej stronie, używając następującego fragmentu kodu:

 Jak widać, wszystkie elementy wewnątrz tagu pre są konwertowane z powrotem na rzeczywiste znaki HTML. Następnie, jeśli ponownie zapiszę ten sam post, otrzymam coś takiego:
Jak to działa?

Aby korzystać z jQuery Easy Columns, musisz zainstalować go tak, jak każdy inny jQuery podłącz. Najpierw pobierz plik zip za pomocą powyższego przycisku. Po pobraniu pliku rozpakuj go do wybranej lokalizacji i przenieś wyodrębniony folder na swój serwer za pomocą ulubionego klienta FTP. Po przeniesieniu wtyczki na serwer (i oczywiście wywołaniu źródła jQuery w dokumencie), wywołaj ją w swojej witrynie, używając następującego fragmentu kodu:

 Zauważ, że Wordpress faktycznie wstawi tagi br do posta. Nie trzeba dodawać, że gdy ten post był aktualizowany kilka razy, podczas przeglądania go na interfejsie, wyświetlacz nie znajduje się w pobliżu zamierzonego wyświetlacza. Jedynym sposobem, w jaki pozbyłem się wszystkich dodanych „funkcji formatowania”, było wyłączenie edytora wizualnego w moim profilu. To dla mnie dobre rozwiązanie, biorąc pod uwagę, że jestem profesjonalnym web developerem. Dla moich klientów to rozwiązanie dalekie od eleganckiego. Moi klienci będą w większości używać edytora wizualnego. Wielu moich klientów nie jest zbyt obeznanych z technologią i czasami potrzebuje, abym poprawił ich posty, gdy układ się zepsuje. To ogranicza mnie do korzystania z edytora wizualnego, ponieważ nie mogę przejść do edytora HTML bez obawy, że zepsuję układ. Głównie (i myślę, że jest duża społeczność, która mogłaby skorzystać na tej odpowiedzi), jakie wyraźne kroki mogę wykonać, aby zapewnić, że: 1. Post może być edytowany z edytora wizualnego lub HTML. 2. Treść posta nie jest w żaden sposób modyfikowana podczas przełączania między dwiema zakładkami. 3. Podczas zapisywania posta z edytora HTML nie są dodawane żadne dodatkowe treści. 4. Podczas zapisywania posta z edytora HTML żadne encje nie są konwertowane. 5. BONUS: Podczas zapisywania posta z edytora HTML, każdy kod (na przykład HTML), który jest opakowany wewnątrz tagu wstępnego i nie został jeszcze przekonwertowany na encje, zostanie automatycznie przekonwertowany na encje. Zasadniczo, jeśli możemy stworzyć wyżej wymienione zachowanie w TinyMCE za pomocą wtyczki innej firmy, możemy odpowiedzieć na wszystkie inne pytania dotyczące fałszywego formatowania za pomocą TinyMCE. Czuję, że wiele osób mogłoby na tym skorzystać. Wydaje się logiczne, że istnieje pewna funkcjonalność, której można oczekiwać od edytora WYSIWIG, a to jest sprzeczne z tym. Zgodnie z całą logiką i rozsądkiem, wbudowane funkcje formatowania Wordpress są dość bezużyteczne przy ich obecnej konfiguracji. Wydaje mi się, że jeśli chcą korzystać z tych opcji formatowania, najlepszym rozwiązaniem byłoby włączenie jednego lub drugiego edytora, a nie obu. I PROSZĘ: Nie podawaj w tym wątku obejść i pobierania plików dla innych edytorów WYSIWIG, które 'naprawiają' problem. Jest to podstawowy problem (choć nie jest to prawdziwy błąd) w rdzeniu Wordpress, który należy naprawić. **EDYTUJ** : Dobrze, pracowałem nad tym i myślę, że inżynieria wsteczna będzie najlepszym sposobem rozwiązania tego problemu. Na razie wyłączyłem wpautop (który tylko dla jasności jest funkcją, która łączy się z filtrem „the_content”, aby dodać tagi p i br _zanim zostanie wyświetlony tekst_ , a nie wtedy, gdy tekst zostanie zapisany. Myślę, że istnieje pewne zamieszanie co do sposobu działania tej funkcji.wpautop nie jest odpowiedzialny za zmiany, które widzisz, gdy przełączasz się między zakładkami edytora.To coś zupełnie innego.W każdym razie wyłączyłem wpautop, jak to jest dobrą praktyką podczas korzystania z edytora HTML.Od w tym momencie wyłączyłem edytor wizualny, aby najpierw zacząć od błędów encji HTML, które występują podczas zapisywania postu.Dzięki pomocy jednego z C. Bavota znalazłem fragment, który przekonwertuje dowolne tagi w edytorze HTML na ich równoważne encje przed wyświetleniem ich w interfejsie witryny (kredyt: http://bavotasan.com/2012/convert-pre-tag-contents-to-html-entities-in-wordpress/). #add_filter( 'the_content', 'pre_content_filter', 0 ); /** * Konwertuje zawartość znacznika wstępnego na entit HTML ies * * Ta funkcja jest dołączona do haka filtra 'the_content'. * * @author c.bavota */ function pre_content_filter( $content ) { return preg_replace_callback( '|
(.*)</pre|isU' , 'convert_pre_entities', $content ); } function convert_pre_entities( $matches ) { return str_replace( $matches[1], htmlentities($matches[1]), $matches[0] ); } add_filter( 'zawartość', 'pre_content_filter', 10, 2 ); To skutecznie eliminuje problemy z Wordpress konwertowaniem wszystkich elementów w znaczniki po zapisaniu, omijając je. Teraz możesz użyć edytora HTML i pisać standardowy kod pomiędzy tagami „pre” bez samodzielnej konwersji encji. Rozwiązuje to wszystkie problemy z konwersją encji w Wordpress i zapewnia, że wszystko wyświetla się poprawnie w interfejsie użytkownika. Teraz musimy dowiedzieć się, do czego się podłączyć, aby zmienić zachowanie podczas klikania tam iz powrotem między kartami. W tej chwili wydaje się, że po przejściu z HTML do karty wizualnej zawartość karty HTML jest interpretowana przez javascript lub coś innego, aby spróbować zapewnić aktualizację na żywo tego, jak powinna wyglądać zawartość. Powoduje to, że tagi (które są wyświetlane w postaci bez encji na karcie HTML) są przetwarzane zamiast wyświetlania. Następnie, po przejściu z powrotem do zakładki HTML, wydaje się, że TinyMCE przekazuje bieżące dane. Oznacza to, że po przełączeniu się z powrotem tracisz strukturę HTML. Musimy znaleźć sposób, aby powiedzieć TinyMCE, aby przekonwertował wszystko w pre tagach na równoważne encje przed załadowaniem go do okna (zasadniczo wersja backendowa tego, co zrobiliśmy na interfejsie, ale z tinymce i javascript zamiast php i hooków), tak, że jest wyświetlany, a nie przetwarzany. Propozycje? **EDYTUJ 2** : Po kilku dalszych badaniach konwersja jednostek w tagu wstępnym, gdy są one wyświetlane, działa dobrze w przypadku treści w tagu wstępnym, ale powiedz, że mam post na blogu z takim wierszem: „Dalej, potrzebujemy aby dodać ten wiersz do naszego pliku HTML:
Hello, World!
" Patrząc na ten wiersz, możesz stwierdzić, że kod ma być wyświetlany na stronie, a nie parsowany, jednak gdy post jest zapisane, te encje są dekodowane przy następnym wczytaniu postu edycji, a przy każdym kolejnym zapisie są zapisywane jako surowe znaczniki HTML, co powoduje ich parsowanie na interfejsie użytkownika. Jedynym rozwiązaniem, jakie do tej pory przychodzi mi do głowy, byłoby pisanie w podobnym kodzie dla znacznika „kod”, którego używam dla pre, a następnie po prostu zawijanie małych linijek w znacznik „kod”, a duże fragmenty w tag „przed”. Czy ktoś ma inne pomysły?


title: Dodaj klasę zgodnie z kolejnością pojawiania się

text:
Moja pętla zwraca pięć postów, a kod HTML powinien wyglądać tak..

 ...

 ...

 ...

 ...

 ...

 I potrzebuję aby programowo dodawać do nich klasy zgodnie z kolejnością pojawiania się, coś takiego..

 ...

 ...

 ...

 ...

 ...

 Oto kod, którego używam do tworzenia pętli: function custom_top_products() { $args = array ( 'post_type' => 'products', 'post_status' => 'publish', 'orderby' => 'comment_count', 'posts_per_page' => 5 ); $posts = nowe WP_Query( $args ); ?>

5 najlepszych produktów

 <?php if ( $posts->have_posts() ) { while ( $posts->have_posts() ) { $posts->the_post(); ?>
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?>
 <?php } else { echo '
Przepraszamy, nie znaleziono popularnych produktów
'; } wp_reset_postdata(); ?>

 <?php } Proszę o pomoc


title: Temat wywołania zwrotnego komentarza nie powoduje żadnych wyników

text:
Zrobiłem motyw i teraz w końcu edytuję wygląd wp_list_comments. Stworzyłem funkcję, napisałem link zwrotny do argumentów i wypróbowałem. Nic nie zwraca - wyświetlane są tylko elementy na stałe zakodowane w comments.php (które są tylko kośćmi dla tej listy...) Próbowałem bardzo wielu sposobów i nic nie działało; comments.php: `wp_list_comments(array('callback'=>'ksgcomcall')); ?>` functions.php: <?php funkcja ksgcomcall($komentarz, $args, $głębokość){ $GLOBALS['komentarz'] = $komentarz; ?> <li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>"> <artykuł id="comment-<?php comment_ID(); ?>" class="comment">
<?php tekst_komentarza(); ?>

<?php echo "Wiek autorów komentarzy: ".get_comment_meta( $comment->comment_ID, 'wiek', true ); ?>

 <?php comment_reply_link( array_merge( $args, array( 'reply_text' => __( 'Odpowiedz ↓', 'twentyeleven' ), 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>

 <?php } ?> - to tylko kopia przykładu z kodeksu. Czy ktoś może mi pomóc?


title: Dodaj kartę przeglądarki multimediów dla CPT

text: Stworzyłem „Galerię” CPT i chciałem stworzyć nową zakładkę w przeglądarce mediów. Na razie dodałem zakładkę i stworzyłem funkcję do jej zawartości: jw_gallery_media_tabs($tabs) { return array_merge($tabs, array('jw_gallery' => 'Wstaw galerię')); } add_filter('media_upload_tabs', 'jw_gallery_media_tabs'); jw_gallery_media_tab_content() { media_upload_header(); // WYDRUKUJ INFORMACJE TUTAJ // naśladuj domyślne karty obrazków // Struktura HTML i style CSS } add_action('media_upload_jw_gallery', 'jw_gallery_media_tab_content'); Mam teraz poprawną strukturę HTML i skopiowałem odpowiednie style z mojego inspektora sieci. Teraz musiałbym pozwolić utworzonym komórkom być _wybieralnym_ i zrobić coś po kliknięciu przycisku „wstaw”. Czy jest jakiś nieudokumentowany lub udokumentowany interfejs API do robienia takich rzeczy?


title: Sprawdź komentarz w odpowiedzi lub w stanie normalnym

text: Obecnie pracuję z niestandardową meta komentarza i mam niestandardowe dodatkowe pole, takie jak ocena itp., Kiedy użytkownik pisze komentarz (nie odpowiedź na komentarz) Chcę wyświetlić pole oceny, ale gdy jest w stanie komentarza do odpowiedzi, chcę usuń to pole. Czy istnieje funkcja kompilacji warunkowej, która sprawdza, czy jest w stanie odpowiedzi, czy nie? lub w jakikolwiek inny sposób, aby osiągnąć to, czego chcę?


title: Przekieruj na adres URL strony dla osób niebędących członkami

text: Moja wtyczka członkostwa nie pozwala mi przekierowywać niestandardowych adresów URL archiwum/taksonomii na stronę niebędącą członkiem, jeśli użytkownik żądający dostępu nie jest zalogowany lub nie jest członkiem. Tak więc próbuję włamać się, aby sprawdzić, czy użytkownik jest na poziomie A, B, C itd., a jeśli nie, strona szablonu przekierowuje do strony bez dostępu. Używam poniższego kodu, aby sprawdzić poziomy dostępu. Jaki byłby najlepszy sposób na wstawienie przekierowania strony? <?php if(mgm_user_is(array('poziom1','poziom2'))) { echo 'PRZEKIEROWANIE NA STRONĘ NIE CZŁONKOWSKĄ'; } else { echo 'DAJE DOSTĘP DO WYSZUKANEJ STRONY'; } ?>


title: Informacje o użytkowniku na pasku bocznym administratora

text: Myślę, że nikt jeszcze o tym nie pomyślał, mam nadzieję, że ktoś może mi pomóc. Próbuję dodać panel informacji o użytkowniku na pasku bocznym de admin, na samej górze. Podobnie jak wp-admin-bar-my-account na pasku administracyjnym, aby backoffice wyglądał bardzo pro dla redaktorów i autorów. Myślę, że mógłbym dodać go gdzie indziej i wstawić tam, gdzie chcę, za pomocą jakiegoś skryptu java. Przydałaby mi się tutaj pomoc, ponieważ od tygodni szukam sposobu, aby to zrobić.


title: Jak mogę umieścić na białej liście tylko określone skróty do przetwarzania w widżetach tekstowych?

text: Wiem, że mogę użyć następujących filtrów, aby umożliwić przetwarzanie krótkich kodów w widżetach tekstowych: add_filter('widget_text', 'shortcode_unautop'); add_filter( 'widget_text', 'do_shortcode'); Jak mogę umieścić na białej liście tylko kilka konkretnych krótkich kodów do przetwarzania, ale nie tylko przetwarzać każdy krótki kod?


title: Funkcja łącza nagłówka nie działa. Problem z informacją o blogu()

text: Piszę funkcję, która spowoduje, że wszystkie moje obrazy nagłówka będą linkować do odpowiednich stron głównych. Napisałem tę funkcję: function get_category_location(){ $header = get_category_header(); $home = bloginfo('url'); if ($nagłówek == 'wth') { $lokalizacja = $dom . "/z/" ; } else if ($nagłówek == 'kampus' || $nagłówek == 'technologia') { $lokalizacja = get_category_link(); } else {$lokalizacja = $dom;} return $lokalizacja; } więc kiedy klikniesz nagłówek w sekcji wth naszej strony, $header powinien równać się 'wth' a $home powinno równać się 'http://dev.reesenews.org', a więc lokalizacja powinna być ustawiona na 'http://dev .reesenews.org/wth/' o ile wiem, że $header i $home są poprawne.


title: Aktualizacje wtyczek Wordpress / ustaw plik jako niezmienny, aby zapobiec zmianie niektórych plików?

text: Zastanawiam się — jaki jest najlepszy sposób, aby zapobiec zastąpieniu pliku (np. niestandardowego pliku CSS skojarzonego z wtyczką) podczas procesu aktualizacji? Czy ustawienie statusu pliku jako niezmiennego załatwiłoby sprawę, czy też spowodowałoby to błąd podczas aktualizacji? Jaki jest najlepszy sposób na zrobienie tego?


title: Brakujący argument błędu Wordpress

text: Właśnie zacząłem otrzymywać następujący błąd na mojej stronie WP, kiedy publikuję aktualizację strony: Brakujący argument 2 dla wpdb::prepare(), wywołany w /home/greenfin/public_html/wp-content/plugins/auto-image -field/auto-image-field.php w wierszu 98 i zdefiniowany w/home/greenfin/public_html/wp-includes/wp-db.php w wierszu 992 Strona nadal publikuje poprawnie, ale muszę cofać/do przodu z ekran błędu, aby cokolwiek zobaczyć. Obawiam się, że może to powodować ciągłe problemy. Jakieś pomysły na aktualizację?


title: $wpdb->przygotuj błąd po aktualizacji Wordpress

text: > **Possible Duplicate:** > $wpdb->prepare() ostrzeżenie w WordPress 3.5 Po zaktualizowaniu Wordpress do 3.5, mam do czynienia z błędem. Wiem o błędzie, ale nie mogę go naprawić. Oto kod: $wpdb->prepare("WSTAW DO $tabeli_zamówień ( nazwa_motywu, identyfikator_użytkownika, status_zamówienia, zweryfikowany_zamówienie, data_zamówienia, metoda_płatności_zamówienia, ip_zamówienia )WARTOŚCI ( %s, %d, %d, %d, %s, %s, %s)",$theme_name, $user_id, $order_status, $order_verified, $date_now, $order_payment_method, $ip) $wpdb->prepare("SELECT COUNT(*) FROM $orders_table gdzie theme_name='$theme_name' && order_verified = '1';") $wpdb->prepare("SELECT COUNT(*) FROM $orders_table gdzie theme_name='$theme_name' && order_verified = '1' && DAY(order_date) = '$fa_today' && MIESIĄC(order_date) = '$fa_this_month' && YEAR(order_date) = '$fa_this_year';") Czy ktoś może zaktualizować powyższy kod? Dziękuję


title: Błąd przygotowania WPDB

text: Właśnie podjąłem hosting dla witryny WP klienta i jestem zaskoczony błędem WP Strona pierwotnie działała w wersji 3.2, ale aktualizuję do wersji 3.9, a klient ma na nich błąd spowodowany przez funkcję WPDB->przygotuj. Kod: $gallery_path = $wpdb->get_var($wpdb->prepare("SELECT path FROM wp_ngg_gallery WHERE gid='" . $image->galleryid . "'")); Jak mogę to zmodyfikować, aby działało w 3.9 bez błędów, znalazłem ten artykuł, jak to zrobić, ale jestem trochę zakłopotany


title: Dodaj opis do niestandardowego widżetu tekstowego i wyświetl 5 ostatnich tytułów postów

text:
Właśnie zacząłem kodować i pracować jako stażysta w firmie. Mój szef poprosił mnie o stworzenie niestandardowego widżetu tekstowego do ćwiczeń w tworzeniu widżetów prasy słownej. Problem, z którym się spotykam, polega na tym, że nie mam pojęcia, gdzie dodać opis, więc pojawi się on na pulpicie widżetów. Po prostu wyświetla tytuł. Coś innego, z czym chciałbym uzyskać pomoc, to to, że mój szef chce, abym dodał funkcję wyświetlania 5 najnowszych tytułów postów (wszystkie kategorie), a ja też nie wiem, jak to zrobić. Kod, który mam teraz, opublikuję poniżej. Każdy wkład znacznie pomoże w mojej edukacji w zakresie projektowania stron internetowych. Dziękuję! <?php /* Nazwa wtyczki: Kevins Textbox URI wtyczki: Opis: Widżet tekstowy stworzony przez Kevina Ullyotta w celu ćwiczenia tworzenia widżetów Autor: Kevin Ullyott Wersja: 1.0 URI autora: http://modmacro.com/ */ class kevintext extends WP_Widget { funkcja publiczna __construct() { rodzic::WP_Widget(false, $name='Kevins Textbox'); array('description' => __('Widżet tekstowy stworzony przez Kevina Ullyotta w celu ćwiczenia tworzenia widżetów') ); } widżet funkcji publicznych ( $args, $instance ) { extract( $args ); $nagłówek = $instancja['nagłówek']; $tekst = $instancja['tekst']; echo $before_widget; echo $before_title; echo "
$nagłówek
"; echo $po_tytule; echo "
$text
"; echo $after_widget; } aktualizacja funkcji publicznej( $nowa_instancja, $stara_instancja ) { $instancja = array(); $instancja['nagłówek'] = ( $nowa_instancja['nagłówek'] ); $instance['text'] = ( $nowa_instance['text'] ); zwróć $instancję; } public function form( $instance ) { $headline = $instance[ 'headline' ]; $tekst = $instancja[ 'tekst' ]; ?>
 <label for="<?php echo $this->get_field_id( 'nagłówek' ); ?>"><?php _e( 'Nagłówek:' ); ?> <input class="widefat" id="<?php echo $this->get_field_id( 'nagłówek' ); ?>" name="<?php echo $this->get_field_name( 'nagłówek' ); ?>" type="text" value="<?php echo esc_attr( $nagłówek ); ?>" />

 <label for="<?php echo $this->get_field_id( 'tekst' ); ?>"><?php _e( 'Tekst:' ); ?> <input class="widefat" id="<?php echo $this->get_field_id( 'text' ); ?>" name="<?php echo $this->get_field_name( 'text' ); ?>" type="text" value="<?php echo esc_attr( $text ); ?>" />
 <?php } } add_action( 'widgets_init', create_function('', 'return register_widget("kevintext");') ); ?>


title: Podziel pętlę na kilka kolumn w oparciu o niestandardowe pole postu i włącz nieskończone przewijanie

text:
Jak mogę podzielić pętlę WP na kilka kolumn na podstawie niestandardowego pola posta i włączyć przewijanie w trybie invinite? Poniżej znajduje się pożądany znacznik wyjściowy oparty na frameworku Twitter Bootstrap.

Tytuł posta

Tytuł posta

Tytuł posta

Tytuł posta

Tytuł posta

Tytuł posta

 Możesz zobaczyć przykład w Mashable.


title: Jak uniknąć zmiany edytora WP <br/> przez

text:
Ok, to jest stare pytanie i mogę otrzymać klasyczne odpowiedzi: * używam klawisza programowego Nie potrafię, używam również JIG, co powoduje, że klawisz programowy jest nieważny, gdy używam go, aby tekst był nieco zniżony do stóp z moim obrazem. Właśnie dlatego muszę używać br, ponieważ dobrze to robi. A tak przy okazji, nawet gdyby to zadziałało, edytor wymazuje odstępy między klawiszami programowymi, gdy tylko wrócę do edycji tekstu. Mam coś innego do roboty niż ciągłe dodawanie skoków klawiszy programowych za każdym razem, gdy chcę edytować. * disabble wpautop Cóż, byłem na tej ścieżce, ale powiedziano mi, że nie powinienem. „Wyłączenie autop to prawdopodobnie zły pomysł, ponieważ wprowadza o wiele więcej zmian w sposobie przetwarzania treści edytora, zmian, które najprawdopodobniej będzie chciał nadal obowiązywać plakat”. Co ma rację. Zasadniczo chciałbym mieć swobodę używania
w wordpressie. Z góry bardzo dziękuję za pomoc. Edycja : Och !!! Przyszedłem tutaj, aby edytować mój post, dodałem
, aby moje linie były pod "użyj klawisza programowego" i "wyłącz wpautop", potem zapisałem, potem ponownie otworzyłem edycję i rany !!! Utrzymuje moje
 s !!! Więc to jest możliwe! Jak ?


title: Przypisz przesłany plik do użytkownika

text: Rozwijam projekt, w którym muszę dać zalogowanemu użytkownikowi (redaktorom) opcję „oddania” wgranego pliku (media) konkretnemu użytkownikowi. Innymi słowy, chcę dodać dodatkowe pole na stronie przesyłania multimediów, listę rozwijaną zawierającą wszystkich użytkowników według nazwy, aby użytkownik (redaktor) mógł zmienić właściciela tego pliku na wybranego użytkownika. Każda pomoc będzie mile widziana. Dziękuję. EDYCJA: Przepraszam, że jestem takim nowicjuszem w wp, ale nie mam „jasnego” pomysłu, jak to zrobić. Nie znalazłem żadnej linii kodu do dodawania niestandardowych pól lub edycji formularza przesyłania multimediów, przeszukałem też tutaj na forach bezskutecznie. :/ Wszystko, co dotyczy dodawania niestandardowych pól do formularza przesyłania multimediów, bardzo by pomogło. EDIT2: Właściwie znalazłem tę sztuczkę, ale nie zadziałała: http://bavotasan.com/2012/add-a-copyright-field-to-the-media-uploader-in-wordpress/ EDIT3: Ok, ja Zrobiłem trochę więcej badań na ten temat i wszystko, co do tej pory mam, to podmenu „Dodaj plik”, które prowadzi do strony zawierającej formularz przesyłania pliku, ale nie wiem, jak sprawić, by faktycznie „opublikował” formularz dane do bazy danych. Trochę kodu, który dodałem do functions.php mojego motywu: add_action( 'admin_menu', 'my_add_menus' ); function my_add_menus() { add_media_page('Dodaj test pliku', 'Dodaj test pliku', 'upload_files', 'add-doc', 'my_add_doc'); } function my_add_doc() { echo '<form id="featured_upload" method="post" action="#" enctype="multipart/form-data">'; echo '<input type="file" name="my_image_upload" id="my_image_upload" multiple="false" />'; echo '<input type="hidden" name="post_id" id="post_id" value="55" />'; echo "<?php wp_nonce_field( 'moj_obraz_przesylany', 'moj_obraz_upload_nonce' ); ?>"; echo '<input id="submit_my_image_upload" name="submit_my_image_upload" type="prześlij" value="Prześlij" />'; echo '</form>'; } Ale nic się nie dzieje.


title: Wtyczka Wordpress, wyświetlająca posty w admin i posiadająca poprawny tytuł/wybraną wartość

text: Tworzę wtyczkę, która służy do wyświetlania pojedynczego wpisu w obszarze widżetów. Mogę sprawić, by interfejs działał dobrze, ale w obszarze administracyjnym (strona widżetów i dostosowywanie) mam pewne problemy. Mam rozwijaną listę wyboru, która wyświetla wszystkie posty w witrynie, dzięki czemu użytkownik może przewijać listę i wybrać, który z nich ma wyświetlić. To wszystko działa, ale nie mogę wymyślić, jak sprawić, by lista wyboru „przyklejała się” do wybranego posta, gdy strona jest odświeżana, po prostu wraca do pierwszego posta na liście. Mam również pewne problemy z wyjściem tytułu, na stronie Widgety faktycznie wyświetla tytuł posta (tak jak powinien), ale na stronie dostosowywania faktycznie wyświetla numer identyfikacyjny posta i nie mogę zrozumieć, dlaczego. Jakakolwiek pomoc, której możesz się doczekać, byłaby bardzo mile widziana. Kod znajduje się poniżej. Dziękuję! aktualizacja funkcji($nowa_instancja, $stara_instancja) { $instancja = $stara_instancja; $instance['title'] = strip_tags(stripslashes($new_instance['title'])); zwróć $instancję; } function form($instance) { $instance = wp_parse_args( (array) $instance, array('title'=>'') ); $title = htmlspecialchars($instance['title']); $bat = pobierz_tytuł($tytuł); echo ' <input class="hidden" id="' . $this->get_field_id('title') '" name="' . $this->get_field_name('title') '" type="text" value="' . $bat . '" />'; ?><select name="<?php echo $this->get_field_name('title'); ?>" id="<?php echo $this->get_field_id('title'); ?>" class="widefat "> <?php globalny $post; $args = array( 'numberposts' => -1, 'post_type' => array ( 'post', 'strona','recenzja')); $posts = get_posts($args); foreach( $posts jako $post ): setup_postdata($post); ?> <option value="<? echo $post->ID; ?>"<?php selected( $instance['title'], '<?php the_title(); ?>' ); ?>><?php the_title(); ?></option> <?php endforeach; ?></select><?php }


title: Media Gallery nie wyświetla się (przy użyciu WP-Read Only)

text:
Utworzyłem stronę i dodałem do niej galerię multimediów, ale galeria multimediów się nie wyświetla. Myślę, że może to być związane z używaniem WP Tylko do odczytu, który przechowuje wszystkie moje obrazy na S3 (ponieważ jestem na Heroku). WP-Read Only nie napotyka żadnych możliwych do zidentyfikowania problemów - mogę przesyłać i przycinać dobrze. Więc może to nie jest przyczyna tego, że galeria medialna się nie wyświetla. Oto wynik shortcode: `[gallery ids="54,55"]` Oto kod HTML w div treści na stronie mediów:

Media

 Używam WordPressa 3.5.2. Jedyną zainstalowaną przeze mnie wtyczką inną niż WP Read-Only jest Akismet. **Aktualizacja:** Dokopałem się do funkcji `gallery_shortcode` w wp_includes/media.php, problem polega na tym, że `get_posts( array('include' => $include, 'post_status' => 'inherit', 'post_type ' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );` zwraca pustą tablicę, więc nic nie zwraca: if ( empty($ załączniki) ) powrót '';


title: Niestandardowe typy postów czy nie niestandardowe typy postów?

text: Obecnie mam stronę internetową o nazwie storelocator.no. Tutaj możesz wyszukać markę i zobaczyć, jakie sklepy sprzedają tę markę. Klikając sklep, zobaczysz, jakie marki ma ten sklep. Obecnie używam do tego niestandardowej bazy danych. Ale teraz, gdy WP ma niestandardowe typy postów, zastanawiam się, czy powinienem utworzyć niestandardowy typ postu dla sklepu i jeden niestandardowy typ postu dla marki. Muszę jeszcze powiązać sklep z marką -> Sklep może mieć wiele marek, marka może być w wielu sklepach. Muszę również połączyć niektórych użytkowników ze sklepem lub marką (właściciel sklepu lub właściciel marki), aby mogli utrzymywać informacje. Zwykli użytkownicy również mogą się zarejestrować, aby dodać do systemu dodatkowe sklepy/etykiety. Obecnie mam zarejestrowanych ponad 7.000 marek i w odpowiednim czasie będę posiadał wiele sklepów w systemie. Moje pytania brzmią: Czy powinienem trzymać się tabel niestandardowych? A może powinienem skorzystać z typów postów WP Custom? Czy witryna będzie wolniejsza przy użyciu niestandardowych typów postów, jeśli mam kilka tysięcy wpisów? Och, jeszcze jedna rzecz. Użytkownik nigdy nie jest zaplecza w WP, aby zarejestrować dane., Wszystko odbywa się z poziomu frontendu.


title: Zapytanie MySql dla Wordpress

text: Muszę policzyć liczbę wartości 1 z wp_ul_locked na wp_usermeta próbuję tego kodu $wpdb->get_var("SELECT COUNT(*) WHERE 'meta_key' LIKE 'wp_ul_locked'"); lub `$wpdb->get_var("SELECT COUNT(*) FROM $wpdb->usermeta WHERE meta_key = '1'")`; lub $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->usermeta LIKE 'wp_ul_locked' WHERE meta_value = '1'"); ale zwróć puste lub błąd ![przykład tabeli](http://i.stack.imgur.com/LEVhh.png) Gdzie jest mój błąd?


title: Jak przechwycić już zlokalizowane skrypty

text: Jeśli wtyczka używa jakiegoś skryptu (wyraźny przykład: jQuery UI Datepicker), ale nie jesteś zadowolony ze sposobu, w jaki skrypt renderuje dane wyjściowe, istnieją dwie możliwości: ## 1. Wyrejestruj skrypt > Dodaj własną wersję Więc najpierw musiałbyś sprawdzić uchwyt, a następnie znaleźć priorytet i haczyk (`wp_enqueue_scripts`, `login_enqueue_scripts` itp.) ... znasz ćwiczenie. ## 2. Zmień parametry wtyczki jQuery Normalnie - jeśli wtyczka nie jest gówniana - przekazuje parametry z PHP do JS za pomocą wp_localize_script( $handle, $object_name, array( // data ); Teraz jest to sprytny sposób dodawania danych do skryptu JS, **ale** ... domyślnie nie można go filtrować. Ani `WP_Scripts` ani `WP_Dependencies` nie oferują _dowolnego_ filtra, który użytkownicy mogą później wykorzystać > **Pytanie:** Jak możemy filtrować argumenty/parametry, które są przenoszone z > PHP do JavaScript za pomocą `wp_localize_script`?


title: odnów zaawansowane wyszukiwanie wtyczki

text: Używam wtyczki wyszukiwania zaawansowanego w mojej witrynie. http://www.zirona.com/software/wordpress-advanced-search/ teraz aktualizuję stronę i zaawansowane wyszukiwanie nie działa! :( wtyczka twórcy nie jest aktualizowana dla Wordpress 3 jak zaktualizować tę wtyczkę dla Wordpress 3? jakaś podobna wtyczka lub kod? dziękuję


title: jak wyszukiwać posty według kategorii i tagów?

text: Próbuję pokazać listę postów związanych z kategorią X i tagiem Y. Wypróbowałem następujący kod: $args = array( 'posts_per_page' => 4, 'tag_id' => $tag_id, 'cat' => $id_kata, ); zapytanie_posty($args); ale nie działa poprawnie i zwraca wszystkie posty w ko\kategorii. Chciałbym usłyszeć wszelkie spostrzeżenia, jakie możesz mieć


title: INSERT w wierszu tabeli błąd krytyczny

text: Właśnie odkryłem to wspaniałe forum :-) Mam nadzieję, że ktoś może mi pomóc w problemie z Wordpressem, którego nie mogę rozgryźć.. Dodałem hak do mojego pliku wtyczki, aby wstawić identyfikator posta natychmiastowych postów, które publikuję, w tabeli nazwany "post_votes" - używany do śledzenia głosów w górę i w dół na posty. function post_votes($post_ID) { $wpdb->insert($wpdb->prefix. 'post_votes', array('post_id' => $post_ID) ); zwróć $identyfikator_poczty; } add_action ( 'publish_post', 'post_votes' ); więc powyższy kod powinien dodać identyfikator postu w wierszu post_id (w tabeli post_votes).. jednak otrzymuję > Błąd krytyczny: wywołanie funkcji członkowskiej insert() na obiekcie niebędącym obiektem dla $wpdb->insert($wpdb ->prefiks .'post_votes', array( 'post_id' => $post_ID ) );


title: Jak poprawnie debugować WordPressa?

text: Na mojej nowej stronie używam kilku wtyczek i frameworka UpThemes i jeśli włączę Wp Debug widzę, że jest kilka błędów związanych z funkcjami Deprecated (ale strona działa). Chciałbym wiedzieć, czy istnieje wtyczka, oprogramowanie lub modlitwa (lol), których mogę użyć, aby dokładnie wiedzieć, gdzie znajduje się przestarzały kod, abym mógł użyć nowego. Jakiej wtyczki/oprogramowania używasz do debugowania wtyczek, motywów?


title: Jak dodać niestandardowy formularz do strony ustawień wtyczki

text: Mam stronę ustawień dla wtyczki, którą utworzyłem za pomocą tej funkcji: function vsp_create_menu() { add_menu_page( 'Statystyki odwiedzin', 'Statystyki odwiedzin', 'manage_options', 'vsp_settings_page', 'vsp_settings_page_function', plugins_url('/images/ ikona.png', __PLIK__ ) ); } To stworzyło stronę ustawień wtyczki. Na stronie ustawień wyświetlam niektóre dane. Zamiast wyświetlać wszystkie dane naraz, chcę podzielić moje dane na strony, używając zmiennej globalnej $_GET. Tak więc, w moim zapytaniu SQL, ostatnia część byłaby czymś w rodzaju LIMIT $_GET['offset'], 10 Więc to wyświetli 10 postów przesuniętych od tego, co jest GET. Moje pytanie brzmi, jak wypełnić $_GET. Ponieważ nie jestem zaznajomiony z tworzeniem wtyczek WordPress, pomyślałem, że będzie tak... <form id='vsp_pagination' action='<?php echo $_SERVER['PHP_SELF']; ?>' method='GET'> Ale to nie działa. Kiedy użytkownik kliknie przycisk Prześlij w formularzu, przenosi użytkownika do http://example.com/wp-admin/admin.php? Zasadniczo, czy ktoś może mi pomóc w uzyskaniu niektórych danych w _GET, abym mógł użyć tych danych do manipulowania moim zapytaniem? Czy istnieje lepszy sposób na zrobienie tego, co próbuję zrobić?


Pracuję nad dość skomplikowanymi porównaniami między metadanymi i mam trochę problemów z prawidłowym odniesieniem się do wyników z mojego zapytania. Pierwsze zapytanie do ustanowienia `$team_is_home` działa dobrze, ale jak tylko spróbuję przechwycić identyfikator postów, w których `$team_is_home` trochę się pomyli i otrzymuję ostrzeżenia mówiące: "Niezdefiniowana właściwość: WP_Query::$post " $args = array( 'post_type' => 'match_report', 'post_status' => 'publish', 'meta_query' => array( array( 'key' => 'report_home-select', 'value' => $ team_id, 'compare' => '=', ), ) ); $hometeams = nowe WP_Query($args); $team_is_home = $hometeams->found_posts; $scorehome = get_post_meta($hometeams->post->ID, 'report_homescore'); Jak powinienem odnosić się do `$hometeams->post->ID`, aby uniknąć otrzymania tego ostrzeżenia?


title: Wyklucz 2 na 3 terminy taksonomii ze wszystkich archiwów

text: Przeczytałem ten post: Dołącz i wyklucz taksonomie z archiwów i kanałów za pomocą 'pre_get_posts' A potem użyłem tej funkcji do mojego motywu. Moja taksonomia (tinh-trang) miała 3 terminy: 19,20,21 I chcę wykluczyć wszystkie posty z terminami id: 19, 21, gdy odwiedzający przejdzie do jakichkolwiek archiwów. Ale nic się nie zmieniło? add_filter('pre_get_posts','change_archive_loop'); function change_archive_loop( $query ) { $choduyet = intval(get_option('zen-id_cho_duyet')); // Pobierz identyfikator terminu 1 z opcji motywu $baocao = intval(get_option('zen-id_bao_cao')); // Pobierz identyfikator terminu 2 z opcji motywu if ( $query->is_tax( 'tinh-trang' ) && $query->is_main_query() ) { $terms = array($choduyet, $baocao); $query->set( 'post_type', array( 'post' ) ); $query->set( 'tax_query', array( 'relation' => 'LUB', array( 'taxonomy' => 'tinh-trang', 'field' => 'id', 'operator' => 'NIE IN', 'terms' => $terms ) ) ); } return $zapytanie; }


title: Przenoszenie Wordpressa z serwera live na serwer lokalny

text: Mam instalację Wordpress, nad którą pracowałem, a teraz chcę zainstalować ją na moim lokalnym serwerze. Pobrałem wszystkie pliki witryny i dodałem je do mojego lokalnego katalogu serwera. Wyeksportowałem również działającą bazę danych i zaimportowałem do lokalnej bazy danych instalacji. Jedyne dane uwierzytelniające, które zmieniłem dla bazy danych to: nazwa bazy danych [nowa nazwa], użytkownik bazy danych [root], hasło bazy danych [brak hasła], serwer bazy danych [localhost]. Po wprowadzeniu tych zmian w wp-config.php i załadowaniu witryny poprawnie ładuje się strona główna, ale ... wszystkie inne strony nadal odwołują się do adresu URL aktywnej witryny. Próbowałem to naprawić, definiując wp_home i wp_siteurl do „local/sitefolder” define(„WP_HOME”, „localhost/sitefolder”); define('WP_SITEURL', 'localhost/sitefolder'); Po wykonaniu tej czynności mam dostęp do strony, ale teraz css nie jest stosowany. Samo to jest dziwne, ponieważ podczas sprawdzania adresu URL odniesienia dla css jest to właściwa ścieżka, ale z firebugem pokazuje, że nie można znaleźć dokumentu. Zauważyłem również, że wszystkie adresy URL dodają zdefiniowany adres URL do adresów URL ... Na przykład link do strony głównej powinien mieć postać „localhost/sitefolder”, ale po zdefiniowaniu adresów URL jest teraz „localhost/sitefolder/localhost/sitefolder”. Wszedłem do bazy danych i szukałem wszelkich odniesień do aktywnych adresów URL i zastąpiłem je ścieżką lokalną, ale to nie naprawiło. Zastanawiałem się, czy może muszę zdefiniować bezwzględną ścieżkę lokalnego serwera. Czy ktoś może mi powiedzieć, jak to naprawić? Próbuję rozwiązać problemy od 4 dni bez powodzenia. Dziękujemy za wszelkie pomocne uwagi.


title: Nie można zmienić adresu URL linku bezpośredniego po naciśnięciu „ok” i „aktualizuj”

text: Próbuję zmienić niektóre tytuły moich postów i ich odpowiednie linki bezpośrednie. Po edycji tytułu i permalinku i kliknięciu „ok”, wydaje się, że link stały tymczasowo się zmienił. Jednak po kliknięciu przycisku „aktualizuj” link bezpośredni wraca do pierwotnego stanu. Czy jest coś, co może uniemożliwić zmianę, którą mogłem przeoczyć?


title: add_post_meta -- nie działa

text: Próbuję wstawić dane do tabel wp_post i wp_postmeta, ale wygląda na to, że robię coś złego. Oto mój kod: $post_data = array( 'post_title' => $data[0], 'post_content' => $data[1], 'post_status' => 'publish', 'post_type' => 'produkt' ) ; $id = wp_insert_post($post_data); add_post_meta($id, '_stock', $data[6]); add_post_meta($id, '_cena', $dane[7]); Post jest wstawiany tak, jak powinien, ale kiedy sprawdzam tabelę postmeta, nie wstawiono żadnych wartości. Próbowałem również update_post_meta, ale nadal nie działa. Jakieś sugestie?


title: Migracja bazy danych MySQL do WordPress

text: Mam bazę danych MySQL założoną dla aplikacji internetowej, nad którą pracowałem, w bazie danych innej niż WordPress. Ta baza danych zawiera wiele tabel ze wstępnie wypełnionymi wierszami dla kluczy obcych itp., których wprowadzanie zajęło dużo czasu. Próbuję wymyślić, jak mogę przenieść te tabele do bazy danych WordPressa w nienaruszonym stanie. Zastanawiam się też, w jaki sposób, kiedy to zrobiłem, mogłem nadać nazwom tabel prefiks, aby odróżnić je od podstawowych tabel WordPress. Utworzyłem również plik processforms.php, w którym użyłem metody mysqli przygotowanie i powiązanie param, aby zapobiec wstrzykiwaniu SQL, czy jest jakaś korzyść z przekodowania tego przy użyciu metody przygotowania $wpdb? Jakakolwiek pomoc, jaką możesz zaoferować, byłaby naprawdę doceniona. Dzięki Anthony Edit... Przeprowadziłem teraz migrację tabel z nowym prefiksem za pomocą funkcji kopiowania tabeli PHPMyAdmin, wszelka pomoc w innych kwestiach dotyczących $wpdb byłaby mile widziana. Zasadniczo zastanawiam się, czy metoda $ wpdb daje jakiekolwiek korzyści w zakresie bezpieczeństwa w porównaniu z metodą, której użyłem powyżej. Dzięki Anthony


title: Eksportuj i importuj wszystkie opcje wtyczek

text: Właściwie rozwijam nową darmową wtyczkę do Wordpressa częściowo opartą na tej wtyczce FrameWork: Sunrise framewok, nazwa każdej opcji zaczyna się tak: my_plugin_ Więc za każdym razem, gdy potrzebuję echo, a opcja po prostu piszę: echo get_option('my_plugin_option_example') I wszystko działa zgodnie z oczekiwaniami. Teraz chciałbym stworzyć stronę importu/eksportu (i to nie jest problem, już udało mi się stworzyć nową zakładkę). Nie mogę zrozumieć, jak dodać tę funkcję, ponieważ (z tego, co wiem) ta funkcja: get_alloptions() jest przestarzała. Dowiedziałem się o tej funkcji tutaj: wpNettuts A teraz obawiam się, że wkrótce stanie się bezużyteczna. Czy jest ktoś, kto ma rozwiązanie tego problemu?


title: Dlaczego obrazy nie ładują się prawidłowo?

text: Ostatnio przestały się wczytywać obrazy z naszej witryny Wordpress. Wszystko, co widzisz, to zepsute pudełko z obrazem, takie jak np. www.theloftycsei.org. Wszelka pomoc w rozwiązaniu problemu byłaby bardzo mile widziana, ponieważ jesteśmy organizacją charytatywną, a zatrudnienie programisty jest obecnie nieco poza naszymi możliwościami.


title: Jak naprawić ilość komentarzy wyświetlanych dla każdego posta?

text: Otrzymałem stary wordpress 2.8 i pomyślnie uaktualniłem go do WP3.2.1. Właśnie odkryłem, że liczba komentarzy wyświetlanych na liście postów WP Admin jest nieprawidłowa. Czy wiesz, jak mógłbym to naprawić, być może uruchamiając sprytne zapytanie aktualizacyjne SQL w bazie danych, które pobrałoby rzeczywistą liczbę komentarzy związanych z postem i odpowiednio zaktualizowało wiersz posta?


title: wysłać użytkownika na pierwszą stronę wyników podczas ponownego publikowania na stronie?

text: Mam niestandardowy szablon z menu rozwijanym, które filtruje posty według kategorii. Robię to, umieszczając formularz na samej stronie, a następnie przechwytując argument i używając go w zapytaniu (patrz kod poniżej). Oto bummer: jeśli przejdziesz do strony 2 (na przykład) i **następnie** użyjesz filtra, adres URL nadal zawiera bit `/page/2/` i czasami możesz skończyć z brakiem widocznych postów, jeśli tam są mniej niż wyniki na stronie, ponieważ wszystkie nowe wyniki znajdują się na stronie 1 i utknąłeś na stronie 2. Próbowałem usunąć ustawienie zmiennej stronicowanej, ale bezskutecznie. Jak mogę odesłać użytkownika z powrotem do pierwszej strony za każdym razem, gdy użyje filtra? <form action="" method="POST"> <fieldset> <select id="food-type" name="food_type" class="selectBox"> <option value="0">Wybierz jeden:</option> <option value="meat">Mięso</option> <option value="salads">Sałatki</option> <option value="vegetarian-entrees">Wegetariańskie Przystawki</option> </select> <button type= "submit" class="search">Szukaj</button> </fieldset> </form> Przetwarzam jego zawartość w następujący sposób: global $post; globalny $ciąg_zapytania; $stronicowany = (get_query_var('stronicowany')) ? get_query_var('stronicowane') : 1; $args = array( 'post_status' => 'publish', 'post_type' => 'recipe', 'suppress_filters' => false, 'paged' => $paged ); if(isset($_POST['select_food_type']) && !empty($_POST['select_food_type']) ) { $args['food_type'] = $_POST['select_food_type']; unset($args['stronicowany']); } query_posts($args);


title: Domyślna edycja galerii/możliwość edycji szablonu?

text:
Bardzo podoba mi się domyślna Galeria WordPressa, ale nie podoba mi się, jak umieszcza obrazy jako miniatury z linkiem do większego obrazu. Czy jest tak, aby wyświetlać obrazy nie w linku miniatury, tak jak obraz w pełnym rozmiarze lub wybrany z programu do przesyłania multimediów? Również na liście li? Tak po prostu wygląda to następująco..

 A może nie ma szans i trudno, tak działa galeria? Dzięki za wszelkie rady :)


title: $wpdb->get_var nie zwraca wyniku

text: Uruchomiłem mysql i potwierdziłem, że to zapytanie zwraca wynik: mysql> SELECT * FROM wp_posts WHERE post_parent = 68 AND post_type = 'attachment' AND post_name = 'side-logo-auto2' LIMIT 1; 1 wiersz w zestawie (0,00 sek) W moim szablonie próbuję tego samego: <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); //$wpdb->posts to tabela wp_posts //$post->ID to aktualny post na stronie post_type, //który jest powiązany ze stroną tego szablonu global $wpdb; $image = $wpdb->get_var( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE post_parent = %d AND post_type = %s AND post_name = %s LIMIT 1", $post->ID, ' załącznik', 'boczne-logo-auto2' ) ); echo "Identyfikator obrazu to {$image->ID}"; echo wp_get_attachment_image($image->ID); koniec; endif; ?> $post->ID zwraca 68. Jednak wartość przypisana do $image nie jest rekordem, lecz jest null.


title: Problem z kolejnością wyświetlania pierwszego posta u góry

text:
Tutaj próbuję wyświetlić top 6 postów ostatnio dodanych. Problem polega jednak na tym, że pierwszy top post nie wyświetlający kodu wyświetla top 6 postów z pierwszego drugiego postu, z wyjątkiem pierwszego pierwszego postu. Poniżej znajduje się próbka, której użyłem do wyświetlania przyklejonych i publikowanych.
 <?php **//Aby wyświetlić przyklejony na górze** $paged = get_query_var( 'paged' ) ? get_query_var( 'stronicowane' ) : 1; $sticky= get_option( 'sticky_posts' ); $args = array( 'cat' =>255, 'ignore_sticky_posts' => 1, 'post__not_in' => $sticky, //'paged' => $paged, showposts=>6 ); $recent= nowy WP_Query( $args); **//Zakończ przyklejony** **//Wyświetl pierwsze 6 postów** while($recent->have_posts()) : $recent->the_post(); $postzmienna++; if ($postvariable == 1) { ?>
[widget id="text-8"]
 //krótki kod do wyświetlania wiadomości przyklejonych <?php } else { ?>

<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>" rel="zakładka"><?php the_title(); ?>

 <?php } ?> <?php endwhile; ?> //Zakończ wyświetlanie 6 pierwszych postów
 Możesz zobaczyć ten poniższy snap top jako pierwszy, który nie wyświetla się w wiadomościach.Po górnym poście jest jeszcze jedna wiadomość, którą ustawiłem jako przyklejoną.Właściwie to chcę ją wyświetlić 1 górny post do 5 postów po przyklejonych wiadomościach. ![post](http://i.stack.imgur.com/ar73V.png) możesz sprawdzić moje wyjście bieżącego kodu, który ignoruje pierwszy górny post. ![najwyższy post](http://i.stack.imgur.com/kyuD7.png)


title: Używanie save_post do zastępowania tytułu posta

text: Używam postów niestandardowych i nie potrzebuję w nich tytułu. To powoduje, że Wordpress ustawia tytuły moich postów na "Auto Draft". Chciałbym zmienić wartość tytułu na inną, obliczoną z innych pól w moim poście. Jak mam to zrobić za pomocą save_post lub innych środków?


title: Próbuję dodać cat_ID do tablicy, aby wyświetlić obraz dla określonej kategorii

text: Więc OK....Mogę być sposób, ale tutaj idzie. Używam wtyczki, która daje postowi polecany obraz, jeśli nie jest ustawiony. Staram się więc, aby w zależności od kategorii, w której znajduje się post w wyróżnionym obrazie, odpowiadał kategorii. Więc to jest kod próbujący naprawić. <?php get_the_image( array( 'meta_key' => 'feature_img', 'rozmiar' => 'średnia', 'szerokość' => '300', 'wysokość' => '170', 'image_class' => 'cecha ', 'default_image' => 'http://www...../uploads/img_cat_' . $category->cat_ID . '.jpg' ) ); ?> Jest to kod " ' . $category->cat_ID . ' " Nie jestem pewien . Chcę, aby JPG był wyświetlany img_cat_4.jpg, jeśli post należy do Cat nr 4 itp. Czy są chętni?


title: łącze audio tworzy czarną skrzynkę

text:
W chrome i firefox (i być może innych) łącze audio nie renderuje kontrolera mediów. Np. [audio http://example.com/wp/wp-content/uploads/2011/09/file.mp3] W przeglądarce Chrome wyświetl źródło strony pokaż ten kod w miejscu:

 <audio id="wp_mep_1" preload="none"> <object width="400" height="30" type="application/x-shockwave-flash" data="http://example.com/wp/wp-content/plugins/media-element-html5-video-and- audio-player/mediaelement/flashmediaelement.swf"> <param name="film" value="http://example.com/wp/wp-content/plugins/media-element-html5-video-and-audio-player /mediaelement/flashmediaelement.swf"> <param name="flashvars" value="controls=true&file="> </object> </audio>

 AKTUALIZACJA: W konsoli JS notuję błąd: mediaelement-and -bawić się er.min.js:36 Uncaught TypeError: Nie można odczytać właściwości „url” undefined


title: Wyklucz kategorię z pętli foreach

text:
Jak mogę wykluczyć jedną kategorię z tej pętli, w której wymieniam projekty typu niestandardowego według roku? <?php foreach(posts_by_year() jako $rok => $posty) : ?>
<?php echo $rok; ?>

 <?php foreach($posts as $post) : setup_postdata($post); ?>
 <a href="<?php the_permalink(); ?>"><?php the_title(); ?>
 <?php endforeach; ?>

 <?php endforeach; ?> aktualizacja funkcji : function posts_by_year() { // tablica do wykorzystania dla wyników $lat = array(); // pobierz posty z WP $posts = get_posts(array( 'numberposts' => -1, 'orderby' => 'post_date', 'order' => 'ASC', 'post_type' => 'project', 'post_status ' => 'opublikuj', 'kategoria' => -27 )); // pętla przez posty, wypełniając tablice $years foreach($posts as $post) { $years[date('Y', strtotime($post->post_date))][] = $post; } // sortowanie odwrotne według roku krsort($lata); zwróć $lat; }


title: Jak mogę utworzyć tabelę bazy danych dla konkretnego bloga w trybie wielostanowiskowym?

text: Tworzę wtyczkę, która miała wczoraj działać na WP multisite. Zainstalowałem WP multisite na moim serwerze. Podczas testów odkryłem, że `register_activation_hook` stworzył 1 tabelę tylko na głównym blogu, podczas gdy ja mam 2 więcej. Oto jak teraz tworzę tabele: global $wpdb; require_once (ABSPATH . 'wp-admin/includes/upgrade.php'); $table_name = $wpdb->prefiks . "pm_usługi"; $table = "UTWÓRZ TABELĘ $table_name (ID bigint(20) NOT NULL AUTO_INCREMENT, service_id bigint(20) NOT NULL, nazwa varchar(200) ZESTAW ZNAKÓW utf8 UKŁADANIE utf8_unicode_ci NOT NULL, UNIQUE KEY cuunique (`ID`) );" ; dbDelta($tabela); Czy istnieje sposób na utworzenie tej tabeli dla każdego bloga w sieci po aktywacji?


title: Czy mogę ręcznie instalować wtyczki na WP.com?

text: Jeśli mam płatnego bloga na wordpress.com, czy mogę ręcznie zainstalować na nim wtyczki? A może muszę mieć własną instalację wordpressa? Dziękuję!


title: Jak wyświetlić tylko podstrony nadrzędne bieżącego elementu strony w menu pionowym?

text: Po prostu nie mogę znaleźć sposobu na umożliwienie wyświetlania tylko bieżących elementów nadrzędnych aż do bieżącego elementu strony w pionowym menu "w sposób wordpress". To, co chcę osiągnąć to następująca struktura dynamiczna, jeśli odwiedzę Strona 3.2.2.2: Strona 1 Strona 2 **Strona 3** Strona 4 * Strona 3.1 * **Strona 3.2** * Strona 3.2.1 * **Strona 3.2.2** * Strona 3.2.2.1 * **Strona 3.2.2.2** * Strona 3.2.2.2.1 * Strona 3.2.2.2.2 * Strona 3.2.2.3 * Strona 3.2.3 * Strona 3.3 * Strona 3.4 * Strona 3.5 Tak więc, tylko podmenu dla rodziców **Strona 3.2.2.2** i jego własne (jeśli posiada podmenu) zostaną wyświetlone, nawet jeśli Strona 3.4 lub Strona 3.2.3 również mają podmenu.


title: Witryna oparta na polach niestandardowych. Chcę stworzyć szablon strony oparty na edytorze wizualnym. Jak?

text:
Moja firma stworzyła witrynę internetową, która jest w całości oparta na polach niestandardowych. Odkrywamy teraz, że nie przewidzieliśmy potrzeby tworzenia stron z niestandardowymi układami, które można tworzyć indywidualnie w edytorze wizualnym. Mam dostęp do szablonów stron witryny, ale wszystkie odwołują się do pól niestandardowych. Kiedy usuwam pola niestandardowe w szablonie, nie odzyskuje to zawartości wprowadzonej w edytorze wizualnym. Jestem pewien, że brakuje mi czegoś fundamentalnego, ale nie robię żadnych postępów. Przykład jednego szablonu: <?php /* Nazwa szablonu: Wiadomości i wydarzenia POST */ get_header();?>

 <?php wp_nav_menu( array( 'container' => false, 'menu' => 'left_news' , 'menu_id' =>'nav', ) ); ?>

 <?php $box1=get_post_custom_values('box1'); echo $box1[0];?>

 <?php $box2=get_post_custom_values('box2'); echo $box2[0];?>

 <?php $box3=get_post_custom_values('box3'); echo $box3[0];?>

 <?php get_footer();?>


title: Dodaj zakres wokół tytułu produktu w WooCommerce

text: Dostosowuję niestandardowy motyw do korzystania z WooCommerce. Jednym z napotkanych przeze mnie problemów jest dodanie tagu span wokół tytułu produktu na stronie pojedynczego produktu. Zorientowałem się, jak dodać filtr do metody `the_title`, ale niestety ta metoda jest używana w innych miejscach, np. w tagu alt obrazu produktu (co go psuje). Czy istnieje sposób na określenie, aby modyfikować `the_title` tylko wtedy, gdy wyświetla on główny tytuł na stronie, zamiast być używanym gdzie indziej, jak atrybut obrazu? Oto co mam do tej pory: function my_product_title($title, $id) { if(in_the_loop() && is_product()) { return 'FooBar'; } return $tytuł; } add_filter( 'tytuł', 'tytuł_produktu', 5); Czy nie powinno być sposobu, aby połączyć się z filtrem „woocommerce_product_title”? Próbowałem to zrobić bez powodzenia. W międzyczasie wiem, że mogę zmodyfikować plik szablonu single-product/title.php, ale wolałbym to osiągnąć za pomocą hooków i akcji.


title: Kolejny get_posts() w jawnie zdefiniowanym problemie kolejności

text:
Tworzę „pętlę”, która musi wyświetlać _strony_ (nie posty) w określonej kolejności identyfikatorów. Do tej pory zrobiłem: <?php $ids = array(434, 814, 3660, 3235, 99, 1002 itd.); add_filter('posts_orderby', 'enforce_specific_order'); funkcja execute_specific_order($orderby) { globalny $wpdb; $ids_as_text = join(",",$ids); return "ZNAJDŹ_W_ZESTAWIE(".$wpdb->posty.".ID, '".$ids_as_text."') ASC"; } globalna $post; $args = array( 'posts_per_page' => 20, 'post_type' => 'strona', 'post__in' => $ids ); $mojeposty = get_posts( $args ); foreach( $myposts jako $post ): setup_postdata($post); ?>
<?php the_title(); ?>
 <?php endforeach; usuń_filtr(bieżący_filtr(), __FUNKCJA__ ); wp_reset_postdata(); ?> Widzę, że tytuły stron są wyświetlane poprawnie, ale nie w oczekiwanej kolejności na podstawie `$ids`. Dowolny pomysł?


title: Strona archiwum dla niestandardowego typu postu i niestandardowej taksonomii

text: Stworzyłem niestandardowy typ posta `book` i niestandardową taksonomię `book_category`. Próbowałem stworzyć stronę archiwum, na której można przeglądać książki należące do określonej kategorii. Do tej pory udało mi się uzyskać tylko stronę archiwum wszystkich książek, tworząc plik archive-book.php, aby dostosować widok. Jaki powinien być następny krok stąd? Mój preferowany adres URL powinien mieć postać: `mysite.com/books/[slug of book_category]` Rozumiem, że musi istnieć jakaś reguła przepisywania adresów URL, ale nie jestem pewien, jak to zrobić. Jakakolwiek pomoc byłaby wdzięczna, dzięki. Niestandardowy typ posta został zarejestrowany w następujący sposób: register_post_type( 'book', array( 'labels' => array( 'name' => __( 'Books' ), 'singular_name' => __( 'Book' ), 'menu_name' => __('Książki'), 'all_items' => __('Wszystkie książki') ), 'public' => true, 'has_archive' => true, 'taxonomies' => array('book_category' , 'book_author'), 'supports' => array( 'title', 'comments', 'excerpt', 'custom-fields', 'thumbnail', 'editor' ), 'rewrite' => true, ) ); Aby zarejestrować niestandardową taksonomię : register_taxonomy( 'book_category', 'book', array( 'label' => __( 'Kategorie książek' ), 'labels' => array( 'name' => 'Kategorie książek', 'singular_name ' => 'Kategoria książki', ), 'public' => true, 'show_ui' => true, 'rewrite' => array( 'slug' => 'book_category' ), 'capabilities' => array( 'assign_terms ' => 'edit_guides', 'edit_terms' => 'publish_guides' ), 'meta_box_cb' => 'show_book_category_ui' ) ); Edycja: Udało mi się dokonać zmiany adresu URL, postępując zgodnie z radą Milo. Ale taksonomia-book_category.php staje się wtedy bezużyteczna. Próba zmiany nazwy na taxonomybooks.php nie powiodła się. Jaka powinna być teraz nazwa tego pliku?


title: TinyMCE Dodaj multimedia i przyciski pełnoekranowe nie działają

text: Używam motywu dwadzieścia dwanaście i mam niestandardowy formularz, w którym używam TinyMCE dla treści z następującym kodem dostarczonym przez wordpress: `wp_editor($content, $editor_id);` Przyciski dodawania multimediów i trybu pełnoekranowego nie działają. Działają jednak wewnątrz administratora. Czy muszę wstawić jakiś dodatkowy plik na mojej stronie formularza, aby działały? Znalazłem ten post: Przyciski Dodaj Media + Szybka edycja nie działają Jednak nie zapewnia rozwiązania. Dziękuję Ci.


title: Przekaż zmienną do zaczepienia. To jest możliwe?

text: Mam ten hak utworzony, aby odzyskać hasło użytkownika, gdy rejestruje lub aktualizuje swoją przepustkę. Nie chcę, aby mój klient dotykał rdzenia wordpress, więc planowałem użyć haka w wp-includes/user.php Wszystko to pochodzi z tego innego postu, ponieważ nie mogę znaleźć lepszego rozwiązania. MÓJ problem polega na tym, że hak jest wywoływany, ale zmienne są puste. funkcja encrypt_password_function ($pass, $id){ global $wpdb; $encrypted=sha1($pass); $wpdb->query($wpdb->prepare("UPDATE wp_users SET iphone_pass = %s WHERE ID = %d",array($encrypted, '10'))); } function encrypt_password() { do_action('encrypt_password'); } add_action('encrypt_password', 'encrypt_password_function', 1);


title: Błędy WordPress po migracji hosta

text: Całkowity nowy WordPress tutaj, chłopaki. Niedawno przeniosłem pliki WordPress z BlueHost do GoDaddy. Na BlueHost wszystko było dobrze. Przeniosłem następujące pliki do GoDaddy. * wp-content * wp-admin * wp-include * Wszystkie pliki root, w tym wp-config.php Większość strony wydaje się działać, jednak `wp-admin` jest uruchamiany. Istnieje również błąd na każdej z publicznych stron WordPressa. Oto błędy, które otrzymuję: > **WP-Admin error** > **Ostrzeżenie:** `call_user_func_array()` oczekuje, że parametr 1 będzie prawidłowym > callbackiem, funkcja '`ssjp_Init`' nie została znaleziona lub nieprawidłowa funkcja name w > `/file directory/public_html/wp-includes/plugin.php` w wierszu 429 > **Ostrzeżenie:** Nie można modyfikować informacji nagłówka - nagłówki już wysłane przez > (wyjście uruchamiane w `/file diectory/public_html/wp -includes/plugin.php:429`) > w `/file directory/public_html/wp-includes/pluggable.php` w wierszu 896 Forum WordPress na temat kodeksu sugeruje, że jest to problem z kodowaniem, znakami specjalnymi lub brakiem `? >` na końcu tych plików. Próbowałem to wszystko naprawić bezskutecznie. Czterokrotnie sprawdziłem również plik `wp-config.php` pod kątem błędów. Wszelkie sugestie byłyby niesamowite!


title: Problemy z własnością folderów WordPress

text: Cześć, skonfigurowałem wordpress na VPS i napotykam dwa problemy: 1. Albo WordPress prosi o dane ftp w celu aktualizacji wtyczek lub ich usunięcia, albo 1. Przez FTP nie mogę usunąć plików, ponieważ pojawia się błąd odmowy uprawnień. Problem 1 rozwiązujemy wykonując: sudo chown -R www-data public_html Problem 2 rozwiązujemy wykonując: sudo chown -R mojanazwa_użytkownika public_html Rozwiązanie jednego problemu pozornie tworzy drugi. Chcę móc zalogować się z moim użytkownikiem, aby ftp i modyfikować cokolwiek, a jednocześnie chcę, aby wordpress mógł aktualizować wtyczki i takie rzeczy. czy robię coś źle?


title: Jak nałożyć łatkę?

text: Znalazłem łatkę, którą chcę tutaj: http://core.trac.wordpress.org/ticket/17763 Widzę _diff_ , ale co mam teraz zrobić? Jak mogę wprowadzić ten kod do mojego Wordpressa? Czy muszę to skopiować ręcznie? Czy jest skąd go pobrać?


title: Jak uzyskać TYLKO adres URL obrazu, który zwraca show_media_header?

text: Muszę go użyć jako obrazu tła, ale to mnie zabija, ponieważ: show_media_header() wyświetli http://url/of/the/header Jak mogę po prostu pobrać wartość? Czy mogę to wydrukować tak, jak tego potrzebuję?


title: Otrzymywanie tysięcy komentarzy spamowych

text: Widzę, że w ciągu ostatnich 2 miesięcy zablokowane komentarze spamowe w Akismet wzrosły z około 8 tys. do ponad 100 tys. w każdym z ostatnich dwóch miesięcy. Czy jest jakiś sposób, aby w ogóle powstrzymać ich publikowanie?


title: Wywołanie funkcji z poziomu functions.php zwraca niepożądaną wartość

text:
Próbuję dostosować wynik shortcode [galeria], aby zawierał liczbę komentarzy przez tę wtyczkę: Komentarze na Facebooku dla wtyczki WordPress Znalazłem funkcję Zacka Austina (pokazaną poniżej), która pobiera liczbę komentarzy z wykresu Facebooka. Ponadto znalazłem fragment kodu autorstwa t31os (również pokazany poniżej), który pozwala mi dostosować wyjście shortcode [galeria]. Dlatego staram się włączyć funkcję liczenia komentarzy na Facebooku do konfigurowalnego kodu galerii. Teraz, kiedy wstawiam oba fragmenty kodu do mojego functions.php i wywołuję funkcję z jednego z moich innych szablonów stron (`<?php echo fb_comment_count(); ?>`), działa to dobrze. Jednak gdy próbuję wywołać funkcję z poziomu functions.php, otrzymuję "0" bez względu na to, ile jest komentarzy. Próbowałem debugowania, aby sprawdzić wartość $post wewnątrz funkcji fb_comment_count i generuje ona następujące dane: `id = 818 id = 818 id = 818 id = 818 id = 818 id = 818 id = 818 id = 818` To jest błędne ponieważ każdy z tych identyfikatorów powinien być inny dla każdej strony załącznika, na której znajduje się obraz. 818 to identyfikator całej strony galerii. Przypuszczam, że właśnie dlatego otrzymuję „0” dla liczby komentarzy, ponieważ sama strona galerii (id 818) nie ma komentarzy. Aby dać lepsze wyobrażenie o tym, co próbuję zrobić, oto szablon strony galerii. Każdy z tych obrazów jest połączony z odpowiednimi stronami załącznika. Białe pole z liczbą w środku to liczba komentarzy. ![galeria](http://i.stack.imgur.com/pZZ1z.jpg) Jeśli ktoś może mi pomóc dowiedzieć się, jak pobrać poprawną liczbę komentarzy dla każdego obrazu w galerii, byłbym bardzo wdzięczny . Dziękuję Ci. Oto funkcja fb_comment_count autorstwa Zacka Austina. // Licznik komentarzy FB (przez Zacka Austina) function fb_comment_count($link = 'link') { global $post; $url = 'https://graph.facebook.com/'; $posturl = get_permalink($post->ID); $url .= $posturl; $ filecontent = wp_remote_retrieve_body(wp_remote_get($url, array('sslverify'=>false))); $json = json_decode($zawartośćpliku); $liczba = $json->komentarze; if ($liczba == 0 || !isset($liczba)) { $liczba = 0; } $komentarze = $liczba; if ($liczba == 1) { $komentarze .= ''; } elseif ($count == 0) { $comments = '0'; } elseif ($liczba > 1) { $komentarze .= ''; } if ($link == 'nolink') { return $comments; } else { return 'post_title.'">'.$comments.''; } } A oto kod niestandardowej galerii, w której wywołuję funkcję fb_comment_count powyżej (około 22 wierszy od dołu). Zarówno poniższy kod, jak i powyższy kod znajdują się w moim pliku functions.php. // Galeria niestandardowa add_filter( 'post_gallery', 'my_post_gallery', 10, 2 ); function my_post_gallery( $output, $attr) { global $post, $wp_locale; $instancja statyczna = 0; $instancja++; // Ufamy danym wprowadzonym przez autora, więc upewnijmy się przynajmniej, że wygląda jak prawidłowe polecenie orderby if ( isset( $attr['orderby'] ) ) { $attr['orderby'] = sanitize_sql_orderby( $attr[' Zamów przez'] ); if ( !$attr['orderby'] ) unset( $attr['orderby'] ); } extract(shortcode_atts(array( 'order' => 'ASC', 'orderby' => 'menu_order ID', 'id' => $post->ID, 'itemtag' => 'dl', 'icontag' = > 'dt', 'captiontag' => 'dd', 'columns' => 3, 'size' => 'thumbnail', 'include' => '', 'exclude' => '' ), $attr) ); $id = intval($id); if ( 'RAND' == $order ) $orderby = 'brak'; if ( !empty($include)) { $include = preg_replace( '/[^0-9,]+/', '', $include ); $_attachments = get_posts( array('include' => $include, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) ); $załączniki = tablica(); foreach ( $_attachments as $key => $val ) { $attachments[$val->ID] = $_attachments[$key]; } } elseif ( !empty($exclude)) { $exclude = preg_replace( '/[^0-9,]+/', '', $exclude ); $attachments = get_children( array('post_parent' => $id, 'exclude' => $exclude, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) ); } else { $attachments = get_children( array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) ); } if ( empty($attachments) ) return ''; if ( is_feed() ) { $output = "\n"; foreach ( $attachments as $att_id => $attachment) $output .= wp_get_attachment_link($att_id, $size, true) . "\n"; zwróć $wyjście; } $itemtag = tag_escape($itemtag); $captiontag = tag_escape($captiontag); $kolumny = intval($kolumny); $itemwidth = $kolumny > 0 ? piętro (100/kolumny $): 100; $float = is_rtl() ? 'prawo lewo'; $selector = "galeria-{$instance}"; $output = apply_filters('gallery_style', "
"); $i = 0; foreach ( $attachments as $id => $attachment ) { $link = isset($attr['link']) && 'file' == $attr['link'] ? wp_get_attachment_link($id, $rozmiar, fałsz, fałsz) : wp_get_attachment_link($id, $rozmiar, prawda, fałsz); $output .= "<{$itemtag} class='gallery-item'>"; $output .= "". fb_comment_count() .""; $output .= " <{$icontag} class='gallery-icon'> $link </{$icontag}>"; if ( $captiontag && trim($attachment->post_excerpt)) { $output .= " <{$captiontag} class='gallery-caption'> ". wptexturize($attachment->post_excerpt) . " </{$captiontag}>"; } $output .= "</{$itemtag}>"; if ( $kolumny > 0 && ++$i % $kolumny == 0 ) $output .= '
'; } $output .= "

\n"; zwróć $wyjście; }


title: Strony przekierowane do wpisu w załączniku

text: ## USTAWIENIA Używam WordPress 3.4.2 z wtyczką Magic Fields 2. Używając MagicFields2, dodałem niestandardowe pole do wbudowanego typu postu „strona”. To pole nazywa się „section_header” (co jest po prostu typem posta z załącznikiem). Moja struktura linku bezpośredniego to `/%category%/%postname%/`. ## PROBLEM Czasami, gdy próbuję wyświetlić stronę z ustawionym 'section_header', zostaje przekierowany do posta z załącznikiem zamiast do posta, który próbuję wyświetlić. Zauważyłem, że strona i załącznik mają ten sam tytuł, gdy tak się dzieje. Wygląda na to, że załącznik w jakiś sposób otrzymuje permalink, który zastępuje permalink strony. ## OBEJŚCIE Mogę wyświetlić stronę, jeśli mogę uzyskać bezpośredni link do strony. Zmiana tytułu załącznika w Bibliotece multimediów NIE wydaje się zmieniać bezpośredniego linku załącznika. ## ROZWIĄZANIE IDEALNE Moje idealne rozwiązanie pozwoliłoby mi zamiast tego zmienić permalink załącznika. Jak mogę to osiągnąć? Dziękuję!


title: Zahacz tylko określony typ postu

text: za pomocą tej funkcji zmieniam tytuły moich postów w typie postów 'alternatywy'. Mój problem polega na tym, że Wordpress zmienia teraz wszystkie moje tytuły. Czy ktoś wie, jak mogę to ustawić tylko dla określonego niestandardowego typu postu? // Zmień alternatywy title function alternatives_title( $title, $post_id ) { if( get_post_type( $post_id ) == 'alternatywy' ) { $title = $title . „alternatywa”; } return $tytuł; } add_filter( 'tytuł', 'tytuł_alternatywny' ); add_filter( 'pobierz_tytuł', 'alternatywny_tytuł' );


title: Załaduj posty do paska bocznego i podziel się na strony za pomocą ajax?

text:
Czy można stronicować lub załadować następne/poprzednie posty na pasku bocznym bez ingerowania w całą paginację strony? Takich jak AJAX? W tej chwili pytam o niestandardowe posty typu post, aby załadować ostatnie 2 posty i muszę załadować następny lub poprzedni w jego miejsce. Jakieś pomysły? * * * EDIT: Próbowałem sugestii Bainternet, ale nadal nie mogę go uruchomić. Umieściłem to na moim pasku bocznym dokładnie tak, jak pokazano: <?php $args = array('posts_per_page' => 1); $sidebar = nowy WP_Query($args); if ( $sidebar->have_posts() ) : while ( $sidebar->have_posts() ) : $sidebar->the_post(); ?>
 <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?>
 <?php endwhile; endif; ?>   <input type="hidden" name="offset" id="offset" value="1"> <input type=" prześlij" name="więcej" id="więcej" value="Uzyskaj więcej linków">   A to w moich funkcjach: add_action('wp_ajax_nopriv_more_links', 'my_AJAX_more_links_function'); funkcja my_AJAX_more_links_function(){ check_ajax_referer('more_links'); $success_response = nowy WP_Ajax_Response(); $args = array('posts_per_page' => 1 , 'offset' => $_POST['offset']); $sidebar = nowy WP_Query($args); if ( $sidebar->have_posts() ){ while ( $sidebar->have_posts() ) { $sidebar->the_post(); $out .= '
'; $out .= ''.the_title().'
'; } $success_response->add(array( 'what' => 'has', 'data' => array('html' => $out, 'offset' => $_POST['offset']) )); }else{ $out = __('Przepraszam, ale nie więcej!'); $success_response->add(array( 'what' => 'none', 'data' => $out)); } $success_response->wyślij(); Wyjście; } add_action('wp_head','add_scripts_121'); funkcja add_scripts_121() { wp_enqueue_script('wp-ajax-response'); }


title: Czy wtyczka widżetu może / powinna definiować własny obszar widżetów?

text: 1. Czy wtyczka powinna mieć możliwość dodania obszaru widżetu powyżej zawartości_treści? (Bez konieczności zmiany szablonu/motywu.) 2. Jaki byłby najlepszy sposób, aby to zrobić? Wątpliwości: widżety zazwyczaj odbijają się echem na ekranie; przykłady filtrów treści_treści zawsze zwracają $treść. Poniższy kod coś robi, ale wydaje się być wadliwy: testy wykazały, że shortcode nie są analizowane, więc dodałem do_shortcode. function insert_above_content_widget($content) { if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('Powyżej Treści') ): endif; echo do_shortcode($zawartość); } add_filter( 'zawartość', 'wstaw_powyżej_widget_treści' ); Wydaje się, że byłoby to przydatne, ale takie podejście jakoś nie wydaje się właściwe. Czy ktoś widzi jakieś problemy?


title: jak używać shortinit w wordpressie

text: Chcę załadować minimalną ilość zasobów w Wordpress, ponieważ serwer, na którym pracuję, jest bardzo wolny. Próbowałem zdefiniować krótki init w pliku `wp-config`: define('SHORTINIT', true); Ale potem pojawił się ten błąd: Błąd krytyczny: Wywołanie funkcji członkowskiej main() na obiekcie niebędącym obiektem w /somepath/functions.php w wierszu 790 Więc spróbowałem dodać ten wiersz w najwyższej części wtyczki, którą mam praca z: require_once(ABSPATH . 'wp-includes/load.php'); Ale to nie zadziałało. Zamiast tego próbowałem umieścić go w najwyższej części wtyczki: <?php if (! defined( 'ABSPATH') ) exit; /* Nazwa wtyczki: jakaśwtyczka */ define('SHORTINIT', true); Ale otrzymuję następujące informacje: Uwaga: Stała SHORTINIT jest już zdefiniowana w /someplugin/someplugin.php w wierszu 9. Jakieś pomysły, jak zrobić to poprawnie?


title: Czy dbDelta usuwa również kolumny?

text: Utworzyłem tabelę za pomocą funkcji dbDelta, a następnie usunąłem kilka kolumn i dodałem kilka. Nowe kolumny zostały utworzone, ale stare kolumny nie zostały usunięte z tabeli. Czy istnieje inny sposób mam usuwać kolumny z tabeli?


title: Tłumaczenie językowe na świeżej angielskiej instalacji

text: Muszę przetłumaczyć angielską instalację wordpress na język włoski, ale chciałbym zachować oba języki en / angielski, aby użytkownik mógł wybrać, który ma włączyć od strony frontendu. Potrzebuję włoskiego jako domyślnego języka i angielskiego do wyboru, chciałbym wiedzieć, czy jest to możliwe bez ponownej instalacji wp i jak to zrobić? Czy muszę ręcznie przetłumaczyć jakiś plik? czy jakieś rozszerzenie wtyczki może mi pomóc? Zdecydowanie poproszę o język włoski dla Backend i Eng/Ita (wybierz) dla frontendu. Zainstalowałem motyw stron trzecich, nie wiem, czy może to pomóc w tłumaczeniu :/ Wszelkie sugestie są doceniane, dzięki.


title: Dostęp do podkatalogów w instalacji WordPress

text: Mam skrypty, które znajdują się w podkatalogu mojego folderu instalacyjnego WordPressa. Znajdują się na tym samym poziomie co foldery /wp-content/ i /wp-admin/. Używam ich do przetwarzania formularzy, ale mam witrynę ustawioną na permalinki ze strukturą postu (http://www.example.com/testcategory/testpost). Zakładam, że nie mogę uzyskać dostępu do plików skryptów (otrzymuję błąd 404; przykład byłby taki: http://www.example.com/quform/test.php), ponieważ przepisywanie .htaccess przeszkadza i myśli, że to strona w witrynie, ale nie ma dla niej treści. Próbowałem umieścić pusty plik .htaccess w folderze quform, a następnie próbowałem edytować kod, aby wyłączyć silnik ReWrite, ale żaden z nich nie zadziałał. Szukałem, ale żadne z pytań tutaj, choć podobne, nie dostarczyło odpowiedzi na to, czego szukam. Czy istnieje sposób na utworzenie wyjątku dla niektórych podkatalogów w pliku .htaccess? ## EDYCJA Oto moje informacje o .htaccess # BEGIN WordPress <IfModule mod_suphp.c> suPHP_ConfigPath /home/millerme/etc/ </IfModule> <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L ] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # KONIEC WordPress ## EDIT Udało mi się to naprawić, ale nadal nie wiem, co było tego przyczyną. Zasadniczo, jeśli usunąłem folder z plikiem, który był już na serwerze, a następnie odtworzyłem go dokładnie tak, jak był, został rozpoznany przez serwer i mogłem uzyskać do niego dostęp. Oryginalne pliki miały uprawnienia do plików 775, więc nie była to kwestia nieprawidłowego ustawienia uprawnień do plików. Ta witryna została przeniesiona z innego serwera, na którym pobrałem pliki i przeniosłem je, więc zakładam, że coś się dzieje podczas tego procesu. Jakieś pomysły na to, co mogło spowodować problem?


title: Jak prawidłowo wyeksportować / zaimportować bazę danych WordPress (MySQL) za pomocą wiersza poleceń?

text: Normalnie baza danych MySQL może być eksportowana i importowana za pomocą tych prostych poleceń SSH: **Export:** mysqldump -u NAZWA_UŻYTKOWNIKA -p NAZWA_BAZY_DANYCH > nazwa_pliku.sql **Importuj:** mysql -u NAZWA_UŻYTKOWNIKA -p NAZWA_BAZY_DANYCH < nazwa_pliku.sql Ale jeśli chodzi o WordPress, to nie jest takie proste. Z tego, co widzę, należy wspomnieć o dodatkowych parametrach, takich jak na przykład `\--add-drop-table`. Kodeks WordPressa zawiera pewne informacje, ale wygląda na zagracony i niewystarczająco jasny. Byłoby wspaniale, gdyby ktoś, kto korzysta z wiersza poleceń, mógł udostępnić odpowiednie polecenia do eksportu i importu bazy danych WordPress, z pewnym wyjaśnieniem (wszelkich nowych użytych parametrów). Ponadto, czy są jakieś powody, dla których nie byłoby wskazane używanie wiersza poleceń podczas pracy z bazą danych, a zamiast tego korzystanie z GUI, takiego jak phpMyAdmin?


title: Utwórz użytkownika za pomocą JSON API

text: Używam interfejsu API JSON do pobierania listy postów z mojej aplikacji. Muszę utworzyć użytkownika (Zarejestruj nowego użytkownika) z aplikacji. Czy mogę wiedzieć, jak dodać nową funkcję do Wordpress JSON-API? Pozdrawiam Alex


title: Jak wyświetlić wszystkie posty na jednej stronie, a następnie otworzyć je w oknie modalnym?

text: Pracuję z motywem WordPress Bootstrap. Chcę wyświetlić całą listę postów z wyróżnionym obrazem na mojej stronie, a po kliknięciu tego obrazu chcę otworzyć opis posta w oknie modalnym. Jak mogę to osiągnąć? Mam post-kategorię o nazwie marmur. Chcę pokazać wszystkie posty związane z tą kategorią na jednej stronie i otworzyć je w oknie modalnym. Myślę, że powinienem użyć tej pętli, ale nie mogę tego zrobić. <?php query_posts('posts_per_page=10'); ?> <?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?> <a href="<?php the_permalink() ?>" rel="zakładka" title="Stały link do <?php the_title_attribute(); ?>"><?php the_title(); ?> <?php endwhile; ?> <?php endif; ?>


title: wp_list_bookmarks(); niczego nie wyświetla

text:
Co dziwne, nie mogę uzyskać funkcji `wp_list_bookmarks();` (wewnątrz szablonu strony) do renderowania czegokolwiek. Mam nadzieję, że ktoś wskaże coś oczywistego! Twoje zdrowie. Oto mój kod: <?php /* Nazwa szablonu: Blogroll */ ?> <?php get_header(); ?> <?php while ( have_posts() ): the_post(); ?>
<?php the_title(); ?>

 <?php the_content(); ?> <?php wp_list_bookmarks(); ?>
 <?php endwhile; ?> <?php get_footer(); ?>


title: Wartość Meta Box nie jest zapisywana/wypełniana?

text: Ok, mam teraz konfigurację metabox, która wypełnia wszystkie zarejestrowane typy postów. Ta część działa dobrze. Ale po wybraniu opcji z listy rozwijanej i zapisaniu / aktualizacji wartość pokazuje pierwszy wybór po ponownym załadowaniu strony. Ponadto, czy ktoś wie, czy get_post_types może wykluczać określone typy postów? Oto mój kod: add_action( 'add_meta_boxes', 'cd_meta_box_add' ); function cd_meta_box_add() { add_meta_box( 'my-meta-box-id', 'Mój pierwszy Meta Box', 'cd_meta_box_cb', 'page', 'normal', 'high' ); } function cd_meta_box_cb( $post ) { $values = get_post_custom( $post->ID ); $selected = isset( $values['my_meta_box_select'] ) ? esc_attr( $wartości['my_meta_box_select'][0] ) : ''; wp_nonce_field( 'my_meta_box_nonce', 'meta_box_nonce' ); ?> <p> <label for="my_meta_box_select">Typ posta: </label> <select name="my_meta_box_select" id="my_meta_box_select"> <?php $post_types=get_post_types('', 'objects'); foreach ($post_types jako $post_type): ?> <wartość opcji="<?php echo esc_attr($post_type->nazwa);?>" <?php selected( $selected, '$post_type->nazwa' ); ?>><?php echo esc_html($post_type->etykieta); wybrany ?></option> <?php endforeach; ?> </select> </p> <?php } add_action( 'save_post', 'cd_meta_box_save' ); function cd_meta_box_save( $post_id ) { // Zwolnij kaucję jeśli robimy autozapis if( define( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return; // jeśli nie ma naszej jednorazówki lub nie możemy jej zweryfikować, wpłać kaucję if( !isset( $_POST['meta_box_nonce'] ) || !wp_verify_nonce( $_POST['meta_box_nonce'], 'my_meta_box_nonce' )) zwrócić; // jeśli nasz obecny użytkownik nie może edytować tego posta, kaucja if( !current_user_can( 'edit_post', $post_id )) return; // teraz możemy faktycznie zapisać dane $allowed = array( 'a' => array( // zezwól na tagi 'href' => array() // a te zakotwiczone mogą mieć tylko atrybut href ) ); // Prawdopodobnie dobrym pomysłem jest upewnienie się, że dane są ustawione if( isset( $_POST['my_meta_box_select'] ) ) update_post_meta( $post_id, 'my_meta_box_select', esc_attr( $_POST['my_meta_box_select']) ); }


title: Zezwalaj na różne tagi <span> w tytułach widżetów

text: Jak sprawić, by tytuły widżetów zezwalały na HTML? Chcę dodać ikony z iconfont do tytułów, takich jak Tytuł widżetu Wypróbowałem następujące, ale to w ogóle nie działa... function html_widget_title( $title) { $title = str_replace( '[', '<', $title ); $title = str_replace( '[/', '</', $tytuł ); $title = str_replace('s]', 'span>', $title ); zwróć $tytuł; } add_filter( 'widget_title', 'html_widget_title' );


title: WP-Snap zbyt wolny (spowodowany przez WP_Query?)

text: Mam stronę internetową z 10 000 postów... WP Snap sortuje posty alfabetycznie i wydaje je za pomocą WP_Query, ale jest powolny jak diabli, co jest bardzo frustrujące. Moje pytanie brzmiałoby: co mogę z tym zrobić? Czy jest jakaś alternatywa dla wp_query? A może przyczyna tego problemu jest inna?


title: Utwórz skróty klawiaturowe dla trybu HTML

text: Zawsze używam edytora HTML do pisania wszystkich moich postów. Dlatego zawsze ręcznie wpisywałem wszystkie tagi, takie jak „`<strong></strong>`” dla pogrubienia... „`<i></i>”` dla kursywy itp. Nie chcę używać Tryb wizualny, ponieważ używam wielu wtyczek, dla których muszę wpisywać skróty i wiele innych osobistych powodów, aby używać tylko trybu HTML. Zastanawiałem się, czy mogę utworzyć skróty do wszystkich operacji (w edytorze HTML), które w przeciwnym razie są obecne w trybie wizualnym.


title: Odstępy we fragmencie

text: Próbuję dowiedzieć się, jak mogę kontrolować sposób wyświetlania fragmentu za pomocą PHP. Jak uzyskać to, aby renderować odstępy html w poście, zamiast wyświetlać tylko jeden duży akapit. Mam nadzieję, że to ma sens. Dam ci przykład. Więc mój klient ma post syndykowany i na górze każdego posta chce dołączyć hiperłącze do rzeczywistego autora. Następnie musi być przerwana linia, a następnie rzeczywisty fragment treści pod nim. Obecnie fragment pokazuje po prostu wszystko jako jeden akapit. Udało mi się wprowadzić kod php, aby wyrenderować hiperłącze we fragmencie, ale utknąłem, jak nie dopuścić do usunięcia odstępów w fragmencie.


title: Wstaw do wp_footer, jeśli widżet znajduje się na pasku bocznym

text: Próbuję wstawić kod do wp_footer, niezależnie od tego, czy widżet jest obecny na pasku bocznym. Jak uniknąć niepotrzebnego kodu w stopce? Dodaj kod tylko wtedy, gdy widżet jest obecny na pasku bocznym. class CustomWidget extends WP_Widget { function CustomWidget() { add_action( 'wp_footer', array($this,'footer'), 10, 1 ); } function widget($args, $instance) { } function update( $new_instance, $old_instance ) {} function form($instance) {} function footer { $all_widgets = $this->get_settings(); foreach ($all_widgets as $key => $wpdcjqverticalmegamenu){ $widget_id = $this->id_base . '-' . $klucz; if(is_active_widget(false, $widget_id, $this->id_base)){ } } }


title: Theme Customizer przesyła problem z rozmiarem obrazu

text: Wprowadziłem opcję umożliwiającą użytkownikom przesyłanie niestandardowego obrazu tła do ich witryny za pomocą sekcji Dostosuj motyw w wordpressie, ale mam problemy z przesyłaniem dużych (w pikselach) obrazów. Obraz 900px i 200kb działa dobrze, ale kiedy próbuję przesłać coś o szerokości 4000px, po prostu tego nie zrobię, nawet jeśli obraz jest mały (38kb) To wydaje mi się nie ma sensu, mógłbym to zrozumieć, jeśli tam był limit rozmiaru na dysku, ale nie rozumiem, jak rozmiar w pikselach może mieć znaczenie! To jest mój kod w przypadku: // Ten bit dodaje niestandardowy obraz do tła $wp_customize->add_section( 'background_image_section' , array( 'title' => 'Background Image', 'priority' => 30, 'description' => 'Prześlij obraz tła, aby zastąpić domyślne tło', ) ); $wp_customize->add_setting( 'background_image', array( 'default' => '', 'transport' => 'postMessage') ); $wp_customize->add_control( nowe WP_Customize_Image_Control( $wp_customize, 'background_image', array( 'label' => 'Obraz tła', 'section' => 'background_image_section', 'settings' => 'background_image', )) ); Używam wersji 3.6.1 na tej stronie


title: importowanie użytkowników, w których hasło jest podane jako md5 + dużo metadanych

text: Mam arkusz kalkulacyjny, który użytkownicy otrzymali do zaimportowania do nowej witryny, którą zbudowałem. Otrzymałem hasło w postaci skrótu MD5. Podejrzewam, że jeśli wstawię to w pole hasła w bazie danych, ponieważ jest to MD5, nadal będzie pasowało do hasła, gdy użytkownik spróbuje zalogować się w nowym systemie. Czy to prawidłowe założenie? Mam też dużą ilość metadanych dla każdego użytkownika, które należy wstawić. Ponieważ chcę wstawić ciąg md5, a nie tekst hasła i dodatkowe niestandardowe pola meta, nie sądzę, że mogę użyć wp_insert_user. Czy ktoś ma doświadczenie z tego typu rzeczami? Myślę, że zrobię coś bezpośrednio w mysql, zamiast zhakować wtyczkę WP, jednak wszelkie sugestie będą mile widziane.


title: Zapytanie o wpisy o wydarzeniach według daty

text: Próbuję zapytać o niestandardowy typ wpisu (wydarzenie) według bieżącej daty oraz daty rozpoczęcia i zakończenia wydarzenia. Chciałbym trzy opcje: aktualna, nadchodząca i przeszła. To jest kod, którego używam, ale nie działa poprawnie. $bieżący = czas(); switch ($print_type) { case 'current': $meta_quer_args = array( 'relation' => 'AND', array( 'key' => 'event-start-date', 'value' => $current, 'compare ' => '<=', ), array( 'key' => 'data-końcowa-zdarzenia', 'wartość' => $bieżąca, 'porównaj' => '>=' ) ); przerwanie; case 'nadchodzące': $meta_quer_args = array( 'relation' => 'AND', array( 'key' => 'event-start-date', 'value' => date(), 'compare' => '> =', ) ); przerwanie; case 'przeszłość': $meta_quer_args = array( 'relation' => 'AND', array( 'key' => 'event-start-date', 'value' => date(), 'compare' => '< ', ) ); przerwanie; default: $meta_quer_args = array( 'relation' => 'AND', array( 'key' => 'data-końcowa-zdarzenia', 'value' => date(), 'compare' => '>=', ) ); przerwanie; } $query_args = array( 'post_type' => 'exhibitions', 'posts_per_page' => -1, 'post_status' => 'publish', 'ignore_sticky_posts' => true, 'meta_key' => 'data-początkowa-zdarzenia ', 'orderby' => 'meta_value_num', 'order' => 'DESC', 'meta_query' => $meta_quer_args ); $selected_events = nowe WP_Query( $query_args );


title: Jak mogę utworzyć link bezpośredni z dwiema kategoriami, z kolejnością opartą na kategorii nadrzędnej?

text: Zasadniczo chciałbym utworzyć link bezpośredni do kategorii, taki jak example.com/books/adventure, bez konieczności przekształcania przygody w kategorię podrzędną, ponieważ będzie ona miała zastosowanie również do innych kategorii. Tak więc wynik końcowy to: example.com/książki/przygoda example.com/filmy/przygoda example.com/zabawki/przygoda Kolejność jest oparta na dwóch kategoriach nadrzędnych, gdzie „przedmioty” są na pierwszym miejscu, a „gatunek” na drugim . Możesz także przeszukiwać kategorie osobno, aby zobaczyć wszystkie książki lub wszystkie elementy przygodowe. W jaki sposób mogę to zrobić? Dziękuję!


title: niestandardowy typ wpisu nadchodzący wpis i przeszły wpis

text:
Chcę pobrać w moim **archive-CPT.php** najnowszy nadchodzący post (post ze statusem `przyszłość`) i poprzedni post (najstarszy opublikowany post). Tak wygląda moje archiwum-CPT.php: <?php get_header(); ?>
 <?php if($layout == 'left_side'){ ?>  <?php dynamic_sidebar ( 'pasek_lewy'); ?>  <?php } ?> <?php if($layout == 'both_side'){ ?>  <?php dynamic_sidebar( 'sidebar_left ' ); ?>  <?php } ?>
 <?php if( have_posts() ){ // normalny układ bloga $x = 1 ; while ( have_posts() ){ the_post(); if ( 0 === (int) $post->post_parent ) { get_template_part( 'inc/post-format/content-debate'); } $x++; } } else{ ?>

<?php _e('Nie znaleziono posta', 'skrzynka nadawcza'); ?>

<?php _e('Nie mogliśmy znaleźć tego posta, którego szukasz.', 'skrzynka nadawcza'); ?>

<?php _e('Spróbuj wyszukać', 'Skrzynka nadawcza') ?>
 <?php echo get_search_form(); ?> <?php get_template_part( 'inc/recent-posts' ); ?>

 <?php } kriesi_pagination(); ?>

NADCHODZĄCE DEBATY
 <?php $query = new WP_Query( array( 'post_status ' => 'przyszłość', 'orderby' => 'data', 'zamówienie' => 'ASC', 'posts_per_page' => 1 ) ); if( $query->have_posts() ) { while( $query->have_posts() ) { $query->the_post(); echo tytuł_(); } } ?>

 <?php if($layout == 'right_side'){ ?>  <?php dynamic_sidebar( 'sidebar_right' ); ?>  <?php } ?> <?php if($layout == 'both_side'){ ?>  <?php dynamic_sidebar( 'sidebar_right ' ); ?>  <?php } ?>
 a ten kod pochodzi z **functions.php**, który służy do pobierania najnowszego opublikowanego posta dla głównego loop : function wpse124228_alter_ppp_order_for_mycpt( $query ) { if ( ! $query->is_main_query() || is_admin() ) return; if ( is_post_type_archive( 'debata' )) { //Wyświetl tylko 1 post w archiwum mycpt $query->set( 'posts_per_page', 1 ); //Najnowsze/aktualne $query->set( 'orderby', 'date' ); $query->set( 'zamówienie', 'DESC' ); } } add_action( 'pre_get_posts', 'wpse124228_alter_ppp_order_for_mycpt' ); Jakieś sugestie, w jaki sposób mogę pobrać nadchodzący post, tytuły ostatniego posta i miniatury? Eric Holmes Edit: naprawiono literówkę w kodzie.


title: Wtyczki i role użytkowników

text: Wiele wtyczek pozwala tylko administratorom na edycję i chcę, aby inne role również je edytowały. Mam witrynę wp z systemem WooCommerce, która ma rolę użytkownika „menedżer sklepu” i mam wtyczkę, którą użytkownicy muszą najpierw zatwierdzić, zanim będą mogli się zalogować. Ale „menedżer sklepu” nie może edytować tej wtyczki, otrzymuje „Nie masz wystarczających uprawnień, aby uzyskać dostęp do tej strony”. Jak zmienić uprawnienia wtyczek?


title: Zapytanie ustawione przy użyciu tax_query z relacją 'OR' modyfikuje obiekt kategorii?

text: _( **Aktualizacja:** Zobacz zmiany znacznie poniżej.)_ Kod: function itsme_better_editions( $query ) { if ( $query->is_category() && $query->is_main_query() ) { $query-> set( 'post_type', array( 'post' ) ); $query->set( 'tax_query', array( 'relation' => 'OR', array( 'taxonomy' => 'category', 'field' => 'slug', 'terms' => 'intl', 'operator' => 'W' ) ) ); } return $zapytanie; } add_filter( 'pre_get_posts', 'itsme_better_editions' ); Używam tej funkcji do wyświetlania postów przypisanych do kategorii „Międzynarodowe (intl)” we wszystkich kategoriach, tj. we wszystkich archiwach kategorii. (W moim przypadku kategorie reprezentują _Edycje_ tak samo, jak na przykład w witrynie z wiadomościami.) Problem polega na tym, że przy włączonej funkcji wydaje się, że termin obiekt wszystkich archiwów zostaje ustawiony na „Międzynarodowy (intl)”, czy to archiwum kategorii, archiwum tagów, archiwum niestandardowych taksonomii itp. Tak więc, **na przykład** , jeśli odwiedzę archiwum kategorii 'UK (UK)', `<?php single_cat_title(); ?>` wyświetla 'International' zamiast 'UK'. ( **UWAGA:** `single_cat_title()` to tylko przykład i tylko jeden z problemów spowodowanych zmianą obiektu term.) Dlaczego tak się dzieje? (Pomimo ustawienia `'relation' => 'OR'`.) Co powinienem zrobić, aby to naprawić? **PS:** O dziwo to kiedyś działało (bardzo pozytywnie) i nie wiem, w której wersji WordPressa to się zepsuło. **EDYTUJ:** Problem, który właśnie sobie uświadomiłem, wydaje się polegać na tym, że `$tax_query = $query->get( 'tax_query' );` jest pusta lub nie jest tablicą. Nie jestem do końca pewien, dlaczego tak się dzieje i co jest nie tak z moim kodem. **Pytanie pokrewne:** Kiedy/dlaczego `'$query->get( 'tax_query' );'` zwraca puste?


title: Problem z wynikami wyszukiwania w WP (niewyświetlanie pełnych postów)

text:
W tej chwili w wynikach wyszukiwania pojawia się post, ale bez kategorii (chyba są ukryte) i z uszkodzonymi linkami z postów. Mam w tym temacie fragment kodu, który moim zdaniem jest za to odpowiedzialny. Oto kod: <?php $post_format = get_post_format() lub $post_format = 'default'; ?> <?php if (get_post_type() != 'post' || is_single() || !Website::getThemeOption("format_post/{$post_format}/content/hide")): ?>
<?php if (is_search()) { $sq = preg_quote(get_search_query(), '/'); printf('
%s
', preg_replace("/\b{$sq}\b/i", '\0', get_the_content() )); } else { if (has_excerpt() && !is_singular()) { the_excerpt(); } else { the_content(Website::getThemeOption('post/readmore')); } if (is_singular()) { $pages = wp_link_pages(array( 'before' => '', 'after' => '', 'echo' => false )); if ($pages) { printf('
%s
', preg_replace('/ ([0-9]+)/', ' \ 1', $stron)); } } } ?>
 <?php endif; ?> Chcę wyświetlić w wynikach wyszukiwania cały post bez zmian, tak jak on, bez żadnych ograniczeń. Ten kod może być problemem, czy coś innego? Ten motyw nie posiada `category.php` ani `search.php`, a ten kod pochodzi z `content.php`. Czy da się to naprawić (może za pomocą wtyczki)?


title: niestandardowy typ postu dla niestandardowej tabeli

text: Od czego zacząć, jeśli chcę, aby za każdym razem, gdy dane zostały przesłane z formularza na stronie głównej dla niezalogowanych użytkowników, tworzony był niestandardowy post? Mam skrypt skonfigurowany do wysyłania danych do tabeli niestandardowej i pobierania danych. Chciałbym umieścić funkcję w warunku, który utworzy post z przesłanych danych. ponownie, ograniczeniami byłby formularz na pierwszej stronie lub dowolna strona dostępna dla użytkowników dla niezalogowanych użytkowników.


title: Zapytanie o niestandardową taksonomię dla kategorii zawierającej dzieci

text: Używam wtyczki Events Manager, która tworzy niestandardowy typ wpisu „event” i niestandardową taksonomię o nazwie „event-categories”. Mam kategorię 'kursy', która ma ID 43. Posiadam również kilka kategorii dla dzieci w ramach kursów, m.in. „nauka”, „angielski” itp. Tworzę wyszukiwanie z autouzupełnianiem i muszę wyszukiwać kursy na podstawie wyszukiwanego hasła, ale tylko w postach, które pojawiają się w typie wpisu wydarzenia, taksonomii „kategorii wydarzeń” i są oznaczone z kategorią „kursy” lub którymkolwiek z jej dzieci. Oto co mam do tej pory: global $wpdb, $table_prefix; $em_suggestions = $wpdb->get_results(" SELECT post_name jako wartość, post_title jako etykieta FROM {$table_prefix}posts WHERE post_type = 'event' AND post_status = 'publish' AND post_title LIKE '%$term%' ORDER BY post_title ASC LIMIT 0, 10 "); Po prostu staram się zastosować do niego filtr taksonomii.


title: Jak sprawdzić, czy arkusz stylów jest już załadowany?

text: Zastanawiałem się, jak sprawdzić, czy plik css jest już załadowany. Na przykład mam w swoim motywie Font Awesome `font-awesome.min.css` i mam wtyczkę, która również korzysta z Font Awesome. Tak więc skończyło się na załadowaniu dwóch arkuszy stylów `font-awesome.min.css`. Czy istnieje sposób na sprawdzenie, czy arkusz CSS jest już załadowany, zanim go dodam do kolejki.


title: Jak tworzyć i używać niestandardowych haków

text: Jestem nowicjuszem w wordpressie. Właśnie stworzyłem wtyczkę kontaktową do mojego własnego projektu. W mojej wtyczce wykorzystałem wiele funkcji, możesz rzucić okiem na mój kod. Chcę, aby ta wtyczka była oparta na niestandardowych hookach, a nie tylko na funkcjach PHP. Nie chcę prostych prostych funkcji php. Czy możesz mi zasugerować, gdzie mogę dodać niestandardowe haki i jak z nich korzystać? Wiem, jak dodawać niestandardowe haki i używać ich Odniosłem się do tego dokumentu .. więc jestem jasny z haczykami (jak go tworzyć i używać)


title: Modyfikujesz znaczniki w widżecie Chmura tagów?

text: Muszę zmodyfikować znaczniki widżetu chmury tagów. Czy ktoś może mi powiedzieć, jak to zrobić bez modyfikowania żadnego z plików poza katalogiem motywu, aby moje zmiany nie zostały nadpisane podczas aktualizacji WordPressa?


title: niestandardowe typy postów, pre_get_posts, wp_list_categories

text: Tak więc wiem, że mogę sprawić, że to zadziała w sposób okrężny, ale myślę, że przede wszystkim robię coś źle. Zasadniczo sytuacja wygląda tak. Mam niestandardowy typ posta, którego posty - w zależności od pewnych warunków (a właściwie czasu) powinny lub nie powinny się pokazywać. Ten może działać całkiem ładnie w ten sposób (nieco skrócony, aby był mniej bałaganiarski) add_action( 'pre_get_posts', array( $this, 'my_tm_pre_get_posts')); function my_tm_pre_get_posts($query){ if (isset($query->query_vars['post_type']) && $query->query_vars['post_type']=='my_post_type') { $array2exclude=array(1, 2, 3 ); /**warunkowa tablica zależna od pory dnia itp.**/ $query->set( 'post__not_in', $array2exclude ); } return $zapytanie; } mam jednak również nawigację po kategoriach tego typu postu: <?php // some_args ..... 'hide_empty' => 1, 'show_count' => 1, // trochę więcej args... echo wp_list_categories ($args ); ?> który wyświetla wszystkie właściwe kategorie tego niestandardowego typu postu / taksonomii. Na razie w porządku. Jeśli jednak skończę wykluczając wszystkie posty z określonej kategorii w my_tm_pre_get_posts, spodziewałbym się również (cóż, mam nadzieję - do tego właśnie się staram), że ta konkretna kategoria w wp_list_categories również zostanie wykluczona lub, jeśli liczba postów jest po prostu zmniejszona, ale >0 , licznik zostanie również odpowiednio odzwierciedlony w show_count... Krótko mówiąc, problem, którego nie mogę rozgryźć, to sposób, który odzwierciedla wykluczone posty w nawigacji. może to być tylko liczba, a właściwie wykluczenie całej kategorii, jeśli count==0 po akcji pre_get_posts Oczywiście, po otrzymaniu powyższego "$array2exclude" mógłbym również sprawdzić, czy to oznacza, że kategoria byłaby pusta, a następnie po prostu wykluczyć kategoria z nawigacji. Ale to tak naprawdę nie odnosi się do liczby w nawigacji, ani nie mam poczucia, że jest to właściwy lub najbardziej elegancki sposób na to... Każda pomoc/wskazówki/wskazówki są mile widziane. Chętnie dostarczymy więcej kodu, jeśli jest to wymagane dla kursu. po prostu staram się zachować prostotę


title: Jak zastąpić nagłówek Message-ID funkcji wp_mail?

text: Mam niestandardową funkcję powiadamiania dla naszego edytora komentarzy, który woli, aby wszystkie komentarze z jednego artykułu były połączone razem w swoim kliencie poczty e-mail. Aby to osiągnąć, tworzę niestandardowy identyfikator wiadomości dla pierwszego komentarza do artykułu, a następnie ustawiam go jako odpowiedź w odpowiedzi na przyszłe powiadomienia o komentarzach. W pewnym stopniu to działa - widzę dodatkowe nagłówki w kliencie poczty - jednak pierwsza wiadomość jest tworzona z DWOMA Message-ID. Innymi słowy, ten, który przekazałem do nagłówków, NIE zastępuje tego, który Wordpress generuje automatycznie. Dlatego gwintowanie nie działa. Czy to błąd w Wordpressie? Nie chcę uciekać się do polowania na rzeczywistą funkcję WP_mail i edytowania podstawowego kodu; i nie jestem pewien, czy to w ogóle zadziała. Czy jest to coś bardziej podstawowego z funkcją PHP Mail, której być może nie mogę zmienić? $messageIDtoCreate = $post->ID.".".time(); // identyfikator posta i aktualny znacznik czasu add_post_meta( $post->ID, 'messageID', $messageIDtoCreate); // dodaj do nagłówków wiadomości e-mail $message_headers .= "Identyfikator wiadomości: <".$messageIDtoCreate."@test.com>\n"; Z góry dziękuję.


title: Multisite: jak zdefiniować i ograniczyć niestandardowy typ postu do określonych witryn?

text: Mam 2 witryny w sieci wielostanowiskowej: A) Primary.com B) Secondary.com Witryna główna ma niestandardowy typ ogłoszenia o nazwie „primary_site_employees”. Nie chcę, aby witryna dodatkowa miała dostęp do niestandardowego typu posta „primary_site_employees”. (Pracownicy drugorzędni nie pracują w Podstawowym). Jestem przygotowany do utworzenia nowego niestandardowego typu wpisu o nazwie „secondary_site_employees”. Jak mogę sprawić, by niestandardowe typy postów były wyświetlane tylko w określonej witrynie? Z góry dziękuję!


title: Łączenie niestandardowego typu postu i kategorii postów

text:
Jak mogę wysłać zapytanie do wszystkich postów z niestandardowego typu postów („wideo”) lub z kategorii postów („wideo”) w pętli? Udało mi się stworzyć zapytanie, które łączy posty z niestandardowego typu postu i zwykłe posty przy użyciu poniższego kodu, ale mam problemy z osiągnięciem tego samego z niestandardowym typem postu i kategorią postów. <?php $args = array_merge( $wp_query->zapytanie, array( 'post_type' => array( 'post', 'wideo', ) ) ); zapytanie_posty( $args ); ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> Każda pomoc byłaby mile widziana! Oto jak wyglądają moje slajdy: if($query->have_posts()){ while ( $query->have_posts() ) { $query->the_post(); $carousel_slide = '
 <a href="<?php the_permalink(); ?>">
<?php the_post_thumbnail('kafelek-mały-kciuk'); ?>

Wideo

 <?php the_titlesmall('', '...', prawda, 55); ?>

'; $found_posts[] = $post->ID; $slajdy[] = $karuzela_slajd; } wp_reset_postdata(); } Po pierwsze, otrzymuję `Błąd analizy: błąd składni, nieoczekiwany T_STRING` na `<?php the_post_thumbnail('tile-small-thumb'); ?>` oraz `Błąd analizy: błąd składni, nieoczekiwany T_CONSTANT_ENCAPSED_STRING` na `<h5><?php the_titlesmall('', '...', true, 55); ?></h5>`. Usunięcie ich ładuje stronę dobrze, ale nie renderuje linków jako linków, ale jako `<?php the_permalink(); ?>`. Jeśli po prostu robię wszystko źle, daj mi znać, a zamknę to pytanie. Jeszcze raz dziękuję za poświęcony czas.


title: Wordpress wielu ról użytkowników uzyskujących dostęp do swoich informacji w jednej witrynie?

text: Zamierzam użyć Wordpressa do weryfikacji koncepcji tworzonej przeze mnie aplikacji SaaS w chmurze. Moje badania nad wieloma dzierżawcami i Wordpress dają jedynie wgląd w wiele witryn współdzielących ten sam back-end, jednak chciałbym mieć jedną witrynę, ale sekcja administracyjna powinna mieć różne role użytkownika, które mogą uzyskać dostęp tylko do odpowiedniej zawartości i pulpitu nawigacyjnego zarządzać i/lub wysyłać żądania dotyczące określonych danych. Deska rozdzielcza będzie inna dla 3 ról użytkowników, aby mogli skutecznie realizować pożądane funkcje. Czy w jakikolwiek sposób mogę stworzyć nową rolę użytkownika i przypisać powyższe uprawnienia do określonych uprawnień (np. dostawca, agent, organizator wycieczek)?


title: Niestandardowe zapytanie wyszukiwania – uwzględnij tylko niestandardowe pola i tytuł

text: Mam niestandardowy typ posta i potrzebuję również niestandardowego wyszukiwania. Chcę, aby tytuł posta i dwa niestandardowe pola były indeksowane/odpytywane. Znalazłem rozwiązania tylko dla tytułu i dla pól niestandardowych, ale nie dla obu, więc spróbowałem połączyć. Dlaczego to nie działa? funkcja custom_search ( $ search, & $ wp_query ) { global $ wpdb; if ( empty( $search ) ) return $szukaj; // pomiń przetwarzanie - brak wyszukiwanego terminu w zapytaniu $q = $wp_query->query_vars; $n = ! pusty( $q['dokładny'] ) ? '' : '%'; $search = $searchand = ''; foreach ( (tablica) $q['search_terms'] as $term ) { $term = esc_sql( like_escape( $term ) ); $search .= "{$searchand}($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')"; $searchand = ' AND '; } $searchand = ' LUB '; foreach ( (tablica) $q['search_terms'] as $term ) { $term = esc_sql( like_escape( $term ) ); $search .= "{$searchand}(($wpdb->m.meta_key = 'wpcf-kurzbeschreibung') AND (m.meta_value LIKE '{$n}{$term}{$n}'))"; $searchand = ' AND '; } if ( ! empty( $search )) { $search = " AND ({$search}) "; if ( ! is_user_logged_in() ) $search .= " AND ($wpdb->posts.post_password = '') "; } return $szukaj; } add_filter( 'posts_search', 'custom_search', 500, 2 );


title: Utwórz nowy adres URL administratora dla niestandardowego typu postu

text: Mam niestandardowy typ posta o nazwie newsletter. Po utworzeniu biuletynu chcę utworzyć link do pobrania biuletynu z sekcji administratora (typ postu biuletynu nie jest dostępny z interfejsu strony wordpress). Po kliknięciu łącza pobierania uruchomi funkcję w mojej wtyczce. Pytanie brzmi, jak zarejestrować adres URL w wordpressie, który zrobi coś takiego? Jestem pewien, że to coś całkiem prostego i po prostu za tym tęsknię.