title: Jak mogę łatwo sprawdzić, czy aktualizacja rdzenia lub wtyczki niczego nie zepsuła?

text: Szukam sposobów, aby aktualizacja WordPressa była dla mnie mniej przerażająca. W swojej karierze stworzyłem około 30 stron firmowych opartych na WP i czuję się za nie trochę odpowiedzialny pod względem bezpieczeństwa. Nawet jeśli klienci nie płacą mi za utrzymanie - klikanie przycisku "aktualizuj" co kilka miesięcy nie powinno być wielkim problemem, prawda? Zawsze jestem oporny na aktualizację z kilku powodów: 1. jeśli coś się zepsuje na stronie podczas aktualizacji, klienci często nie chcą płacić za czas potrzebny na naprawę wszystkich wtyczek. "To zadziałało, dlaczego musiałeś to zmienić?!" Jedyną opcją jest wtedy wycofanie i zablokowanie witryny. 2. jak coś popsuje stronę i nie zauważam to mam przesrane. Wyjaśnienie, dlaczego formularz kontaktowy nie będzie działał przez kilka tygodni po aktualizacji, jest czymś, czego nie chcę robić ponownie. 3. aktualizacje stron firmowych często nie są tak naprawdę obowiązkowe. Większość problemów związanych z bezpieczeństwem dotyczy treści przesyłanych przez użytkowników, interfejsów API ajax i xml-rpc - rzeczy, którymi nie muszę się martwić podczas tworzenia statycznych stron, które mają tylko kilkaset odwiedzin miesięcznie. Strony te mają tendencję do bezczynności, co oczywiście zwiększa ryzyko aktualizacji. Nie mam problemu z aktualizacją witryny, która ma zaledwie 2 miesiące - ale czuję się oporna na aktualizację 2-letniej witryny z wersją przed 3.0 lub nawet przed 2.7. To sprawia, że jest to gra, w której nie mam nic do wygrania, a mogę tylko przegrać. Jakie są twoje sposoby radzenia sobie z tym? Wszelkie sugestie są wysoko cenione i przynoszą korzyści w postaci bezpieczniejszych instalacji WP? :) (dla jasności: mówię tu głównie o małych firmowych stronach internetowych lub prywatnych blogach, gdzie automatyczne testy nie są realistyczną opcją)


title: Wyświetl tytuł według tagów ( mysql )

text: Chcę wyświetlić na osobnej stronie wszystkie tytuły ( z linkiem ) i krótki opis ( pierwsze 30-40 słów z artykułu ) za pomocą określonego tagu . Na przykład używam "SPECIFIC TAG" na wszystkich moich ważnych artykułach i chcę wyeksportować z mysql w oddzielnym tytule strony z linkiem i krótkim opisem przez ten konkretny tag.


title: Wtyczka ACF Jak sprawić, by klient dodał więcej pól w poście?

text: Przykład: utworzyłem pole o nazwie "moje-pole", tam można je dodać na poście, za pomocą przycisku "dodaj kolejny element" jest to, że chcę utworzyć listę z kilkoma elementami, musimy tylko utworzyć kilka pola w ten sposób klient, jak chce dodać. Dalsze wyjaśnienie: utworzyłem pole „Tekst” w „Zaawansowanych polach niestandardowych” na niestandardowy typ wpisu: „taryfa”, pole jest przeznaczone na notatki, przykład tego, jak będzie wyglądać na panelu: Uwagi: 1 - Uwaga 1 | + dodaj jeszcze jedną obserwację Następnie klient kliknął „+ dodaj jeszcze jedną obserwację”, aby automatycznie dodać nowe pole.


title: Zepsute obrazy Gravatara w komentarzach

text: Nie mam pojęcia dlaczego, ale ostatnio wszystkie nowe komentarze na mojej stronie WordPress zepsuły linki do obrazów awatara. Oto strona, która pokazuje problem: http://joshnh.com/2012/10/12/how-does-line-height-actually-work/#comments Masz pomysł, dlaczego tak się dzieje? Nie instalowałem ostatnio żadnych wtyczek, więc dlaczego nagle zaczął grać?


title: register_setting - dziwaczność wywołania zwrotnego walidacji

text: Pracuję nad wtyczką i mam problemy z walidacją danych wejściowych na stronie ustawień. Postaram się jak najkrócej wyjaśnić, co robię w pliku wtyczki: if (is_admin()) { add_action('admin_init', 'register_mysettings'); add_action('admin_menu', 'moje_menu'); } function t1k_twitter_menu() { add_options_page('Moje opcje wtyczek', 'Moja wtyczka', 'manage_options', 'my_plugin', 'my_plugin_options'); } function t1k_twitter_options() { // dołącz mój formularz include 'my_plugin_options.php'; } function register_mysettings() { // opcje białej listy register_setting('my-group', 'setting_1', array($this, 'validate')); register_setting('moja-grupa', 'setting_2', array($this, 'validate')); } function validate($input) { // Tutaj chcę przeprowadzić walidację... } Z różnych przykładów, które widziałem, wygląda na to, że powinienem otrzymać tablicę klucz-wartość jako $input w funkcji validate . To, co faktycznie widzę, to prosty ciąg zawierający zaksięgowaną wartość. Czy źle zrozumiałem, czy moja implementacja jest zła? Opcje zostaną zapisane ok (jeśli usunę moją funkcję walidacji lub po prostu ustawię ją tak, aby zwracała opublikowaną wartość). Dziękuję.


title: Użyć query->set lub utworzyć nowe zapytanie?

text: Piszę pętlę dla wielu typów postów z filtrami meta_key. Filtry to dane wejściowe od odwiedzających. Gdy odwiedzający kliknie link (filtr), przesłany formularz i otrzymam filtr. Teraz, czy powinienem po prostu użyć `$query->set()` do zmiany argumentów zapytania, czy powinienem przesłać nowe zapytanie? Obecnie używam tej funkcji do pobierania argumentów z wejścia i przekazywania ich do wp_query: function get_args($args){ $defaults= array( // niektóre standardowe argumenty zapytań ) $args = wp_parse_args ( $args, $defaults ); wyodrębnij ( $args ); if(!empty($args['filter'])){ switch ($args['type']){ case 'top_voted': $args['post_type'] = 'docs'; $args['meta_key'] = '_vote_total'; $args['zamówienie'] = 'DESC'; $args['orderby']='meta_value_num'; przerwanie; case 'unanswered_questions': $args['post_type] = 'topics'; $args['blabla'] = 'blabla; przerwanie; domyślnie: blabla; przerwanie; } return $args; } W szablonie używam tego: $key = isset( $_POST['filter'] ) ? array_keys($_POST['filtr']) : null; $query_args = get_args(array('user_id'=>$user_id, 'filter'=$key)); $r = nowe WP_Query( $query_args); W powyższym przykładzie myślę, że używam nowego zapytania za każdym razem, gdy zmienia się filtr. Jeśli zapytanie->set() lub inne filtry mogą poprawić wydajność, pomóż mi zrozumieć, jak to zrobić. Dziękuję!


title: Dostosowywanie znaczników treści Widget

text:
Używam bootstrap do tworzenia paneli dla widżetów paska bocznego i mogę ustawić znaczniki kontenera dla widżetu, a także znaczniki dla nagłówka panelu, ale nie mogę podać znaczników dla zawartości panelu. Do tej pory mam to: register_sidebar(array( 'name' => __('Prawy pasek boczny'), 'id' => 'home_right_1', 'before_widget' => '
' , 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

')); Panele ładowania początkowego muszą wyglądać tak:

Nagłówek panelu bez tytułu

 Zawartość panelu

 Jak mogę dodać '
###
' do każdego widżetu?


title: Jak wyszukiwać posty na podstawie współrzędnych lat-lng jako meta postu?

text: Planuję niestandardowy motyw WordPress, w którym niestandardowy typ postu (CPT) będzie miał współrzędną szerokości i długości geograficznej jako wartość meta. Szerokość i długość geograficzna będą wyświetlane jako znacznik na mapie Google. Jak na razie nie mam problemu z pokazywaniem Mapy Google i CPT, ponieważ to Marker. To znaczy, jeśli wysyłam zapytanie do CPT przy użyciu domyślnej kolejności. Problem pojawia się, gdy potrzebuję n CPT, które są najbliżej współrzędnej, niezależnie od tego, czy jest to aktualna pozycja użytkownika, czy lokalizacja kliknięta na mapie. Inną sytuacją jest zapytanie o wszystkie CPT znajdujące się w promieniu x km od współrzędnej. Pytanie brzmi: jak wyszukiwać posty na podstawie wartości szerokości i długości geograficznej zapisanej w meta postu? Nie jestem pewien, jak to zrobić, ale myślę, że wartość szerokości i długości geograficznej należy zapisać w osobnym polu niestandardowym. Z góry dziękuję.


title: Jak uzyskać identyfikator użytkownika aktualnie edytowanego profilu w WP-Admin?

text: Czy istnieje sposób uzyskania identyfikatora użytkownika edytowanego profilu w programie `wp-admin`? Wiem, że jest to w adresie URL, jeśli edytujesz użytkownika, Np.: `./wp-admin/user-edit.php?user_id=427`. Czy zawsze można `$_GET['user_id']` pobrać identyfikator użytkownika, ale co z edycją własnego profilu w `wp-admin`? ID użytkownika nie byłoby w adresie URL. EX `./wp-admin/profile.php` Czy istnieje prosty lub szeroki sposób na pobranie identyfikatora bieżącego profilu użytkownika, który jest edytowany w `wp-admin`?


title: Jak dodać kod śledzenia Google do witryny wordpress.com?

text: Chcę dodać Google Analytics do mojego bezpłatnego bloga wordpress.com. Mam kod śledzenia html, ale nie mogę dowiedzieć się, jak dodać go do mojego bloga z pulpitu nawigacyjnego wordpress.com.


title: wp_nav_menu wewnątrz obiektu -- jak sobie radzić z fallback_cb?

text: Próbuję stworzyć klasę, która pozwoli mi wygenerować menu nawigacyjne. Oto uproszczona wersja tego, czego używam: class PJ_Menu { function make_menu() { $args = array( 'theme_location' => 'location', 'fallback_cb' => array( $this, 'pj_page_menu' ), ); wp_nav_menu ($args ); } function pj_page_menu() { // tu trochę kodu } } new PJ_Menu(); Wydaje mi się, że nie mogę określić, czego potrzebuję w parametrze `fallback_cb`. `array( $this, 'pj_page_menu' );` nie działała, podobnie jak `'self::pj_page_menu'`. Czy brakuje mi czegoś oczywistego, czy nie jest to możliwe?


title: Jak mogę wyświetlić listę kategorii moich postów?

text: Mam kategorię postów o nazwie „Podcasty”, a pod nią jest wiele innych podkategorii. Na stronie zatytułowanej "Kategorie podcastów", chciałbym wymienić wszystkie kategorie w kategorii "Podcasty", jako linki do ich strony kategorii. Jestem całkiem nowy w Wordpress, jaki byłby najlepszy sposób na osiągnięcie tego? Dziękuję Ci bardzo! Uwaga: nie chcę wyświetlać na tej stronie żadnej treści posta, tylko nazwę kategorii jako link. Kiedy wyszukuję w Google, znajduję wiele informacji o tym, jak publikować treści z tych kategorii. AKTUALIZACJA 1: page-podcast-list.php <div id="content"> <?php $cat = get_category_by_slug( 'podcasty' ); $kotid = $kot->ID; ?> <?php wp_list_categories( array( 'child_of' => $catid; ) ); ?> </div><!-- /content --> To nie robi tego, czego się spodziewałem. Wypisuje: Błąd analizy: błąd składni, nieoczekiwane ';', oczekiwanie ')' w /ścieżka/do/strony-podcast-list.php w wierszu 49. Nie jestem w tej chwili pewien, co konkretnie oznacza wiersz 49, ponieważ Używam wbudowanego edytora WordPress, niestety bez numerów wierszy. Nie znam php do zapisu, ale znam podstawowe programowanie.


title: Jak uzyskać identyfikator użytkownika podczas rejestracji i dodać do niestandardowej tabeli?

text: Próbuję uzyskać identyfikator użytkownika podczas rejestracji i automatycznie dodać ten identyfikator do mojej tabeli niestandardowej. Do rejestracji używam wtyczki wp-members. Czy można więc uzyskać identyfikator użytkownika w locie podczas rejestracji i dodać ten identyfikator do innej niestandardowej tabeli za pomocą wtyczki WP-Members. Lub mogę użyć niestandardowej strony rejestracji, jeśli to konieczne. Ale potrzebujesz wskazówek, jak uzyskać identyfikator użytkownika w locie podczas rejestracji. **Proszę o pomoc..**


title: get_post_meta wewnątrz echo

text: Mam poważny problem :) Mam taki kod: <?php global $wp_query; $postid = $wp_query->post->ID; echo get_post_meta($postid, 'provinciadestacada', prawda); ?> I chcę dołączyć tutaj: <?php if ( in_category( '951' )) { echo 'Online'; } else ?> Po innym chcę dostać post_meta "provinciadestacada" Może coś takiego? <?php if ( in_category( '951' )) { echo 'Online. Todas las provincias”; } else echo "global $wp_query; $postid = $wp_query->post->ID; $meta = get_post_meta($postid, 'provinciadestacada', true);" ?>


title: Ścieżka względna Wordpress

text: Mam bloga wielostronnego na 2 języki i chcę go łatwo zmienić. www.example.com/strona/post Chciałbym przełączyć się na www.example.com/english/page/post Mam **get_blog_option(2, 'siteurl')** co zwraca `www.example.com/english /` ale nie mogę znaleźć żadnej funkcji, która zwraca tylko `/page/post/` Mam taką, która zwraca `www.example.com/page/post` ale jak tam umieścić `/english/` wewnątrz Dzięki


title: Czy mogę używać $wpdb dla moich niestandardowych tabel w bazie danych WordPress?

text: Buduję niestandardową aplikację opartą na WordPressie. Mam własne tabele w bazie danych WP. Czy mogę używać $wpdb do pracy z nimi, czy jest to klasa wyłącznie dla tabel związanych z WP? Na przykład, jeśli mam bazę danych, która nadąża za psami i kotami, i tworzę niestandardową tabelę o nazwie zwierzęta (animalid, animal_type itp.). Czy używam $wpdb? Nie wiem, czy „interakcja z bazą danych WordPressa” za pomocą $wpdb jest przeznaczona wyłącznie dla tabel giełdowych, czy nie. EDYCJA: Stworzyłem tabele ręcznie za pomocą MySQL Workbench. Były to tabele powiększone z Microsoft Access. Nie "poinformowałem" WordPressa o ich istnieniu ani nie wiem, czy powinienem.


title: Zapobieganie buforowaniu zawartości tekstowej, ale nie plików CSS i obrazów

text: Jestem programistą front-end i moja wiedza jest ograniczona do strony serwera. Przepraszam, jeśli się mylę w terminologii. Mam bloga Wordpress, na którym piszę wpisy o javascript. Aktualizuję ten sam post o około 12-13 dni. Ale czasami wysyłam aktualizacje codziennie. Po zaktualizowaniu artykułu i opublikowaniu zmian, przechodzę do strony artykułu w Firefoksie, ale widzę stronę z pamięci podręcznej, a nie zaktualizowaną. Oto przykładowy adres URL posta. http://example.com/?p=1111 To jest mój nagłówek odpowiedzi dla tej samej strony, jeśli jest oglądana po raz pierwszy. ![Nagłówek odpowiedzi](http://i.imgur.com/WgTHxbA.png) Po pierwszym wyświetleniu, jeśli kliknę na pasku adresu Firefoksa i nacisnę Return, strona zostanie załadowana z pamięci podręcznej. Nagłówek żądania znajduje się poniżej. Ponieważ jest ładowany całkowicie z pamięci podręcznej, nie ma nagłówka odpowiedzi. ![Nagłówek żądania](http://i.imgur.com/pUuKIA3.png) Wydaje się jasne, że kontrola pamięci podręcznej może być głównym problemem, ale chcę tylko zapobiec pamięci podręcznej strony (HTML), ale nie stylu i obrazu akta. Mam już wtyczkę WP-Cache do buforowania plików i używam CDN do obsługi obrazów witryn. W tym kontekście uważam, że Firefox jest przydatny do ładowania plików CSS, JavaScript i obrazów z pamięci podręcznej, ale nie chcę, aby Firefox buforował kontekst tekstu strony. Aby uzyskać najnowszą wersję zawartości mojej strony, muszę użyć CTRL + SHIFT + R, aby wymusić przeładowanie strony, ale tym razem wszystkie pliki CSS, Javascript i obrazy są również niepotrzebnie pobierane z serwera. Czy możliwe jest pobieranie zawartości strony zawsze z serwera, ale ładowanie CSS, Javascript i pliku graficznego z pamięci podręcznej?


title: używanie stats_get_csv do zwracania listy popularnych postów według wyświetleń z miniaturami

text:
Niedawno dowiedziałem się, że jeśli masz zainstalowane statystyki Wordpress.com, możesz skorzystać z `stats_get_csv()` (część wtyczki statystyk WordPress.com). <?php if ( function_exists('stats_get_csv') && $top_posts = stats_get_csv('postviews', 'days=-1&limit=4') ) : ?>
 <?php foreach ( $top_posts as $p ) : ? >
<a href="<?php echo $p['post_permalink']; ?>"><?php echo $p['post_title']; ?>
 <?php endforeach; ?>
 <?php endif; ?> Tak mam teraz skonfigurowany kod. Problem polega na tym, że pokazuje zarówno strony, jak i posty. Ponadto chcę dodać polecaną miniaturę obok każdego elementu, a także szereg niestandardowych typów postów. czy to możliwe? Jeśli tak, czy ktoś może mi pomóc?


title: Błąd „Podany identyfikator obiektu nie jest identyfikatorem pozycji menu” w menu z ponad 40 pozycjami

text: Za każdym razem, gdy próbuję dodać pozycje menu powyżej około 40, pojawia się błąd „Podany identyfikator obiektu nie jest identyfikatorem pozycji menu” i wiele z moich pozycji menu zniknie losowo z menu. Witryna, nad którą pracuję, ma w sumie około 65 stron, ale z tego powodu nie mogę ich wszystkich uzyskać. Mam na myśli nowy interfejs zarządzania menu WordPress


title: Jak utworzyć tabelę HTML z tabeli bazy danych?

text: czy istnieje wbudowana funkcja wordpress do tworzenia HTML, czy powinienem używać zwykłego, starego PHP?


title: Wyświetlaj niestandardowe wartości pól z postów na stronie głównej

text: Jak mogę pobrać niestandardowe pole z meta_key "proprty_feature" (i ma wartość) dla wszystkich postów i wyświetlić je na mojej stronie głównej? Czy chcesz wyświetlić nazwę posta jako link nad wartością..


title: Masz problem ze zrozumieniem niestandardowego typu postu i taksonomii :/

text: Zajmuję się tworzeniem serwisu Wordpress, który będzie posiadał bazę modyfikacji samochodów oraz osadzony film na youtube z wynikami. Na przykład: wyszukaj Hondę Civic ze spojlerem i wydechem. To wygenerowałoby kilka postów. Każdy post ma tam własne wideo, atrybuty i reklamę AdSense. Używam jednak luźno terminu posty, naprawdę nie chcę publikować ich na blogu witryny. Walczę, aby zobaczyć, jak (jeśli) może to działać z niestandardowymi funkcjami typu postu i taksonomii w wersji 3.0. Znalazłem też ten motyw za 200 USD na WooThemes, nie jestem pewien, czy zadziała i nie będą ze mną rozmawiać o sprawach technicznych, chyba że jestem „członkiem”. Chciałbym wstawić filmy z YouTube zamiast ich listy dealerów, ale wygląda na to, że temat jest świetnym początkiem. WooThemes - "Listings" Dzięki za wszelką pomoc i spostrzeżenia, jestem na skraju rozumu, próbuję sprawdzić, czy jest to wykonalne.


title: Wordpress menu walker - zdobądź element nadrzędny

text: Chcę zaimplementować system walkera po menu, w którym wyświetlane są tylko te pozycje podmenu, które mają określonego rodzica. Załóżmy więc, że mam dwie pozycje menu pierwszego poziomu, A i B. Na stronie chcę wyświetlić listę podrzędnych pozycji menu A. Chcę używać tego samego menu w całej witrynie, więc utworzenie dwóch różnych menu dla A i B nie wchodzi w grę. Zasadniczo chcę wiedzieć, czy istnieje sposób na poznanie elementu nadrzędnego, gdy chodzik przechodzi przez menu, aby pominąć niektóre elementy na podstawie tych informacji.


title: W jaki sposób włączyłeś WooCommerce do własnego motywu WordPress?

text: Zapewne było to już wcześniej zadawane, ale naprawdę muszę pokazać produkty WooCommerce w moim szablonie, ale nie wiem, jakie hooki dodać gdzie. To moja pierwsza współpraca z WooCommerce. Czy ktoś może mi pomóc? Szybki krok po kroku procesu to wszystko, o co proszę? I trochę więcej porad byłoby **bardzo** mile widziane. Poza tym, sam adres URL wyjaśniający cały proces byłby bonusem, ponieważ w tej chwili nie mogę znaleźć niczego w sieci.


title: Które wywołanie zwrotne podpięcia ma priorytet, jeśli wtyczka i motyw używają tego samego podpięcia?

text: Jeśli motyw i wtyczka używają tego samego haka akcji, na przykład `comment_form` jest używany zarówno przez motyw, jak i wtyczkę. Następnie, który z nich zostanie wywołany jako pierwszy? funkcja powiązana z podpięciem motywu lub funkcja powiązana z podpięciem wtyczki.


title: Dodaj klasę do opublikowania, jeśli została niedawno zaktualizowana

text: Próbuję dodać „ostatnio zaktualizowane” po tytule posta. Odkryłem kod, który działa, ale z powodu wtyczek i kodowania motywów wpływa na wiele wystąpień `the_title`, których nie powinien. Ten problem jest omówiony tutaj https://pippinsplugins.com/use-the_title-and-the_title_attribute- poprawnie/ \- Wprowadziłem pewne poprawki / poprawki, ale niektóre wtyczki są trochę poza moimi możliwościami. Istniejący kod (kredyt http://www.themesandco.com/snippet/adding-an-update-status-to-posts-in-wordpress/) to... // dodaj etykietę do zaktualizowanych postów add_filter('the_title' , 'pomiń_add_stan_aktualizacji'); function skips_add_update_status($html) { //Najpierw sprawdza, czy jesteśmy w pętli i nie wyświetlamy strony if ( ! in_the_loop() || is_page() ) return $html; // Tworzy różne obiekty daty $created = new DateTime( get_the_date('Y-m-d g:i:s') ); $zaktualizowany = nowy DateTime( get_the_modified_date('Y-m-d g:i:s') ); $current = new DateTime( date('Y-m-d g:i:s') ); // Tworzy obiekty date_diff z dat $created_to_updated = date_diff($created , $updated); $zaktualizowane_do_dzisiaj = date_diff($zaktualizowane, $bieżące); //Sprawdza, czy post został zaktualizowany od czasu jego utworzenia $has_been_updated = ($created_to_updated -> s > 0 || $created_to_updated -> i > 0)? prawda fałsz; //Sprawdza, czy ostatnia aktualizacja ma mniej niż n dni. (zastąp n własną wartością) $has_recent_update = ( $has_been_updated && $updated_to_today -> dni < 14 ) ? prawda fałsz; //Dodaje kod HTML po tytule $recent_update = $has_recent_update ? 'Ostatnio zaktualizowane' : ''; //Zwraca zmodyfikowany tytuł return $html.' '.$recent_update; } Chciałbym to zaadaptować, aby dodać dodatkową klasę 'update' za pomocą `post_class`, a następnie skieruję tytuł posta za pomocą CSS i dodam pseudoelement. Mój problem polega na tym, że nie jestem pewien, jak dostosować kod do wstawienia... $classes[] = 'update'; zwróć $klasy; Przypuszczalnie zamiast sekcji `//adds html...` w istniejącym kodzie. Czy ktoś może pomóc? To jest mój kod startowy, ale dodaje klasę „aktualizacji” do wszystkich postów, nie tylko tych zaktualizowanych w ciągu ostatnich 14 dni, chyba dlatego, że nie ma linku do obliczeń logicznych. Jeśli istnieje lepsze podejście alternatywne, jestem otwarty na pomysły. function skips_add_update_status($classes) { //Instaluje różne obiekty daty $created = new DateTime( get_the_date('Y-m-d g:i:s') ); $zaktualizowany = nowy DateTime( get_the_modified_date('Y-m-d g:i:s') ); $current = new DateTime( date('Y-m-d g:i:s') ); // Tworzy obiekty date_diff z dat $created_to_updated = date_diff($created , $updated); $zaktualizowane_do_dzisiaj = date_diff($zaktualizowane, $bieżące); //Sprawdza, czy post został zaktualizowany od czasu jego utworzenia $has_been_updated = ($created_to_updated -> s > 0 || $created_to_updated -> i > 0)? prawda fałsz; //Sprawdza, czy ostatnia aktualizacja ma mniej niż n dni. (zastąp n własną wartością) $has_recent_update = ( $has_been_updated && $updated_to_today -> dni < 14 ) ? prawda fałsz; //dodaj klasę aktualizacji $classes[] = 'aktualizacja'; zwróć $klasy; } add_filter('post_class' , 'skips_add_update_status');


title: Poprzednie pytanie - Instalacja podkatalogu WP Nadal nie działa "poprawnie"

text: http://wordpress.stackexchange.com/posts/160035/revisions Wcześniej zamieściłem powyższe pytanie i otrzymałem odpowiedzi. Dziękuję!! Ale nadal nie działa poprawnie ... teraz mówi, że może znaleźć stronę 404 tylko tym razem z usługi hostingowej. Główna instalacja znajduje się w katalogu głównym, a druga instalacja znajduje się w podfolderze w katalogu głównym. Jeśli z jakiegoś powodu to pomaga, favicon nadal się pojawia.


title: Potrzebna zaawansowana wtyczka galerii wideo

text: OK robienie strony internetowej dla klienta, który ma wielopoziomową galerię wideo. Wszystkie wtyczki do galerii wideo, które znalazłem (nawet te płatne) nie działają tak, jak tego potrzebujemy. Myślałem o rollowaniu własnego rozwiązania, ale prawdopodobnie trwałoby to zbyt długo. Galeria musi: * Być w stanie obsługiwać filmy w podfolderach * Zezwalać użytkownikom na poruszanie się po tych podfolderach za pomocą systemu menu * Pokazywać odtwarzacz, a następnie wyświetlać miniatury innych filmów w bieżącym folderze * Zezwalać użytkownikowi wyszukiwanie filmów * Odtwórz następny film w bieżącym folderze po zakończeniu odtwarzania bieżącego filmu (opcjonalnie) Czy taka wtyczka istnieje? Jeśli nie, mogę zrobić własne.


title: Zmień ścieżkę do strony podrzędnej podczas przesyłania obrazu za pomocą pola niestandardowego

text: Czy można zmienić ścieżkę obrazu przesyłanego za pomocą pola niestandardowego, tak aby zamiast _www.mojawitryna.com/wp-content/uploads/2014/05/plik.pdf_ był wyświetlany jako _www.mojawitryna .com/nazwa strony/plik.pdf_ ??


title: Archive.php nie wyświetla tagów

text: Mam dość standardową konstrukcję "if", która wykrywa, co powinno wyświetlać archive.php (patrz poniżej). Mam również niestandardowy typ postu i niestandardową kategorię. Gdy użytkownik kliknie wyświetlony termin kategorii (taksonomii) w mojej postmeta, ładuje plik archive.php i przechodzi do przypadku „inny” i wyświetla pasujący termin taksonomii „Wzorzec projektu”, który został kliknięty. Cienki. Nie dotyczy to jednak tagów. Jeśli użytkownik kliknie tag w postmeta, archive.php ładuje się z wyświetlonym „nic nie znaleziono”, z następującym adresem URL: `mysite.com/wordpress/tag/action-button/` Spodziewam się, że poniższy kod będzie pasował do warunek „tag” i wyświetl tag „przycisk akcji”. <?php if ( is_category() ): single_cat_title(); elseif ( is_tag() ) : echo 'foobar'; pojedynczy_tag_tytuł(); elseif ( is_author() ) : /* Kolejkuj pierwszy post, w ten sposób wiemy * z jakim autorem mamy do czynienia (jeśli tak jest). */                 Poczta(); printf( __( 'Autor: %s', 'upbootwp' ), '' . get_the_author() . '' ); /* Ponieważ powyżej wywołaliśmy the_post(), musimy * przewinąć pętlę z powrotem do początku * w ten sposób możemy uruchomić pętlę poprawnie, w całości. */ rewind_posts(); elseif ( is_day() ) : printf( __( 'Dzień: %s', 'upbootwp' ), '' .get_the_date() . '' ); elseif ( is_month() ): printf( __( 'Miesiąc: %s', 'upbootwp' ), '' .get_the_date( 'F Y') .'' ); elseif ( is_year() ): printf( __( 'Rok: %s', 'upbootwp' ), '' .get_the_date( 'Y') .'' ); elseif ( is_tax( 'post_format', 'post-format-aside' ) ): _e( 'Asides', 'upbootwp' ); elseif ( is_tax( 'post_format', 'post-format-image' ) ): _e( 'Obrazy', 'upbootwp'); elseif ( is_tax( 'post_format', 'post-format-video' ) ): _e( 'Filmy', 'upbootwp' ); elseif ( is_tax( 'post_format', 'post-format-cytat' ) ): _e( 'Cytaty', 'upbootwp' ); elseif ( is_tax( 'post_format', 'post-format-link' ) ): _e( 'Linki', 'upbootwp' ); else : _e( 'Wzorce projektowe', 'upbootwp' ); endif; ?>


title: Przeciągnij i upuść Kolejność menu metadanych

text: Nie jestem pewien, czy wcześniej udzielono na to odpowiedzi. Mam formularz frontendowy, w którym użytkownik wypełnia formularz z dynamicznymi polami, w których może dodać więcej pól, jeśli zechce. Jquery nazywa pola wejściowe w następujący sposób: dane[0] dane[1] dane[2] dane[3] itd. w zależności od tego, ile pól chce użytkownik. Po przesłaniu formularza wszystkie dane trafiają do jednego rekordu jako metadane. Czy istnieje sposób, aby użytkownik mógł zmienić kolejność metadanych za pomocą funkcji przeciągania i upuszczania? I zapisać kolejność metadanych?


title: Wywołanie Apply_filters na nieudokumentowanych hookach

text: Próbowałem nauczyć się pisać wtyczki i pomyślałem, że najlepszym sposobem będzie przyjrzenie się innym wtyczkom. Przyglądałem się temu i pierwszym wierszom /** * Nazwa wtyczki: Kategorie biblioteki multimediów * URI wtyczki: http://wordpress.org/plugins/wp-media-library-categories/ * Opis: Dodaje możliwość do korzystania z kategorii w bibliotece multimediów. * Wersja: 1.4.1 * Autor: Jeffrey-WP * URI autora: http://codecanyon.net/user/jeffrey-wp/?ref=jeffrey-wp */ /** zarejestruj taksonomię załączników */ function wpmediacategory_init( ) { // Domyślna taksonomia $taksonomy = 'kategoria'; // Dodaj filtr, aby zmienić domyślną taksonomię $taxonomy = apply_filters( 'wpmediacategory_taxonomy', $taxonomy ); register_taxonomy_for_object_type( $taksonomia, 'załącznik' ); } add_action( 'init', 'wpmediacategory_init' ); Jest taka linia: $taxonomy = apply_filters( 'wpmediacategory_taxonomy', $taxonomy, której nie rozumiem. Rozejrzałem się po dokumentacji Wordpress i nie znalazłem haka o nazwie `wpmediacategory_taxonomy`. Poza tym ze względu na nazwę jestem pewien to jest coś związanego z wtyczką.Więc jak to dokładnie działa?Czy to niestandardowy hak?Gdzie został zdefiniowany?


title: Mój pulpit nawigacyjny<< Wygląd << Strona menu nie otwiera się

text: ![tutaj wprowadź opis obrazka](http://i.stack.imgur.com/IGRJL.png) Za każdym razem, gdy próbuję otworzyć wp_nav_menu.php, pojawia się ten błąd krytyczny. Proszę pomóż :(


title: Klasa CSS w ostatnim poście w pętli ( zapytanie niestandardowe )

text: Używam tego pytania, aby to zrobić, ale mam pewne trudności. Mam niestandardowy typ posta, media i pracuję nad szablonem archive-media.php. Częściowo działa to w ten sposób, że kiedy usuwam warunek **if** z kodu, dodaje klasę, ale oczywiście do każdego postu. Ustaliłem, że `$wp_query->current_post` nie zwraca wartości, więc czuję, że nie mogę używać tego prawa. Mam kod w moim pliku functions.php. Kodeks mówi, że current_post jest dostępny w pętli, więc jestem trochę zdezorientowany. add_filter('post_class', 'my_post_class'); funkcja my_post_class($classes){ global $wp_query; if(($wp_query->current_post+1) == $wp_query->post_count) $classes[] = 'ostatni'; zwróć $klasy; }


title: Przekieruj wszystkie szablony stron do index.php i zamień Wordpress w CMS aplikacji jednostronicowej

text: Staram się przesuwać granice Wordpressa, zamieniając go w SPA CMS. Do tej pory wszystko działa dobrze, z wyjątkiem problemu z przekierowaniem. github angularpresstheme **Jak to działa:** Kiedy tworzę stronę i publikuję ją (lub aktualizuję) wordpress wygeneruje szablon widoku html Angularjs. Wszystkie strony są przekierowywane do index.php (stąd nazwa SPA), gdzie znajduje się dyrektywa obsługująca wszystkie stany widoku. Używam do tego HTTP_API. **Problem:** Jeśli przejdziesz po raz pierwszy ( _drugi raz jest ładowany za pomocą php_ .Może być konieczne wyczyszczenie sesji przeglądarki) na http://angularpresstheme.com/full-width/ zobaczysz, że strona pojawia się na chwilę, a następnie ładuje się ponownie (nie dzieje się tak, jeśli po prostu przejdziesz do '/'). Używam JavaScript (Angularjs) do przekierowania strony. Głównym problemem związanym z tym podejściem jest to, że jest ono dość wolne, a strony migoczą. Dzieje się tak, ponieważ był to jedyny sposób, jaki udało mi się znaleźć, aby uniknąć następujących rzeczy: * Za każdym razem, gdy próbowałem utworzyć stronę i ją opublikować, wynikowy szablon html Angularjs był zawsze oparty na szablonie index.php! Stało się tak, ponieważ po prostu przekierowałem wszystkie strony do index.php (używając .htaccess lub php). **Co zrobiłem, aby złagodzić problem:** * Rozwiązałem część problemu, przekierowując „/” (strona główna) i inne strony (przy wczytywaniu po raz drugi) za pomocą PHP. * Kiedy strony _inne niż strona główna_ („/” ) są ładowane po raz pierwszy, musiałem użyć Javascript, aby uniknąć efektu generowania szablonu tylko „index.php”. **Co chciałbym zrobić:** Po kliknięciu publikowania lub aktualizacji musi zignorować to, że przekierowujemy wszystkie strony do index.php (używając .htaccess lub PHP) i po prostu zachować normalny przepływ systemu szablonów wordpress. Na przykład: mógłbym stworzyć stronę z slugiem nazwanym home i użyć szablonu front-page.php, a następnie powinna wygenerować stronę o nazwie Home na podstawie szablonu pierwszej strony (jak zwykle robi to Wordpress). **Aby wznowić:** * Chciałbym przekierować wszystkie strony do index.php za pomocą .htaccess (jeszcze lepiej) lub PHP * A podczas tworzenia lub edytowania nowej strony Wordpress powinien działać normalnie dla front-endu i z powrotem -end **Możliwe sposoby rozwiązania tego problemu:** * Użyj reguł przepisywania Wordpress z template_redirect * Inny sposób generowania szablonu html inny niż HTTP_API lub OB_START. Czy ktoś mógłby mi w tym pomóc? Byłoby bardzo miło! **Kod:** /** * Gdy strona (strona główna '/') ładuje się lub ładuje ponownie, ustaw sesję template_req * w czasie połączenia template_redirect (tuż przed template_include). * Następnie przekieruj do index.php za pomocą redirect_all_pages_to_index_template() przy użyciu * haka 'template_include'. * * */ function angp_set_index_for_redirect() { if (!is_front_page()) return; angp_set_session('index.php', 'template_req'); } add_action('template_redirect', 'angp_set_index_for_redirect', 10); /** * Kiedy strony (inne niż strona główna) ładują się po raz pierwszy, ustaw sesję * template_req_pages w czasie przerzutu wp_head(dla podglądu strony) i get_header(dla frontendu). * Ale przekierowanie nastąpi dopiero po ponownym załadowaniu strony za pomocą * redirect_other_pages_to_index_template() przy użyciu haka 'template_include'. * * */ function angp_set_index_for_pages_redirect() { if (is_front_page()) return; angp_set_session('index.php', 'template_req_pages'); } add_action('wp_head', 'angp_set_index_for_pages_redirect'); add_action('get_header', 'angp_set_index_for_pages_redirect', 10); /** * kiedy '/' jest przeładowywane (po raz pierwszy lub nie) * sprawdź, czy istnieje klucz sesji 'template_req' (który jest ustawiony w czasie połączenia template_redirect * w angp_set_index_for_redirect()) i jeśli tak, przekieruj do indeksu. php * * */ function redirect_all_pages_to_index_template($szablon) { global $pagenow; if (('template_include' == current_filter()) && $pagenow == 'index.php' ) { $key = 'template_req'; if (isset($_SESJA[$klucz])) { $tablica = $_SESJA[$klucz]; $req_url = $tablica['url']; $nowy_szablon = zlokalizować_szablon($req_url); if ('' != $nowy_szablon) { return $nowy_szablon; } } } return $szablon; } add_filter('template_include', 'redirect_all_pages_to_index_template', 10, 1); /** * gdy strona inna niż '/' jest ponownie ładowana (po raz pierwszy lub nie) * sprawdź, czy istnieje klucz sesji 'template_req_pages' i , jeśli tak, przekieruj do index.php * Sesja 'template_req_pages' jest ustawiona w set-index-redirect.php z get_header i wp_head * hooks * */ function redirect_other_pages_to_index_template($template) { global $pagenow; if (('template_include' == current_filter()) && $pagenow == 'index.php' ) { $key = 'template_req_pages'; if (isset($_SESJA[$klucz])) { $tablica = $_SESJA[$klucz]; $req_url = $tablica['url']; $nowy_szablon = zlokalizować_szablon($req_url); if ('' != $nowy_szablon) { return $nowy_szablon; } } } return $szablon; } add_filter('template_include', 'redirect_other_pages_to_index_template', 20, 1); /** * To mówi przeglądarce w fazie init hook, że ładujemy stronę po raz pierwszy * w historii. Działa dla stron innych niż '/'. Przekierowanie zostanie wykonane przez angularjs w app.js * MainCtrl * * */ function angp_is_page_first_loaded() { if (!isset($_SESSION['template_req_onload'])) { angp_set_session('template_req_onload', 'template_req_onload'); } } add_action('init', 'angp_is_page_first_loaded', 10); /** * Nakazuje przeglądarce w fazie przechwycenia get_header usunąć 'template_req_onload' po pełnym załadowaniu * strony, aby nie wpadła w pętlę przekierowania. Sprawdza, czy $_COOKIE['is_page_loaded'] * lub $_SESSION['page_loaded'] zostały już ustawione. * * * */ function destroy_session_index_onload() { //plik cookie ustawiony w app.js if (isset($_COOKIE['is_page_loaded']) || isset($_SESSION['page_loaded'])) { unset($_SESSION[' template_req_onload']); } } add_action('get_header', 'destroy_session_index_onload', 20); /** * Ustaw sesję page_loaded, gdy strona jest w pełni załadowana * $_COOKIE['is_page_loaded'] robi to samo dla google chrome canary * * */ function angp_page_fully_loaded() { angp_set_session('page_loaded', 'page_loaded'); } add_action('wp_footer', 'angp_page_fully_loaded'); add_action('get_footer', 'angp_page_fully_loaded', 20); /** * Ten kod generuje szablony widoków angularjs html * Używa HTTP-API z wp_remote_get() * */ function angp_get_template_content($new_status, $old_status) { global $post; if (isset($post->post_name)) { $post_slug = $post->post_name; $plik = pobierz_katalog_szablonu() . '/biblioteka/widoki/strony/' . $post_slug . '.html'; if (($stary_status != 'kosz' && $nowy_status == 'kosz')) { if (plik_istnieje($plik)) unlink($plik); } } if (($old_status != 'opublikuj' && $nowy_status == 'opublikuj') || did_action('wp_insert_post') === 1) { angp_get_page_http_api(site_url(), 'newsloop'); $pages = get_pages(array('sort_order' => 'asc')); if (!empty($pages)) foreach ($pages as $page) { $slug = $page->post_name; $url = get_page_link($page->ID); angp_set_session('index.php', 'template_req'); angp_get_page_http_api($url, $slug); } } } if ($_SERVER['REQUEST_URI'] == '/wp-admin/nav-menus.php' || (isset($_POST['akcja']) && $_POST['akcja'] == ' add-menu-item') || (@$_POST['post_type'] == 'post')) ) return; add_action('quick_edit_custom_box', 'angp_get_template_content', 10,2); add_action ('wp_insert_post', 'angp_get_template_content', 20, 2); add_action('transition_post_status', 'angp_get_template_content', 20, 2); add_action ('wp_restore_post_revision', 'angp_get_template_content', 10, 2); if (!function_exists('angp_get_page_http_api')) { function angp_get_page_http_api($url, $slug) { /* * zażądaj wyodrębnienia zawartości strony między tagami <content></content> lub <homenewsloop></homenewsloop> * */ $ odpowiedź = wp_remote_get ($url); if (is_wp_error($response) || (200 != wp_remote_retrieve_response_code($response))) { wp_die('Żądanie nie mogło zostać wykonane.'); } spróbuj { $ wynik = wp_remote_retrieve_body ($ odpowiedź); //wyodrębnij treść i przekaż ją do generatora szablonów html if ($url !== site_url()) { preg_match_all('/<content[^>]*>(.*?)<\/content>/is', $ wynik, $t); angp_wp_to_angular_template_generator ($ slug, $t[1][0]); } else { preg_match_all('/<homenewsloop[^>]*>(.*?)<\/homenewsloop>/is', $result, $t); angp_wp_to_angular_template_generator ($ slug, $t[1][0]); } } catch (wyjątek $ex) { return $ex; } } } if (!function_exists('wp_to_angular_template_generator')) { function angp_wp_to_angular_template_generator($slug, $body_response) { if ($slug === 'newsloop') { $file = get_template_directory() . '/biblioteka/widoki/pętle/' . $ślimak . '.html'; } else { $plik = get_template_directory() . '/biblioteka/widoki/strony/' . $ślimak . '.html'; } if (!empty($body_response)) { spróbuj { global $checkfile; if(file_exists($file)){ $checkfile = file_get_contents($file); } //po prostu napisz zawartość, jeśli zawartość pliku jest pusta lub zawartość jest inna niż //$body_response if ($body_response !== $checkfile || $checkfile === '' || !isset($checkfile)) { file_put_contents ($plik, $odpowiedź_ciała, LOCK_EX); zwróć fałsz; } } catch (Wyjątek $ex) { return 'Nie można zapisać pliku!'; } } } } if (!function_exists('angp_set_session')) { function angp_set_session($nazwa_klucza, $nazwa_zamówienia_szablonu) { $zadanie_szablonu = $nazwa_klucza; $klucz = $nazwa_wymagania_szablonu; $_SESSION[$klucz]['url'] = $template_req; } }


title: Niestandardowe Meta Box - Wiele pól wyboru dla użytkowników

text:
Moje pytanie dotyczy tego artykułu: http://wp.smashingmagazine.com/2012/01/27/limiting-visibility-posts-username/comment-page-1/#comment-154111 Ten artykuł: 1. tworzy niestandardowy metabox 2. niestandardowy metabox wysyła zapytanie do użytkowników „subskrybentów”. wiele wartości pól wyboru w jednym polu, oddzielonych przecinkami (tj. tablica). Kod: (w functions.php) /* Uruchom naszą funkcję konfiguracji metabox na ekranie edytora postów. */ add_action( 'load-post.php', 'smashing_post_meta_boxes_setup' ); add_action( 'load-post-new.php', 'smashing_post_meta_boxes_setup' ); /* Funkcja konfiguracji Meta boxa. */ function smashing_post_meta_boxes_setup() { /* Dodaj pola meta w haczyku 'add_meta_boxes'. */ add_action( 'add_meta_boxes', 'smashing_add_post_meta_boxes' ); /* Zapisz meta posta w haczyku 'save_post'. */ add_action( 'save_post', 'smashing_flautist_access_save_meta', 10, 2 ); } /* Utwórz jedno lub więcej metaboksów, które będą wyświetlane na ekranie edytora postów. */ function smashing_add_post_meta_boxes() { add_meta_box( 'smashing-flautist-access', // Unikalny identyfikator esc_html__( 'Pozwolenie na wyświetlanie postów', 'smashing_flautist' ), // Tytuł 'smashing_flautist_access_meta_box', ', / Strona administracyjna (lub typ postu) 'normalna', // Kontekst 'domyślny' // Priorytet ); } /* Wyświetl metabox posta. */ function smashing_flautist_access_meta_box( $object, $box ) { ?> <?php wp_nonce_field( basename( __FILE__ ), 'smashing_flautist_access_nonce' ); ?>

 Nazwa użytkownika	  	 Widoczność	  	 Nazwa
 <?php global $post; $users = get_users('role=subscriber'); foreach ($users as $user) { $user_info = get_userdata( $user->ID ); if(get_post_meta( $object->ID, 'smashing_flautist_access', true ) == $user->user_login) $ifchecked = 'checked="checked" '; echo "
"; echo "$user->login_użytkownika	 	"; echo "<input type=\"checkbox\" name=\"smashing-flautist-access\" id=\"smashing-flautist-access\" value=\"$user- >login_użytkownika\" " . $ifchecked ."/>	 	"; echo "$user_info->nazwisko, $user_info->imię	 	"; echo "
"; unset($jeśli zaznaczone); } ?>
 <?php } /* Zapisz meta posta w haku 'save_post'. */ add_action( 'save_post', 'smashing_flautist_access_save_meta', 10, 2 ); /* Zapisz metadane posta z pola meta. */ function smashing_flautist_access_save_meta( $post_id, $post ) { /* Spraw, aby wszystkie odwołania $wpdb w tej funkcji odwoływały się do tej zmiennej */ global $wpdb; /* Zweryfikuj wartość jednorazową przed kontynuowaniem. */ if ( !isset( $_POST['smashing_flautist_access_nonce'] ) || !wp_verify_nonce( $_POST['smashing_flautist_access_nonce'], basename( __FILE__ )) ) return $post_id; /* Pobierz obiekt typu post. */ $post_type = get_post_type_object( $post->post_type ); /* Sprawdź, czy bieżący użytkownik ma uprawnienia do edycji wpisu. */ if ( !current_user_can( $post_type->cap->edit_post, $post_id )) return $post_id; /* Pobierz opublikowane dane i oczyść je do użycia jako klasa HTML. */ $new_meta_value = ( isset( $_POST['smashing-flautist-access'] ) ? sanitize_html_class( $_POST['smashing-flautist-access'] ) : '' ); /* Pobierz metaklucz. */ $meta_key = 'smashing_flautist_access'; /* Pobierz meta wartość klucza pola niestandardowego. */ $meta_value = get_post_meta( $post_id, $meta_key, true ); /* Jeśli dodano nową wartość meta i nie było poprzedniej wartości, dodaj ją. */ if ( $new_meta_value && '' == $meta_value ) { add_post_meta( $post_id, $meta_key, $new_meta_value, true ); $wpdb->query($wpdb->prepare("UPDATE $wpdb->posts SET post_status = 'prywatny' WHERE ID = ".$post_id." AND post_type ='post'")); } /* Jeśli nowa wartość meta nie odpowiada starej wartości, zaktualizuj ją. */ elseif ( $nowa_meta_wartość && $nowa_meta_wartość != $meta_wartość ) { update_post_meta( $post_id, $meta_key, $nowa_meta_value ); $wpdb->query($wpdb->prepare("UPDATE $wpdb->posts SET post_status = 'prywatny' WHERE ID = ".$post_id." AND post_type ='post'")); } /* Jeśli nie ma nowej wartości meta, ale istnieje stara wartość, usuń ją. */ elseif ( '' == $nowa_meta_wartość && $meta_wartość ) { delete_post_meta( $post_id, $meta_key, $meta_value ); $wpdb->query($wpdb->prepare("UPDATE $wpdb->posts SET post_status = 'public' WHERE ID = ".$post_id." AND post_type ='post'")); } }


title: Włącz filtr menu modalnego multimediów

text: Próbuję to rozgryźć dla wtyczki, nad którą pracuję: Używając wbudowanego modu medialnego w WordPressie do wybierania mediów, zauważyłem kilka różnic między ramką modalną mediów, która jest ustawiona jako `post` a `select`. `post`, który jest używany przez WordPress do wstawiania multimediów do treści postów, ma rozwijany filtr, dzięki czemu możesz zobaczyć tylko obrazy lub dźwięk: ![Przykład modalny mediów 1](http://i.stack.imgur.com /ktN4W.jpg) Jeśli używasz `select`, który jest prostszym modalnym trybem używanym w większości samouczków, menu rozwijane jest nieobecne: ![wprowadź opis obrazu tutaj](http://i.stack.imgur.com/IqYkA.jpg ) Zastanawiałem się, czy istnieje sposób na aktywację tego filtra rozwijanego?


title: Jak dodać niestandardowy przycisk do paska narzędzi edytora postów?

text: Chciałbym dodać przycisk na pasku narzędzi edytora WordPress. Po kliknięciu chcę otworzyć modalne okno dialogowe (dokładnie tak, jak po kliknięciu ikony „Wklej z programu Word”). Może to być więcej niż jedno pytanie, więc pierwsze pytanie, jakie mam, to jaki kod muszę dodać do functions.php mojego motywu, aby umieścić przycisk ze zdarzeniem kliknięcia, które otwiera okno modalne podobne do okna dialogowego programu Word?


title: Pobieranie wartości recenzji przy użyciu klasy wpdb

text: Generuję plik XML przy użyciu PHP dla witryny internetowej, na której przeglądają produkty techniczne. W pliku XML muszę wyświetlić ocenę produktów. Do celów oceny używam wtyczki GD Star Rating. Eksperymentowałem z klasą wpdb, aby pobrać ocenę każdego produktu. Jednak do tej pory nie miałem szczęścia. Używam następującego kodu SQL na phpmyadminie i jestem w stanie pobrać ocenę dla dowolnej recenzji produktu, którą chcę SELECT review FROM tableName_gdsr_data_article WHERE post_id = 4627 Ale kiedy próbuję tego kodu SQL w PHP, jak widać poniżej, wszystko get to mnóstwo błędów. $post_id = $post->ID; $reviewScore = $wpdb->query( $wpdb->prepare( "SELECT review FROM tableName_gdsr_data_article WHERE post_id = '$post_id'" ) ); Czy ktoś ma jakiś pomysł, dlaczego powyższy kod nie działa? Każda pomoc byłaby bardzo mile widziana. Z góry dziękuję


title: Zastąp domyślną funkcję XMLRPC z wtyczki

text: Chcę zastąpić wywołanie xmlrpc "metaWeblog.newMediaObject", aby plik został zapisany zdalnie. Z mw_newMediaObject w class-wp-xmlrpc-server.php widzę, że jest hook: do_action('xmlrpc_call', 'metaWeblog.newMediaObject'); Więc powinienem być w stanie zrobić coś w mojej wtyczce, takie jak: add_action ('xmlrpc_call', 'myWewMediaObject'); function myWewMediaObject ($method) { if ($method=='metaWeblog.newMediaObject') { //wykonaj jakąś niestandardową akcję } } Jednak ponieważ wywołanie do_action znajduje się na początku funkcji mw_newMediaObject, nie jestem pewien, jak zatrzymać wykonanie po tym, jak moja funkcja wtyczki istnieje. Daj mi znać, czy jestem na dobrej drodze i czy istnieje inny sposób, aby to zrobić.


title: Inny styl najnowszego artykułu

text: Chciałbym, aby mój najnowszy artykuł wyświetlał się jako duży z większą miniaturą i większą zawartością, podczas gdy reszta postów w pętli wyświetlała małą miniaturę i tylko tytuł bez treści. Czy mogę to zrobić w jednej pętli `while(have_posts())`?


title: Czy istnieje wtyczka wordpress listserv lub e-mail group?

text: Istnieje wiele wtyczek WP do korespondencji jednokierunkowej... tj. listy mailingowe, na których właściciel może wysyłać biuletyny itp., ale chcę zintegrować funkcjonalność listserv lub grupy e-mail dla moich użytkowników WP, gdzie każdy w grupa może zwracać się do całej grupy, ale osoby spoza grupy nie. _mógłbym_ to zrobić w grupach google, ale miałem nadzieję zintegrować go z witryną WP mojego klubu, aby móc go używać w połączeniu z wtyczką członkowską, aby śledzić, kto zapłacił składki klubowe i tak dalej. edytuj, aby dodać: myślę, że MailPress, a zwłaszcza Użytkownicy poczty e-mail mogą działać (Użytkownicy poczty e-mail, jeśli dostosuję możliwości), ale idealnie grupa byłaby w stanie wysyłać wiadomości ze swoich e-maili na jeden adres (jak w przypadku grup google) i nie musi zaloguj się, aby wysłać wiadomość od administratora. nie ma mowy, żebym był w stanie nauczyć wszystkie te osoby, jak używać WP, więc chcę, aby tarcie było minimalne. czy jest to możliwe z WP?


title: niestandardowy rozmiar obrazu nie jest pobierany

text: Opracowuję motyw dla klienta, w którym potrzebuję kilku wersji tego samego obrazu. W moim pliku functions.php dodałem wszystkie potrzebne rozmiary obrazów. Na przykład: if ( function_exists( 'add_theme_support' ) ) { add_theme_support( 'post-miniatur' ); } if ( function_exists( 'add_image_size' ) ) { add_image_size('frontpage-post-thumbnail', 192, 192,true ); add_image_size('lista-po-miniaturce', 670, 290,prawda ); add_image_size('podgląd-po-miniaturce', 640, 640,prawda ); add_image_size('podgląd-jeden po-miniaturka', 480, 480,prawda ); add_image_size('podgląd-dwapost-miniaturka', 240, 240,prawda ); add_image_size('single-thumbnail', 160,9999, false); } Teraz, w moim szablonie archive.php, potrzebuję wersji "listing-post-thumbnail", ale wordpress używa zamiast tego oryginalnego obrazu. Sprawdziłem i wersja obrazu 670x290 znajduje się w tym samym folderze co oryginał. Oto kod w archive.php <figure> <a href="<?php the_permalink(); ?>" title="Węzeł dostępowy: <?php the_title(); ?>"> <?php echo get_the_post_thumbnail($ id, tablica(670,290)); ?> </a> </figura>


title: is_home() zwraca false na stronie głównej! Kiedy strona główna NIE jest stroną główną?

text: Umieściłem następujący kod w moim pliku functions.php if(!is_home()){ echo "Not Home";} if(is_home()){ echo "Home";} Jednak bez względu na to, na której stronie jestem dalej, otrzymuję „Nie w domu” i jestem naprawdę pewien, że jestem na stronie głównej, ale nadal otrzymuję „Nie w domu”. czego mi brakuje?


title: Tworzenie tagów i archiwizowanie za pomocą meta z niestandardowego typu postu

text: Mam niestandardowy typ postu, promocje i ma 2 meta pola do ustawiania dat za pomocą selektora daty jQuery, daty rozpoczęcia i daty zakończenia, roku, miesiąca, dnia. To, co próbuję zrobić, to pokazać listę miesięcy z nagłówkiem dla roku między każdym grupowaniem, kliknięcie miesiąca przeniesie Cię do archiwum postów promocyjnych, które rozpoczęły się w tym samym roku co nagłówek, kliknięcie roku spowoduje archiwum wszystkich promocji, które rozpoczęły się w tym roku. Przykład: 2012 Styczeń Marzec 2011 Grudzień Sierpień Czerwiec Zdaję sobie sprawę, że prostym sposobem na zrobienie tego może być po prostu utworzenie taksonomii rocznej i miesięcznej dla daty końcowej i daty rozpoczęcia, ale została ona poproszona i będzie najbardziej przyjazna dla użytkownika, tylko wymagać, aby użytkownik wprowadzający dane musiał jednorazowo wpisać datę zakończenia i datę rozpoczęcia promocji. Dziękuję


title: Czy istnieje wtyczka, która zlicza posty według autora?

text: Chcę mieć stronę z listą wszystkich autorów i liczbą postów opublikowanych przez każdego z nich. Czy istnieje wtyczka, która już to robi? Możliwość policzenia liczby komentarzy byłaby plusem. Dzięki za pomoc.


title: Czy istnieje wtyczka do oceny wielu pytań do wordpress?

text: Stworzyłem stronę w worpdress. Muszę zarządzać różnymi pytaniami, takimi jak „Jak oceniasz naszą obsługę klienta”, „Jak bardzo jesteś zadowolony z naszych usług” i innymi pytaniami oraz oceniać te pytania i mieć pogląd na administratora. Próbowałem znaleźć wtyczkę, ale nie mogłem znaleźć. Czy ktoś może dać mi znać, czy taki rodzaj wtyczki istnieje, czy muszę zrobić z własnymi kodami? Z góry dziękuję


title: Nadaj nazwę slugowi postów

text: Chciałbym używać adresu URL `http://site.com/post/title-of-the-post` dla moich postów, a na mojej stronie administratora widziałem aktualny adres URL `http://site. com/%slug%/tytuł-postu jest bardzo niepoprawny. Jak mogę zdefiniować slug dla moich domyślnych postów? Używam różnych niestandardowych typów postów, więc chciałbym nazwać domyślne posty po prostu `post`, czy to możliwe?


title: Pobierz aktualną stronę php hierarchii

text: Czy istnieje jakiś sposób na pobranie aktualnie przeszukiwanej strony php hierarchii w `Wordpress`? Ustawiłem domyślną kategorię dla moich postów o nazwie `post`, więc jeśli wpiszę `http://site.com/post`, która strona php jest przeszukiwana w `hierarchii`? Byłoby wspaniale, gdyby przeszukano bieżącą stronę.


title: Wiele zapytań i wykluczenie powtarzających się postów?

text:
Próbuję wymyślić, jak wykluczyć posty użyte w pierwszych czterech zapytaniach niestandardowych w ostatnim typowym zapytaniu.. Nie udało mi się znaleźć niczego, co wyjaśniłoby, jak to zrobić wyraźnie. Moje pierwsze cztery pętle: <?php // Pętla 1 $first_query = new WP_Query('category_name=funding&showposts=1'); // wybierz kategorię $ids = array(); while($first_query->have_posts()) : $first_query->the_post(); ?> <?php tytuł_(); ?>
 <?php endwhile; // Pętla 2 $second_query = new WP_Query(array('post__not_in' => $ids,'category_name' => 'industry','posts_per_page' => 1)); // wybierz kategorię while($second_query->have_posts()) : $second_query->the_post(); $ids[] = get_the_ID(); ?> <?php tytuł_(); ?>
 <?php endwhile; // Pętla 3 $third_query = new WP_Query(array('post__not_in' => $ids,'category_name' => 'open-consultations','posts_per_page' => 1)); // wybierz kategorię while($third_query->have_posts()) : $third_query->the_post(); $ids[] = get_the_ID(); ?> <?php tytuł_(); ?>
 <?php endwhile; // Pętla 4 $fourth_query = new WP_Query(array('post__not_in' => $ids,'category_name' => 'policy','posts_per_page' => 1)); // wybierz kategorię while($fourth_query->have_posts()) : $fourth_query->the_post(); $ids[] = get_the_ID(); ?> <?php tytuł_(); ?> <?php koniec; ?> Typowe zapytanie WordPress, z którego chcę usunąć powtarzające się posty: <?php if ( have_posts() ) : ?> <?php /* Start the Loop */ ?> <?php while ( have_posts() ) : the_post (); ?> <a href="<?php the_permalink(); ?>"><?php if ( has_post_thumbnail() ) { the_post_thumbnail( 'category-thumb', array('class' => 'alignleft')); } ?> <?php the_time('l, F jS, Y') ?>
<a href="<?php the_permalink (); ?>"><?php the_title(); ?>
 <?php the_excerpt(); ?>
 <?php endwhile; ?> <?php wp_pagenavi(); ?>  <?php endif; ?>


title: Jak dezaktywować moją wtyczkę po dezaktywacji NextGen

text: piszę tę wtyczkę i muszę ją dezaktywować, gdy NextGen jest dezaktywowane: <?php /* Nazwa wtyczki: Nazwa wtyczki Opis: Opis Wersja: 1.0 Autor: Autor URI autora: URI autora */ // ini_set( "display_errors" , 0); globalny $nextgenUrl; $nextgenUrl = str_replace('/','\\',WP_PLUGIN_DIR.'nextgen-gallery\nggallery.php'); register_deactivation_hook( $nextgenUrl , 'disattiva' ); [... inny kod ...] funkcja disattiva(){ deactivate_plugins(__FILE__); } ale to nie działa. Dowolny pomysł? :( Użyłem również tych adresów URL: $nextgenUrl = 'nextgen-gallery\nggallery.php'; $nextgenUrl = '/nextgen-gallery/nggallery.php'; i nadal nie działa.


title: category__not_in i id wartości ze zmiennej

text: Jak mogę ustawić wartości dla category__not_in z dwóch zmiennych. W moim przykładzie po prostu zakodowałem identyfikator każdej kategorii do wykluczenia, ale ... jak mogę przekazać te wartości z niektórych zmiennych? $category_a = get_category_by_slug('fbrt'); $category_b = get_category_by_slug('kontakt'); $wyklucz = get_the_ID(); globalne $wp_query; $ wyklucz = $wp_query->post->ID; $args = array( 'category_name' => 'fizyka-olimpijska', 'category__not_in' => array(1, 2), 'posts_per_page' => -1, 'orderby' => 'title', 'order' => „DESC” );


title: Motyw potomny pobiera niewłaściwą lokalizację plików motywu nadrzędnego

text: W tym tygodniu kupiłem motyw Wordpress i aby moje zmiany były oddzielone od oryginalnego motywu, stworzyłem dla niego motyw potomny. W tej chwili jest to tylko motyw potomny barebones, plik style.css i zrzut ekranu. Motyw nadrzędny zawiera kilka skryptów CSS i jQuery, które zawiera. Problem polega jednak na tym, że motyw potomny szuka tych plików w katalogu motywu potomnego, a nie w katalogu nadrzędnym. Na przykład, jeśli używam motywu nadrzędnego, lokalizacja będzie wyglądać następująco: ParentTheme/js/jquery.easing.js Jednak w motywie potomnym szuka plików tutaj: ChildTheme/js/jquery.easing.js Zamiast motywu nadrzędnego jak bym przypuszczał. Próbowałem skopiować foldery CSS i JS, ale to też nie zadziałało. czy robię coś źle? Jak użyć motywu potomnego do motywu nadrzędnego, który zawiera kilka potrzebnych plików CSS i JS? Możesz zajrzeć tutaj, jeśli chcesz: http://panther.c1.vadc1.cloudweb.com/~jsfashio/


title: Wordpress - Admin Zarządzaj postami - Wiele filtrów według kategorii nadrzędnej

text: Powiedzmy, że mam następujące kategorie w Wordpress: Kategoria produktu - Kat A - Kat B - Kat C Typ usługi - Usługa A - Usługa B - Usługa C Na stronie Zarządzaj postami po stronie administratora chcę mieć 2 rozwijane filtry zarówno dla kategorii produktu, jak i typu usługi, dzięki czemu mogę filtrować według obu na zapleczu. W jaki sposób mogę to zrobić?


title: Dodanie unikalnej klasy do wp_nav_menu

text:
Jak mogę dodać unikalną klasę do bezpośrednich elementów potomnych li głównego rodzica elementu ul wygenerowanego za pomocą wp_nav_menu?

Strona1

 Podstrona1-1

Podstrona1-2

  Chciałbym dodać klasę `menu_element` do `li id="menu-item-30"` i każde dziecko li rodzica ul. czy to możliwe? Z góry dziękuję!


Jeśli ustawię uprawnienia do pliku CSS w moim motywie na 444, a następnie spróbuję edytować go w Edytorze wyglądu, WordPress nie będzie mógł edytować pliku i faktycznie zmieni uprawnienia na 644 podczas edycji. Dlaczego WordPress zmienia uprawnienia pliku? Jak zwiększyć bezpieczeństwo witryny i temu zapobiec?


title: Jak dodać drugie niestandardowe menu na moim pasku bocznym, gdy motyw obsługuje tylko jedno?

text: Po prostu chcę, aby drugie menu na moim pasku bocznym było wyświetlane na wszystkich stronach. Mój motyw obsługuje jednak tylko jedno niestandardowe menu. Używam pierwszego niestandardowego menu dla nawigacji najwyższego poziomu i chciałem mieć moje drugie niestandardowe menu na pasku bocznym. Stworzyłem drugie menu i próbowałem dodać je za pomocą niestandardowego widżetu menu, jednak to tylko dodaje moje pierwsze menu, zgaduję, ponieważ motyw obsługuje tylko jedno menu.


title: Uaktualnij do Google Analytics dla Wordpress 5.0.5 tworzy komunikaty ostrzegawcze

text: Wygląda na to, że uaktualnienie do wersji 5.0.5 w moich instalacjach WP dodało kilka nowych funkcji, które nie są poprawnie sprawdzane w kodzie - prawdopodobnie zobaczysz takie błędy Uwaga: Niezdefiniowany indeks: anonymize_ips w /.../wp- content/plugins/google-analytics-for-wordpress/frontend/class-ga-js.php w wierszu 79 Uwaga: niezdefiniowany indeks: debug_mode w /.../wp-content/plugins/google- analytics-for-wordpress/ frontend/class-ga-js.php w wierszu 114 Jak się ich pozbyć?


title: Losowo wyświetlaj jeden obraz z 10 obrazów dla pętli

text: Mam funkcję Wordpress, która zapętla 10 pól wejściowych i zapisuje dane z tych pól wejściowych. Wprowadzone dane to bezwzględny lub względny link do obrazu. Pętla wygląda tak. <?php for ($i = 1; $i < 11; $i++) { ?> <input type="text" name="<?php echo 'fresh_banner'.$i ?>" value="<?php echo $settings['fresh_banner'.$i]; ?>" /> <?php } ?> Zapis wygląda tak: <?php function freshSaveThemeSettings() { $settings = get_option( "freshThemeSettings" ); for ($i = 1; $i < 11; $i++) { $ustawienia['świeży_baner'.$i] = $_POST['świeży_baner'.$i]; } $updated = update_option( "freshThemeSettings", $settings ); } ?> Aby wyprowadzić jeden z obrazów, wygląda to mniej więcej tak: <?php $settings = get_option( "freshThemeSettings" ); echo $settings['fresh_banner1']; ?> To, co próbuję zrobić, to losowo wyświetlać jeden z obrazów na raz. Za każdym razem, gdy strona zostanie odświeżona, zostanie wyświetlony nowy obraz. Jak najlepiej się do tego zabrać?


title: Wyświetlać zawartość, jeśli zaznaczone jest pole wyboru Meta?

text: Zasadniczo mam niestandardowy post z niestandardowym metaboxem, z polem wyboru w środku. Jeśli zaznaczysz to pole, chcę, aby coś (stylizowane pole) pojawiło się w pętli postu. Jeśli nie jest zaznaczone, pole nie pojawia się... Mam następujące elementy na mojej stronie szablonu.. <?php get_header(); ?> <?php $pętla = new WP_Query( array( 'post_type' => 'books','posts_per_page' => '-1') ); ?> <?php while (have_posts()) : the_post(); $meta = get_post_meta( get_the_ID(), 'rw_title_block', true ); ?> <?php if( zaznaczone( $meta, 1, fałsz ) ) : ?> pole wyboru jest zaznaczone, aby wyświetlić takie rzeczy jak... <?php the_title(); ?> <?php endif ?> niezaznaczone zignoruj to... <?php endwhile; ?> <?php wp_reset_query() ?> <?php get_footer(); ?> Kod funkcji metabox (wydaje się, że wyświetla się dobrze w admin.) $meta_boxes[] = array( 'id' => 'test_metabox', 'title' => 'Test Metabox', 'pages' => array( 'books', ), 'context' => 'normal', 'priority' => 'high', 'show_names' => false, 'fields' => array( array( 'name' => 'Test Checkbox', 'desc' => 'opis pola (opcjonalnie)', 'id' => $prefiks .'title_block', 'type' => 'pole wyboru', ), ), ); Dziękuję za wszelką pomoc, byłoby to ratunkiem dla życia. Pozdrowienia.


title: noheader po stronie użytkownika/frontendu

text: Mam aplikację, która ma następującą strukturę po stronie user/frontend: usercontroller: generuje dane wyjściowe userformhandler: przetwarza dane wejściowe użytkownika i przekierowuje z powrotem do usercontroller Tak więc, gdy użytkownik wprowadza dane, wywoływany jest następujący typ adresu URL: http://localhost /wordpress/?page_id=4&ftype=userform&func=edit&noheader=true W tym modelu userformhandler przetwarza dane, zapisuje je, a następnie przekierowuje z powrotem do usercontrollera. Po stronie administratora (która wywołuje ftype=adminform) działa to dobrze. Jednak po stronie użytkownika otrzymuję następujący błąd: OSTRZEŻENIE: NIE MOŻNA ZMODYFIKOWAĆ INFORMACJI NAGŁÓWKA - NAGŁÓWKI JUŻ WYSŁANE PRZEZ (WYJŚCIE ROZPOCZĘTE AT /VAR/WWW/HTML//WORDPRESS/WP-INCLUDES/L10N.PHP:156) IN /VAR /WWW/HTML/WORDPRESS/WP-INCLUDES/PLUGGABLE.PHP ON LINE 881 Nagłówki są wysyłane z pola wyszukiwania tematu dwadzieścia jedenaście. Pewne dochodzenie prowadzi mnie do wniosku, że parametr noheader jest honorowany tylko w ./wp-admin/admin.php ... Widząc to, czy jest jakiś sposób na wykonanie tego typu przetwarzania po stronie użytkownika bez generowania nagłówków, tj.: do jakieś przetwarzanie, które nie generuje danych wyjściowych i przekierowuje z powrotem do innego kontrolera po stronie użytkownika? Pozdrowienia/Dzięki


title: Pole Combo/Drop down na stronie ustawień wtyczki, które pozwala na dodanie dodatkowych opcji

text: Nie jestem pewien, jak to się nazywa i nie odniosłem jeszcze większego sukcesu w poszukiwaniu tego. Na stronie ustawień wtyczki chciałbym mieć „pole kombi” lub „pole rozwijane”, które obejmuje również możliwość dodania opcji, która nie jest obecnie uwzględniona. Ta nowo dodana opcja zostanie od tego momentu dodana do opcji w polu. Czy taka funkcja jest dostępna w interfejsie Settings API, czy wymaga osobnego pola tekstowego, które jest następnie dodawane do tablicy opcji? Czy może w ogóle lepszy sposób? Dziękuję :)


title: Zezwalaj na anonimowe komentarze, ale zapobiegaj spamowi

text: 1. Captcha, reCapthca i tym podobne mają poważne problemy z użytecznością. I w zasadzie wszystko, co wymaga od użytkownika wypełnienia dodatkowego pola (innego niż komentarz) za każdym razem, gdy użytkownik publikuje komentarz, jest uważane za złą użyteczność. ( **UWAGA:** Mam nadzieję, że zdajesz sobie sprawę, że użytkownik musi tylko raz podać swoje imię i nazwisko oraz adres e-mail, gdy komentuje witrynę, chyba że wyczyści pamięć podręczną.) Tak więc wtyczki takie jak ** Lepszy WordPress reCAPTCHA, WP-reCAPTCHA , Wolny od spamu WordPress** itp., chociaż są bardzo dobrzy w tym, co robią, nie wchodzą w rachubę, biorąc pod uwagę powyższe obawy. 2. Wtyczki takie jak **Bad Behavior, WP-Hashcash Extended** (następca WP-Hashcash), reguły .htaccess zapobiegające rozpoznanym technikom spamowania i botom itp. nie są pozbawione fałszywych alarmów. Czasami wiadomo, że nawet blokują roboty wyszukiwarek pochodzące z nowego zakresu adresów IP. Ponadto, poleganie na JavaScript, aby zasadniczo uwierzytelniać komentarze, nie jest tak naprawdę _świetnym sposobem_, IMO. Tylko mówię. **Z mojego punktu widzenia wszystko sprowadza się do zestawu wtyczek antyspamowych Akismet, Impostercide i Cookies for Comments.** _(AntiSpamBee, Defensio i TypePad AntiSpam, między innymi, mają być alternatywami dla Akismet. nie podoba mi się Akismet, ponieważ pochodzi z firmy, która wierzy w open source, ale nie jest darmowa, wielu z nas nadal przyznaje, że jest prawie żaden.)_ **Więc...** * Co _jeszcze_ powinienem zrobić? (raczej, czy powinienem robić coś innego, co jest bardziej efektywne?) * Czy ktoś próbował ZigTrap? Jak wypada na tle innych? (Zbyt wiele fałszywych alarmów to obciążenie kolejki moderacji/spamu.) **PS:** Jestem pewien, że nie ma rozwiązania „najlepszego dla wszystkich”. Ale pomoże, jeśli będziesz mógł podzielić się tym, co jest dla Ciebie najlepsze. **TLDR:** Jak zapobiec spamowi w komentarzach WordPress bez konieczności ręcznego zatwierdzania lub logowania/rejestracji użytkownika?


title: Wyświetl najgłębszą kategorię dzieci z kategorii X (w pętli)

text: Mam kilka kategorii najwyższego poziomu, w tym „Wiadomości” i „Sport”. Każdy z nich ma wiele poziomów kategorii podrzędnych, jak pokazano poniżej. * **Wiadomości** * Australia * NSW * Sydney * **Sport** * Kolarstwo * Kolarstwo szosowe * BMX * Triathlon W mojej pętli chcę wyświetlić jedną kategorię - **co jest najgłębszą kategorią dla dzieci w „Sport” „**. Znalazłem kod na StackOverflow, który zwraca najgłębszą kategorię podrzędną, ale nie z **konkretnej kategorii**. Zwraca najgłębszą kategorię podrzędną ze _wszystkich_ kategorii najwyższego poziomu. Więc jeśli post jest w dwóch kategoriach (Sydney i Triathlon), kod pokazuje Sydney jako najgłębszą kategorię podrzędną. Muszę jakoś określić, z jakiej kategorii najwyższego poziomu chcę, aby pochodziło najgłębsze dziecko. W tym przypadku byłby to „Sport”, a najgłębszym dzieckiem kota byłby „Triathlon”.


title: pokazywać najczęściej oglądane posty z ostatnich dni według linku?

text: Używam tego linku, aby uzyskać najczęściej oglądane posty: http://mydomain.com/?post_type=movies&meta_key=post_views_count&orderby=meta_value&order=ASC Ale to daje mi WSZYSTKIE posty z tego typu postów w kolejności najczęściej oglądanych - ale chciałbym aby mieć tylko najnowsze najczęściej oglądane posty z tego niestandardowego typu postu, np. 30 dni. Jak sobie z tym poradzić? Dziękuję Ci! OGŁOSZENIE


title: Dlaczego get_post_format() dla "Standard" zwraca puste?

text: Włączyłem niestandardowe typy postów add_theme_support( 'post-formats', array( 'aside', 'link', 'gallery', 'status', 'quote', 'image') ); Domyślnym typem postu jest „Standard” i działa on dla wszystkich typów oprócz „Standard”, kiedy mam standardowy post, zwracana jest wartość „get_post_format()” jako pusta. czy coś mi brakowało w ich umożliwieniu?


title: kategoria i podkategoria eksportu

text: Próbuję wyeksportować określoną kategorię z jej podkategoriami. Jednak opcja eksportu Wordpress pozwala wyeksportować wszystkie kategorie lub wyeksportować jedną konkretną kategorię na raz. Czy jest jakieś rozwiązanie? Dziękuję.


title: Obrazy przesyłane do niewłaściwego folderu

text: Obrazy są przesyłane do /uploads/2010/07 zamiast /uploads/2011/06. Uprawnienia są ustawione na 777 tylko po to, aby dowiedzieć się, czy 755 stanowi problem, a nie jest. Nie mam w Mediach niczego, co mogłoby zdefiniować nową ścieżkę. Po prostu przesyła do najstarszego folderu. To był zrzut XML z innego WP do nowego WP, więc nie jestem pewien, czy ma to z tym coś wspólnego, czy nie. Widzę pliki graficzne w porządku i publikują je w edytorze postów, przechodzą po prostu do najstarszego folderu i nie tworzą automatycznie nowego. Używam najnowszego wp 3.1.3. Mam kilka wtyczek, regenerator miniaturek obrazu to jeden i mam kilka wtyczek do widżetów paska bocznego, ale nic niezwykłego.


title: jakie typy zamówień mogę przekazać do get_posts() przez orderby?

text: Tutaj opisuje funkcję get_posts(). Chciałbym wiedzieć, jakie typy zleceń mogę przekazać do `get_posts`? w WP admin widzę kolejność menu, tytuł, datę, losową i ...


title: Strony internetowe zepsute przez przesłanie skryptu za pomocą edytora motywów

text: Mieliśmy kilka uszkodzonych witryn Wordpress, z których wszystkie miały ten sam wzorzec (przynajmniej tak mówi dziennik surowego dostępu). Z dzienników wynika, że logują się bezpośrednio do Wordpress, a następnie przechodzą do edytora motywów> edytują plik 404.php za pomocą złośliwego kodu, a następnie uruchamiają kod, aby zepsuć witrynę. Oto log (strona zastąpiona przez example.com) 125.167.118.62 - - [01/Aug/2012:14:22:58 +0800] "GET / HTTP/1.1" 200 6318 "-" "Mozilla/5.0 ( Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:23:00 +0800] "GET /wp-content/themes/Wallbase/css/supersized. css HTTP/1.1" 200 2556 "http://example.com/" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14 :23:00 +0800] „GET /wp-content/themes/Wallbase/js/effects.js?ver=3.4.1 HTTP/1.1” 200 890 „http://example.com/” „Mozilla/5.0 ( Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:23:00 +0800] "GET /wp-content/themes/Wallbase/js/superfish.js?ver=3.4.1 HTTP/1.1" 200 3083 "http://example.com/" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/ 12.0" 125.167.118.62 - - [01/Aug/2012:14:23:00 +0800] "GET /wp-content/themes/Wallbase/style.css HTTP/1.1" 200 23095 "http://example.com /" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:23:01 +0800] "GET /wp-content/themes /Wallbase/js/supersized.3.1.3.min.js?ver=3.4.1 HTTP/1.1" 200 11671 "http://example.com/" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko /20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:23:00 +0800] "GET /wp-content/themes/Wallbase/css/prettyphoto.css HTTP/1.1" 200 19697 "http ://example.com/" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:23:01 +0800] "GET /wp-content/themes/Wallbase/js/jquery.prettyPhoto.js?ver=3.4.1 HTTP/1.1” 200 22373 „http://example.com/” „Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:23:02 +0800] "GET /favicon.ico HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:23:00 +0800] "GET /wp-includes/js/jquery/jquery.js?ver =1.7.2 HTTP/1.1" 200 94861 "http://example.com/" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/ 2012:14:23:02 +0800] „GET /wp-login.php HTTP/1.1” 200 2171 „-” „Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0” 125.167.118.62 - - [01/Aug/2012:14:23:04 +0800] „GET /wp-admin/css/colors-fresh.css?ver=3.4.1 HTTP/1.1” 200 36317 „http://przykład. com/wp-login.php" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:23:04 +0800] "POBIERZ /wp-admin/css/wp-admin.css?ver=3.4.1 HTTP/1.1" 200 108246 "http://example.com/wp-login.php" "Mozilla/5.0 (Windows NT 5.1; rv: 12.0) Gecko/20100101 Firefox/12,0"125.167.118.62 - - [01/Aug/2012:14:23:07 +0800] „GET /wp-admin/images/button-grad.png HTTP/1.1” 200 243 „http://example.com/wp -admin/css/colors-fresh.css?ver=3.4.1" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14 :23:07 +0800] „GET /wp-admin/images/wordpress-logo.png?ver=20120216 HTTP/1.1” 200 5048 „http://example.com/wp-admin/css/wp-admin. css?ver=3.4.1" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:24:13 +0800] "POST /wp-login.php HTTP/1.1" 302 - "http://example.com/wp-login.php" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:24:14 +0800] „GET /wp-admin/HTTP/1.1” 200 52163 „http://example.com/wp-login.php” „Mozilla/5.0 ( Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:24:19 +0800] "GET /wp-admin/load-styles.php?c= 1&dir=ltr&load=admin-bar,wp-admin&ver=3.4.1 HTTP/1.1" 200 28480 "http://example.com/wp-admin/" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/ 2012:14:24:20 +0800] „GET /wp-includes/js/thickbox/thickbox.css?ver=3.4.1 HTTP/1.1” 200 3870 „http://example.com/wp-admin/” „Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0” 125.167.118.62 - - [01/Aug/2012:14:24:20 +0800] „GET /wp-admin/css/colors -fresh.css?ver=3.4.1 HTTP/1.1" 304 - "http://example.com/wp-admin/" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:24:20 +0800] „GET /wp-content/themes/Wallbase/images/slide.png HTTP/1.1” 200 198 „http://example.com /wp-admin/" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:24:21 +0800] "GET /wp -admin/load-styles.php?c=1&dir=ltr&load=wp-jquery-ui-dialog&ver=3.4.1 HTTP/1.1" 200 1087 "http://example.com/wp-admin/" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0” 125.167.118.62 — — [01/Aug/2012:14:24:22 +0800] „GET /wp-admin/images/wpspin_light.gif HTTP/1.1” 200 2193 „http://przykład. com/wp-admin/" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:24:24 +0800] "GET / wp-admin/images/media-button.png?ver=20111005 HTTP/1.1" 200 3117 "http://example.com/wp-admin/" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/ 20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:24:20 +0800] "GET /wp-includes/css/editor.css?ver=3.4.1 HTTP/1.1" 200 43861 " http://example.com/wp-admin/" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:24:20 +0800] „GET /wp-admin/load-scripts.php?c=1&load=jquery,utils&ver=3.4.1 HTTP/1.1” 200 37529 „http://example.com/wp-admin/” „Mozilla/ 5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:24:21 +0800] "GET /wp-admin/load-scripts.php? c=1&load=admin-bar,hoverIntent,wspólne,jquery-color,wp-ajax-response,wp-lists,quicktags,jquery-query,komentarze-administratorów,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery- sortowanie w interfejsie użytkownika,skrzynka pocztowa,pulpit nawigacyjny,grube pole,instalacja wtyczki,przesyłanie multimediów,liczba słów,jquery-ui-resizable,jquery-ui-przeciąganie,jquery-ui-button,jquery-ui-position,jquery-ui- dialog,wpdialogs,wplink,wpdialogs-popup&ver=3.4.1 HTTP/1.1" 200 56368 "http://example.com/wp-admin/" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox /12,0" 125.167.118.62 - - [01/Aug/2012:14:24:51 +0800] "GET /wp-includes/images/admin-bar-sprite.png?d=20111130 HTTP/1.1" 200 3999 " http://example.com/wp-admin/load-styles.php?c=1&dir=ltr&load=admin-bar,wp-admin&ver=3.4.1" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko /20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:24:51 +0800] "GET /wp-admin/images/arrows.png HTTP/1.1" 200 494 "http://przykład .com/wp-admin/css/colors-fresh.css?ver=3.4.1" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:24:51 +0800] "GET /wp-admin/images/menu-shadow.png HTTP/1.1" 200 131 "http://example.com /wp-admin/css/colors-fresh.css?ver=3.4.1" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012 :14:24:51 +0800] „GET /wp-admin/images/wp-badge.png?ver=20111120 HTTP/1.1” 200 14352 „http://example.com/wp-admin/load-styles. php?c=1&dir=ltr&load=admin-bar,wp-admin&ver=3.4.1" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/ 2012:14:24:52 +0800] „GET /wp-admin/images/white-grad.png HTTP/1.1” 200 210 „http://example.com/wp-admin/css/colors-fresh.css ?ver=3.4.1" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:24:52 +0800] "GET / wp-admin/images/xit.gif HTTP/1.1" 200 182 "http://example.com/wp-admin/load-styles.php?c=1&dir=ltr&load=admin-bar,wp-admin&ver=3.4. 1" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:24:51 +0800] "GET /wp-admin/images/menu.png?ver=20120201 HTTP/1.1" 200 13585 "http: //example.com/wp-admin/css/colors-fresh.css?ver=3.4.1" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [ 01/Aug/2012:14:24:52 +0800] „GET /wp-includes/js/thickbox/loadingAnimation.gif HTTP/1.1” 200 5886 „http://example.com/wp-admin/” „Mozilla /5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:24:51 +0800] "GET /wp-admin/images/icons32.png ?ver=20111206 HTTP/1.1" 200 13441 "http://example.com/wp-admin/css/colors-fresh.css?ver=3.4.1" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:25:00 +0800] "GET /wp-admin/theme-editor.php HTTP/1.1" 200 47622 "http:// example.com/wp-admin/" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:25:03 +0800] " POBIERZ /wp-admin/css/colors-fresh.css?ver=3.4.1 HTTP/1.1" 304 - "http://example.com/wp-admin/theme-editor.php" "Mozilla/5.0 (Windows NT 5.1; rv :12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:25:04 +0800] "GET /wp-admin/load-scripts.php?c=1&load=admin-bar ,hoverIntent,common,jquery-color&ver=3.4.1 HTTP/1.1" 200 5480 "http://example.com/wp-admin/theme-editor.php" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:25:25 +0800] "POST /wp-admin/theme-editor.php HTTP/1.1" 200 48032 "http:// example.com/wp-admin/theme-editor.php" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:25: 28 +0800] "GET /wp-admin/css/colors-fresh.css?ver=3.4.1 HTTP/1.1" 304 - "http://example.com/wp-admin/theme-editor.php" " Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:25:48 +0800] "GET /wp-admin/theme-editor. php?file=404.php&theme=twentyten HTTP/1.1" 200 26759 "http://example.com/wp-admin/theme-editor.php" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:25:50 +0800] "GET /wp-admin/css/colors-fresh.css?ver=3.4.1 HTTP/1.1" 304 - "http://example.com /wp-admin/theme-editor.php?file=404.php&theme=twentyten" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012 :14:27:20 +0800] „GET /wp-admin/images/button-grad-active.png HTTP/1.1” 200 284 „http://example.com/wp-admin/css/colors-fresh. css?ver=3.4.1" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:27:20 +0800] "POST /wp-admin/theme-editor.php HTTP/1.1” 302 — „http://example.com/wp-admin/theme-editor.php?file=404.php&theme=twentyten” „Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:27:58 +0800] "GET /wp-admin/theme-editor.php?file=404. php&theme=dwadzieścia&scrollto=22492&updated=true HTTP/1.1" 200 151535 "http://example.com/wp-admin/theme-editor.php?file=404.php&theme=twentyten" "Mozilla/5.0 (Windows NT 5.1; rv:12.0 ) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:28:06 +0800] "GET /wp-admin/css/colors-fresh.css?ver=3.4.1 HTTP/ 1.1" 304 - "http://example.com/wp-admin/theme-editor.php?file=404.php&theme=twentyten&scrollto=22492&updated=true" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/ 20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:29:01 +0800] "GET /wp-content/themes/twentyten/404.php HTTP/1.1" 200 39291 "-" "Mozilla /5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:29:04 +0800] "GET /wp-content/themes/twentyten/404 .php?x=img&img=sort_asc HTTP/1.1" 200 85 "http://example.com/wp-content/themes/twentyten/404.php" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/ 20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:29:04 +0800] "GET /wp-content/themes/twentyten/404.php?x=img&img=ext_lnk HTTP/1.1" 200 572 "http://example.com/wp-content/themes/twentyten/404.php" "Mozilla/5.0 (Windows NT 5.1; rv:12.0 ) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:29:04 +0800] "GET /wp-content/themes/twentyten/404.php?x=img&img=small_dir HTTP/ 1.1" 200 498 "http://example.com/wp-content/themes/twentyten/404.php" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:29:04 +0800] „GET /wp-content/themes/twentyten/404.php?x=img&img=ext_diz HTTP/1.1” 200 1034 „http://example.com/ wp-content/themes/twentyten/404.php" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:29:04 + 0800] „GET /wp-content/themes/twentyten/404.php?x=img&img=change HTTP/1.1” 200 290 „http://example.com/wp-content/themes/twentyten/404.php” ” Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:29:04 +0800] "GET/wp-content/themes/twentyten/404.php?x=img&img=ext_php HTTP/1.1” 200 1125 „http://example.com/wp-content/themes/twentyten/404.php” „Mozilla/5.0 ( Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:29:04 +0800] "GET /wp-content/themes/twentyten/404.php? x=img&img=download HTTP/1.1" 200 161 "http://example.com/wp-content/themes/twentyten/404.php" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/ 12.0" 125.167.118.62 - - [01/Aug/2012:14:29:05 +0800] "GET /wp-content/themes/twentyten/404.php?x=img&img=arrow_ltr HTTP/1.1" 200 88 "http ://example.com/wp-content/themes/twentyten/404.php" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012 :14:29:05 +0800] „GET /wp-content/themes/twentyten/404.php?x=img&img=ext_png HTTP/1.1” 200 175 „http://example.com/wp-content/themes/ dwadzieściaten/404.php" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:29:05 +0800] „GET /wp-content/themes/twentyten/404.php?x=img&img=ext_css HTTP/1.1” 200 134 „http://example.com/wp-content/themes /twentyten/404.php" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:29:05 +0800] "GET / wp-content/themes/twentyten/404.php?x=img&img=ext_txt HTTP/1.1” 200 132 „http://example.com/wp-content/themes/twentyten/404.php” „Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:29:29 +0800] "GET /wp-content/themes/twentyten/404.php?x =ls&d=%2Fhome%2Fprzykład%2Fpublic_html%2F&sort=0a HTTP/1.1" 200 27424 "http://przyklad.com/wp-content/themes/twentyten/404.php" "Mozilla/5.0 (Windows NT 5.1; rv :12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:29:31 +0800] "GET /wp-content/themes/twentyten/404.php?x=img&img=ext_htaccess HTTP/1.1" 200 117 "http://example.com/wp-content/themes/twentyten/404.php?x=ls&d=%2Fhome%2Fexample%2Fpublic_html%2F&sort=0a" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:29:32 +0800] "GET /wp-content /themes/twentyten/404.php?x=img&img=ext_html HTTP/1.1" 200 1125 "http://example.com/wp-content/themes/twentyten/404.php?x=ls&d=%2Fhome%2Fexample% 2Fpublic_html%2F&sort=0a" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:30:17 +0800] "GET /wp -content/themes/twentyten/404.php?x=f&f=index.php&ft=edit&d=%2Fhome%2Fprzykład%2Fpublic_html HTTP/1.1" 200 7686 "http://przykład.com/wp-content/themes/twentyten/ 404.php?x=ls&d=%2Fhome%2Fprzykład%2Fpublic_html%2F&sort=0a" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012 :14:30:20 +0800] „GET /wp-content/themes/twentyten/404.php?x=img&img=ext_exe HTTP/1.1” 200 118 „http://example.com/wp-content/themes/ dwadzieściaten/404.php?x=f&f=index.php&ft=edytuj&d=%2Fhome%2Fprzykład%2Fpublic_html” „Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:30:21 +0800] "GET /wp-content/themes/twentyten/404.php?x=img&img= ext_gif HTTP/1.1" 200 175 "http://example.com/wp-content/themes/twentyten/404.php?x=f&f=index.php&ft=edit&d=%2Fhome%2Fexample%2Fpublic_html" "Mozilla/5.0 ( Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:30:21 +0800] "GET /wp-content/themes/twentyten/404.php? x=img&img=ext_ini HTTP/1.1" 200 134 "http://example.com/wp-content/themes/twentyten/404.php?x=f&f=index.php&ft=edit&d=%2Fhome%2Fprzykład%2Fpublic_html" " Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:30:21 +0800] "GET /wp-content/themes/twentyten/ 404.php?x=img&img=ext_rtf HTTP/1.1" 200 164 "http://example.com/wp-content/themes/twentyten/404.php?x=f&f=index.php&ft=edit&d=%2Fhome%2Fprzykład %2Fpublic_html" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 -- [01/Aug/2012:14:31:14 +0800] „POST /wp-content/themes/twentyten/404.php?x=f&f=index.php&ft=edit&d=%2Fhome%2Fprzykład%2Fpublic_html%2F HTTP /1.1" 200 11608 "http://example.com/wp-content/themes/twentyten/404.php?x=f&f=index.php&ft=edit&d=%2Fhome%2Fprzykład%2Fpublic_html" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:33:28 +0800] "GET / HTTP/1.1" 200 3336 "-" "Mozilla/5.0 ( Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" 125.167.118.62 - - [01/Aug/2012:14:34:25 +0800] "GET /wp-content/themes/twentyten/404.php? x=f&f=index.php&ft=edit&d=%2Fhome%2Fprzykład%2Fpublic_html%2F HTTP/1.1" 200 11597 "http://przyklad.com/wp-content/themes/twentyten/404.php?x=f&f=index .php&ft=edit&d=%2Fhome%2Fprzykład%2Fpublic_html" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0" Teraz zdumiewa mnie według logów, że wszyscy oni zalogowali się bezpośrednio do Wordpressa, jakby znali hasło (ponieważ jest tylko włączone)próba logowania w wierszu 16 powyżej). Dzieje się tak nawet w przypadku witryn, które powstały zaledwie jeden dzień temu, a hasła nie są prostymi ABC. Warto również zauważyć, że tylko konta z zainstalowanym Wordpressem zostały zniszczone. Zwykłe witryny zawierające tylko HTML na tym samym serwerze nie zostały uszkodzone. I chociaż możliwe jest, że na stacjach klienckich znajdują się keyloggery, to z pewnością nie ma to sensu, ponieważ haker mógł po prostu użyć cpanela zamiast gongu do wszystkich kłopotów w WP. Biorąc pod uwagę te fakty, w jaki sposób haker może zalogować się do Wordpress i odnieść sukces przy jednej próbie? EDYCJA: Znalazłem to również w dzienniku, ale pochodzi z adresu IP serwera, a nie hakera. Ale co ciekawe, fraza "Alexa Toolbar" jest taka sama jak ten skrypt, który znalazłem: http://pastebin.com/raw.php?i=hcvPE8YV [01/Aug/2012:14:22:47 +0800] " POST /wp-login.php HTTP/1.1" 200 3266 "-" "Mozilla/4.0 (zgodny; MSIE 7.0b; Windows NT 5.1; .NET CLR 1.1.4322; Alexa Toolbar; .NET CLR 2.0.50727)" [ 01/Aug/2012:14:22:48 +0800] "GET /wp-admin/theme-editor.php HTTP/1.1" 302 - "-" "Mozilla/4.0 (zgodna; MSIE 7.0b; Windows NT 5.1; .NET CLR 1.1.4322; Alexa Toolbar; .NET CLR 2.0.50727)" [01/ Sie/2012:14:22:48 +0800] „GET /wp-login.php?redirect_to=http%3A%2F%2Fexample.com%2Fwp-admin%2Ftheme-editor.php&reauth=1 HTTP/1.1” 200 2187 "-" "Mozilla/4.0 (zgodna; MSIE 7.0b; Windows NT 5.1; .NET CLR 1.1.4322; Alexa Toolbar; .NET CLR 2.0.50727)"


title: Dlaczego komunikat „Strony bloga wyświetlają się najwyżej” koliduje z moim niestandardowym wp_query?

text: Jestem bardzo nowy w WordPressie, zwłaszcza jeśli chodzi o tworzenie niestandardowej pętli, jak opisano poniżej. Działa to dobrze, jednak jestem zakłopotany, dlaczego „Strony bloga wyświetlają się najwyżej” (w obszarze Ustawienia > Czytanie) zakłóca zapytanie. W poniższym przykładzie ustawiłem post_per_page na 10. Jeśli pozostawię domyślne ustawienie „Strony bloga wyświetlają co najwyżej” jako 10 postów, będzie działać dobrze, ponieważ oba pasują i poprawnie obliczają strony. Jeśli jednak zmienię „posts_per_page” na 5, dostanę kilka dodatkowych stron do paginacji, które po kliknięciu wyświetlają „nie znaleziono strony”. Czy można zastąpić to ustawienie przez administratora? Myślałem, że utworzenie niestandardowego wp_query i tak zastąpi to. Co ja robię źle? Używam również wp_pagenavi do paginacji, jak widać w poniższym przykładzie, i mam niestandardowy typ wpisu „lista”. Używam WordPressa 3.1.3. <?php $custom_query = new WP_Query( array( 'post_type' => 'listing', 'posts_per_page' => 10, 'paged' => get_query_var('paged') ) ); ?> <?php if ( $custom_query->have_posts() ) : while ( $custom_query->have_posts() ) : $custom_query->the_post(); ?> <div id="post-<?php the_ID(); ?>"> // tu wszystko </div> <?php endwhile; endif; ?> //wp_pagenavi <?php if (function_exists('wp_pagenavi')) { wp_pagenavi( array( 'query' => $custom_query ) ); } ?> <?php wp_reset_postdata(); ?>


title: jak uzyskać oryginalny obraz za pomocą wp_get_attachment_image_src

text: Chcę uzyskać oryginalny obraz o takiej samej szerokości i wysokości, jak przesłany. Mój oryginalny obraz to 630*370. Używając następującego wywołania funkcji otrzymuję miniaturę o rozmiarze 630*198. wp_get_attachment_image_src($PriImgId,array('630','370')); Jak mogę to zdobyć za 630*370


title: Drukuj numer indeksu bieżącego posta w pętli

text: Pracuję na WordPressie, gdzie mam następujący kod, aby uzyskać posty w pętli. <?php $posty = $woo_options['woo_latest_entries']; query_posts('post_type=post&category_name=company'); if ( have_posts() ): while ( have_posts() ): the_post(); $liczba++; ?> /// Treść posta trafia tutaj // <?php endwhile; endif; ? liczba w pętli. Przykład 1. Wpis trafia tutaj .... 2. Inny post jest tutaj przesyłany .... 3. Inny wpis jest tutaj przesyłany .... ..... Jak mogę to osiągnąć ? Dziękuję. **EDYTUJ** Och! Mogę to zrobić w ten sposób .. <?php echo $wp_query->current_post +1; ?> Czy jest jakiś inny / lepszy sposób ?


title: WordPress i Git: Jak Git współdziała z Twoim IDE?

text: Wszyscy mówili mi, że powinienem używać Gita. Nie rozumiem, jak git współdziała z twoim IDE. Powiedzmy, że rozwijam program w programie Dreamweaver i przełączam gałęzie, moje IDE tego nie odzwierciedla, więc jak mogę wyrównać te dwa? Wtyczki? = bardziej skomplikowana niż prosta synchronizacja FTP... A może czegoś mi brakuje?


title: Załącznik WP_Query dodaje dodatkową liczbę załączników i trzeba połączyć załącznik z adresem URL postu

text:
Zastanawiam się tylko po co WP_Query dodaje jeszcze jeden dodatkowy załącznik ze zdefiniowaną liczbą lub postami. Musisz również załączyć załącznik (miniaturę) do adresu URL posta. Oto mój kod <?php $query = new WP_Query( array( 'post_type' => 'news', 'showposts' => 5, 'orderby' => 'rand' ) ); if( $query->have_posts() ){ while($query->have_posts()){ $query->the_post(); $image_query = new WP_Query( array( 'post_type' => 'attachment', 'post_status' => 'dziedzicz', 'post_mime_type' => 'image', 'showposts' => -1, 'post_parent' => get_the_ID( )) ); while( $image_query->have_posts() ) { $image_query->the_post(); echo '
'; echo wp_get_attachment_image( get_the_ID() ); echo '
'; } } } ?>


title: Jak zabezpieczyć części mojego kodu przed modyfikacją TinyMCE podczas przełączania z trybu tekstowego na wizualny?

text:
Mam następujący problem. Kiedy przechodzę z trybu 'tekstowego' na 'wizualny' - TinyMCE automatycznie grzebie w kodzie, robiąc niechciane rzeczy, które psują moją stylizację - niezbyt dobrze ;/. Czy istnieje sposób na automatyczną ochronę części przed modyfikacją przez edytor tekstu? Jakiś krótki kod [dont_touch_my_code] czy coś takiego? To jest mój kod przed: [eo_events numberposts="6" showpastevents="false" event_category=""]

 %start{M}%%start{Y}%
 %start {d}%

 %event_title%
%event_excerpt% %start{H:i}% - %end{H:i}% Uhr %event_venue%

 [/eo_events] A to jest kod po przełączeniu w tryb wizualny i plecy. [eo_events numberposts="6" showpastevents="false" event_category=""]

%start{M}%%start{Y}%%start{d}%

 %event_title%
 %event_excerpt% %start{H:i}% - %end{H:i}% Uhr %event_venue%

 [/eo_events]


title: Jak wyświetlić więcej niż 10 zamówień w widoku zamówienia woocommerce

text: Próbuję uzyskać zamówienia według identyfikatora użytkownika. Próbowałem tego i nie działa. <?php echo do_shortcode("[woocommerce_view_order per_page='20']"); ?> czy jest jakiś sposób na umieszczenie paginacji, aby pokazać całą historię zamówień? Zastanawiam się również, który plik, funkcję muszę zmodyfikować, jeśli chcę dodać przycisk „zobacz więcej” na dole strony zamówienia, po kliknięciu po 10 wyświetla się każdy. możemy pracować nad przyciskiem "zobacz więcej" za pomocą ajax. Dziękuję,


title: Co się dzieje podczas importowania postów do nowej witryny, jeśli plik XML nie ma postmeta na nowym serwerze?

text: Mam kilka eksportów XML z jednej domeny, a wszystkie posty mają postmetę, która już nie istnieje w nowej domenie. Przykładem jest `<wp:post_parent>70</wp:post_parent>` Nowa domena nie ma nadrzędnych postów dla żadnego posta ani strony. Co się stanie, gdy zaimportuję te pliki XML. Czy WordPress będzie importować dane tylko tam, gdzie w nowej domenie istnieje niestandardowe pole lub postmeta dla tego typu wpisu?


title: Zapobiegaj powielaniu załączników podczas korzystania z wp_insert_post

text:
Próbuję użyć `wp_insert_attachment` podczas używania `wp_insert_post`. Pomyślnie tworzy post i załącznik. Nie ma problemu, jeśli używam tylko funkcji `wp_insert_post`, ale kiedy aktywuję `wp_insert_attachemnt`, skrypt tworzy zarówno zduplikowane posty, jak i załączniki 3 razy w stosunku do poprzednio utworzonych postów i załączników. Oto kod **(AKTUALIZACJA)** : add_action('admin_menu', 'awpht_admin_opt'); function awpht_admin_opt() { add_plugins_page('Kontrola AWPHT', 'Automatyczny fotoblog', 'manage_options', 'awpht_option_control', 'awpht_option_control_page'); } function enqueue_awpht_style() { wp_register_style( 'awpht_admin_style', plugins_url('awpht-main.css', __FILE__) ); wp_enqueue_style('awpht_admin_style'); } add_action( 'admin_enqueue_scripts', 'enqueue_awpht_style' ); //Menu administracyjne funkcja awpht_option_control_page() { ?>

Automatyczny fotoblog
 <form method="post" action="">

Kategoria posta 	<input type="text"/>

Stan publikacji	<select name="awpht_post_status"> <option> Opublikuj</option> <option>Szkic</option> </select>

 <input type="submit" name="awpht-create-posts" class="button button -primary button-large" id="awpht-create-posts" value="Utwórz posty"/> </form>
 <?php if (isset($_POST['awpht-create-posts']) ) { //Pobierz ścieżkę folderu obrazów $awphtdir = wp_upload_dir(); $awphtimgdir = $awphtdir['basedir']; $upload_path = $awphtimgdir."/photoblog/"; $awpharritle = tablica(); $awpht_treść = tablica(); $awphtfname = tablica(); $attch_imgurl = tablica(); $attch_title = tablica(); $attch_fname = tablica(); // Pobierz nazwy obrazów z folderu foreach(glob($upload_path."*.*") as $filename){ $attch_fname[] = $awphtdir['basedir']."/attachments/".basename($filename); // Filwname z rozszerzeniem $allfname = basename($filename); $awphtfname[] = $allfname; //Nazwa pliku bez rozszerzenia $awpht_title = preg_replace("/\\.[^.\\s]{3,4}$/", "",basename($filename)); $attch_title[] = $awpht_title; $adspc = array("-", "_", "."); //Tytuł posta $awphttitle = str_replace($adspc, " ", $awpht_title); $awpharritle[] = $awphttitle; //Pobierz adres URL obrazu $awpht_dir = wp_upload_dir(); $awpht_imgurl = $awpht_dir['baseurl'].'/photoblog/'.$allfname; $attch_imgurl[] = $awpht_imgurl; //Zawartość posta $awpht_content[] = ""; } //Utwórz posty z dostępnymi danymi $year = '2014'; $postdate = $postdate = data($rok.'-02-23 18:57:33'); $awpht_length = liczba($awpharritle); for($i=0; $i<$awpht_length; $i++ ) { //Sprawdź, czy post już istnieje/ Zapobiegaj duplikatom if (!get_page_by_title($awpharritle[$i], 'OBJECT', 'post')){ $ awpht_the_posts[$i] = array( 'post_title' => $awpharritle[$i], 'post_content' => $awpht_content{$i}, 'post_date' => $postdate, 'post_status' => 'opublikuj', ' post_autor' => 1, ); // Wstaw post do bazy danych $post_id = wp_insert_post( $awpht_the_posts[$i]); //Ustaw kategorię i tag wp_set_post_terms( $post_id , 2 , 'category' ); wp_set_post_terms( $post_id , 'test, tekst, odtwórz' , 'post_tag' ); //WSTAW ZAŁĄCZNIK $awpht_filetype = wp_check_filetype($awphtfname[$i], null ); $awpht_attachment = array( 'guid' => $attch_imgurl[$i], 'post_mime_type' => $awpht_filetype['type'], 'post_type' => 'attachment', 'post_title' => $attch_title[$i] , 'post_content' => '', 'post_status' => 'dziedziczy' ); $awphtattach_id = wp_insert_attachment( $awpht_attachment, $attch_fname[$i], $post_id ); //Utwórz miniaturę z obrazami o zmienionym rozmiarze require_once(ABSPATH . 'wp-admin/includes/image.php'); $awphtattach_data = wp_generate_attachment_metadata( $awphtattach_id, $attch_fname[$i] ); wp_update_attachment_metadata ($awphtattach_id, $awphtattach_data); // Ustaw wyróżniony obraz set_post_thumbnail( $post_id, $awphtattach_id); //update_post_meta($post_id, '_thumbnail_id', $awphtattach_id); echo get_the_post_thumbnail($post_id, 'thumbnail'); } } } } Moje pytanie: Jak uniemożliwić skryptowi tworzenie duplikatów załączników i postów? Z poważaniem


title: Jak przechowywać niezależne dane z systemu ocen postów?

text:
Poniżej znajduje się kod prostego systemu oceniania postów (tutorial z tej strony TUTORIAL ) - działa dobrze, ale muszę go trochę zmienić. Teraz, gdy użytkownik głosuje, nie może ponownie zagłosować na ten sam post za $timebeforevote (1440 minut). Chcę zablokować głosowanie użytkowników na wszystkie posty, nie tylko na ten. Myślę, że problem polega na tym, że funkcja szuka adresu IP użytkownika w bieżącym polu meta postu z tym kodem: $ meta_IP = get_post_meta ($ post_id, "voted_IP"); $voted_IP = $meta_IP[0]; Zwraca `$voted_IP` i porównuje go z `$ip = $_SERVER['REMOTE_ADDR'];` Próbowałem go zmodyfikować za pomocą zapytania (gdzie zapytanie szuka adresu IP w polu meta dla wszystkich postów), aby szukało adresu IP we wszystkich posty, ale to nie zadziałało. Staram się, żeby to działało przez 2 dni i nic nie działa. KOD SYSTEMU OCENIANIA POST: $timebeforerevote = 1440; add_action ('wp_ajax_nopriv_post-like', 'post_like'); add_action ('wp_ajax_post-like', 'post_like'); wp_enqueue_script('like_post', get_template_directory_uri().'/js/post-like.js', array('jquery'), '1.0', 1 ); wp_localize_script('like_post', 'ajax_var', array( 'url' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('ajax-nonce') )); funkcja post_like() { $nonce = $_POST['nonce']; if ( ! wp_verify_nonce( $nonce, 'ajax-nonce' ) ) die ( 'Busted!'); if(isset($_POST['post_like'])) { $ip = $_SERVER['REMOTE_ADDR']; $post_id = $_POST['post_id']; $meta_IP = get_post_meta($post_id, "voted_IP"); $voted_IP = $meta_IP[0]; if(!is_array($voted_IP)) $voted_IP = array(); $meta_count = get_post_meta($post_id, "votes_count", true); if(!hasAlreadyVoted($post_id)) { $voted_IP[$ip] = time(); update_post_meta($post_id, "voted_IP", $voted_IP); update_post_meta($post_id, "votes_count", ++$meta_count); echo $ licznik_meta; } else echo "już"; }         Wyjście; } function hasAlreadyVoted($post_id) { global $timebeforerevote; $meta_IP = get_post_meta($post_id, "voted_IP"); $voted_IP = $meta_IP[0]; if(!is_array($voted_IP)) $voted_IP = array(); $ip = $_SERVER['ZDALNY_ADDR']; if(in_array($ip, array_keys($voted_IP))) { $time = $voted_IP[$ip]; $teraz = czas(); if(round(($now - $czas) / 60) > $timebeforerevote) return false; zwróć prawdę; } zwróć fałsz; } function getPostLikeLink($post_id) { $themename = "dwadzieścia jedenaście"; $vote_count = get_post_meta($post_id, "votes_count", true); $output = '
'; if ($vote_count == 0) $output .= '0
głosów w rankingu'; else $output .= ''.$vote_count.'
głosów w rankingu'; if(hasAlreadyVoted($post_id)) $output .= ''; else $output .= ' ”; $wyjście .= '
'; zwróć $wyjście; }


title: Pracuj nad plikami motywu na serwerze i podglądzie przeglądarki przed zainstalowaniem

text: Mój znajomy, który ma działającą witrynę Wordpress, kupił nowy motyw. Zanim zamierza go zainstalować i używać, chciałby dostosować style motywu do swojego obecnego projektu strony internetowej. Przesłałem pliki motywów na inny serwer, ponieważ miałem nadzieję, że będę mógł wyświetlić podgląd stron podczas pracy nad CSS, ale to nie działa (puste strony). Czy jest jakaś możliwość pracy nad motywem plików CSS, w tym? podgląd strony bez instalowania nowego motywu?