title: Jak mogę wstawić dodatkową walidację do funkcji walidacji opcji motywu za pomocą add_filter?

text: Używam opcji motywu z motywu podkreślenia (_s) WP jako podstawy dla moich własnych opcji motywu. Gdybym chciał wstawić walidację z dolnej funkcji do tablicy $output górnej funkcji, jak by to zrobić? W tej chwili wydaje mi się, że zastępuję całą tablicę moją walidacją, zamiast dodawać do niej. // domyślna funkcja walidacji wygląda tak, jak ta funkcja theme_options_validate( $input ) { $output = array(); // Standardowa walidacja jest tutaj. Chciałbym dodać walidację w dolnej funkcji do tutaj return apply_filters('theme_options_validate', $output, $input); } // Chcę, aby ta funkcja korzystała z powyższych filtrów apply_filters, abym mógł dodać do walidacji bez edytowania pierwszej funkcji add_validation( $input ) { $output[] = array(); // nie jestem tego pewien, pomyślałem, że mogę dodać do tablicy za pomocą [] // tutaj chcę dodać walidację dla prostego pola o nazwie 'przykład' if ( isset( $input['przykład'] ) && !empty( $input['przykład']) ) $output['przykład'] = wp_filter_nohtml_kses( $input['przykład'] ); // na pewno muszę zwrócić $output return $output; } add_filter( 'theme_options_validate', 'add_validation' );


title: wyświetlaj dane wejściowe użytkownika za pomocą ajax w wordpressie

text:
Chcę wyświetlić dane wejściowe użytkownika z ajax. ale nadal jest wykonywana funkcja **fail** w pliku js. Nie wiem, gdzie może być problem. Przeczytałem http://codex.wordpress.org/AJAX_in_Plugins i zobaczyłem http://pippinsplugins.com/using-ajax-your-plugin-wordpress-admin/ **EDIT** :Dałem `e.preventDefault() ;` na górze kodu jquery w js .Działa (otrzymałem wiadomość z pliku php). ale nie wiem, jak to możliwe, że kod działa dla mnie. mój formularz w głównym pliku

 <form method="post" action="" id="sendformtoDB"> <input type='text' id="text" name="text"/> <input id='send' type='submit' name="wyślij" class="button-primary" value='Prześlij' /> </form>

 * * * w moim konstruktorze add_action add_action('wp_ajax_InsertIntoDB',array($this,'InsertIntoDB')); add_action('wp_ajax_nopriv_InsertIntoDB',array($this,'InsertIntoDB')); * * * Najpierw ładuję bibliotekę jquery i moją publiczną funkcję pliku js load_scripts() { wp_register_script( 'jquery', plugins_url( 'jq/jquery.js', __FILE__)); wp_enqueue_scripts('jquery'); wp_register_script( 'sendToDB', plugins_url('jq/sendToDB.js',__FILE__ ),array( 'jquery' )); wp_enqueue_script('sendToDB'); wp_localize_script( 'sendToDB', 'MyAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php'))); } * * * funkcja publiczna pliku php InsertIntoDB(){ if(isset($_POST['komunikat'])){ $messages=$_POST['wiadomość']; # globalne $wpbdb; /* $wpbdb->insert('wp_userlogin', array( "message"=>$message ), array( '%s' ) );*/ echo "$messages"; } umiera(); } * * * plik js jQuery( dokument ).ready( function($) { $( " #sendformtoDB" ).submit( function() { var text; text = $( "#text" ).val(); konsola .log(tekst); $.ajax({ type: 'POST', url: MyAjax.ajaxurl, data:{"action":'InsertIntoDB',message:text}, success:function(msg){ alert(msg) ; } // $(':input').not(":submit").val(''); }) .fail(function( jqXHR, textStatus ) { alert( "Żądanie nie powiodło się: " + textStatus+jqXHR ) ; }); } ); } );


title: Próba użycia operatorów trójargumentowych z warunkowymi WP

text: Cześć Próbuję użyć operatorów trójskładnikowych z warunkami WordPress, używając poniższego kodu, ale powoduje to błąd PHP, co robię źle? echo is_home() : '1' ? „0”;


title: Wstępne ładowanie obrazu

text: Dlaczego WordPress wstępnie pobiera każdy obraz/ikonę/itd? Przeprowadzając moją stronę przez tester pod adresem http://tools.pingdom.com/, widzę, że pobiera on kilka ikon i plików graficznych, do których na pewno nie ma nawet odniesień na tej stronie. Jakieś pomysły, jak to wyłączyć, aby skrócić czas ładowania strony?


title: przesłane pliki wyświetlają się na tej samej stronie za pomocą programu do przesyłania frontend

text: używam wtyczki frontend uploader do przesyłania treści, niezależnie od tego, jakie pliki przesyłam, treści trafiają na nową stronę. Chcę pokazać link do przesłanego pliku na tej samej stronie po zatwierdzeniu. Z góry dziękuję


title: "jeśli kategoria nadrzędna jest" warunkowa?

text: Przeszukałem kodeks, ale nie znalazłem niczego przydatnego. Wypróbowałem poniższy kod, ale nie zadziałał. Domyślny pasek boczny nadal wyświetla się dla wszystkich stron kategorii. <?php $ep_category = pobierz_kategorię(); if ($ep_category->category_parent == 'watch-isatv') { include ('sidebar-isatv.php'); } else { get_sidebar(); } ?>


title: Dodawanie zmiennej sesji i/lub pliku cookie na podstawie danych wejściowych wybranych przez użytkownika

text: Pracuję nad stroną z ogłoszeniami, która ma niestandardową taksonomię o nazwie „kraje”. W głównym menu nagłówka mam te kategorie pokazujące się na rozwijanej liście poszczególnych krajów, według których ludzie mogą przeglądać witrynę. W jaki sposób zasadniczo sprawiłbym, by tak było, gdy ktoś wybierze swój kraj, ustawi zmienną sesji i/lub plik cookie z ich lokalizacją, a stamtąd każda część witryny, która wyświetla listę, użyje tej wartości w niestandardowym WP_Query tylko do postów zapytań tego konkretnego kraju? Więc ktoś wchodzi na stronę główną, wybiera swój kraj, a następnie strona jest ponownie ładowana z wybranym krajem po każdym kolejnym załadowaniu strony.


title: Jak uzyskać rolę Subskrybuj użytkowników w menu administracyjnym tylko na stronach w Wordpress?

text: Jak uzyskać rolę Subskrybuj użytkowników w menu administracyjnym tylko na stronach w Wordpress, a także przypisać strony tylko do określonego użytkownika, a także uzyskać strony na stronie głównej według identyfikatora użytkownika. Przykład: tutaj link, chcę uzyskać wszystkich użytkowników z listy rozwijanej wybierz tag opcji. w menu Strony -> Dodaj nowy. http://www.domainname.com/wp-admin/post.php?post=21&action=edit tutaj link, chcę wywoływać strony na pierwszych stronach według ID użytkownika. http://www.nazwadomeny.com/


title: dziwny błąd analizy podczas dołączania szablonu pętli w innym szablonie

text: Mam szablon pętli o nazwie `loop-event-details.php`, w którym mam kod do wyświetlenia każdego zdarzenia. Mój szablon strony głównej nazywa się `events-page.php`. Używam następującego kodu, aby dołączyć szablon pętli: get_template_part('loop', 'event-details'); Próbowałem też tego kodu: include(TEMPLATEPATH. '/loop-event-details.php'); Jednak podczas przeglądania strony zawsze skarży się na błąd parsowania: Błąd parsowania: błąd składni, nieoczekiwany T_ENDWHILE w /<my_templatepath>/loop-event-details.php w wierszu 1 `pętla` nie znajduje się w wierszu 1, ale w wierszu 15. Kod w pliku `loop` jest poprawny, ponieważ kiedy kopiuję i wklejam cały kod z pliku `loop` do pliku `page` wszystko działa. Jak tylko próbuję dołączyć go do umowy (`get_template_part()` lub `include()`) to nie działa i zawsze narzeka na wiersz 1. Wszelkie wskazówki i pomoc byłyby bardzo mile widziane. Dzięki, Dasha WP 3.1.0 PHP Wersja 5.2.6-1+lenny9


title: is_single() działa we wtyczce, a nie w motywie?

text: Próbuję przenieść jakiś kod z wtyczki do pliku functions.php mojego motywu, ale kiedy próbuję go zawinąć w otokę is_single() wewnątrz functions.php, nigdy się nie uruchamia. czego mi brakuje? if (is_single()) { echo "Witaj świecie"; } Nie mogę uruchomić echa z żadnej wewnętrznej strony posta. To musi być coś szalenie prostego, co przeoczam.


title: Użyj szablonu strony dla niestandardowej treści $_GET

text:
Mam listę produktów i chcę móc kliknąć link i przejść do strony z dodatkowymi informacjami o produkcie, co mogę zrobić za pomocą programu `$_GET` w następujący sposób: $s .= '
id.'>Szczegóły
'; A potem w `test.php` mam: if (isset($_GET['info'])) { echo 'string'; } Dzięki temu oczywiście otrzymuję pustą stronę z napisem `string`, ale zastanawiałem się, czy byłoby możliwe użycie szablonu strony na tej stronie, więc dostałbym `string` napisany w obszarze szablon strony (np. gdzie otrzymałbym dane wyjściowe, gdybym miał pętlę postu na zwykłej stronie) ?


title: Kiedy kodujesz motyw Wordpress, gdzie kończy się motyw (tj. prezentacja), a zaczyna wtyczka (tj. funkcjonalność)?

text: Najlepszą wskazówką, jaką widziałem, dotyczącą tego, co powinno znaleźć się w motywie, jest umieszczenie „funkcjonalności” we wtyczce. Patrzę na dodanie więcej "funkcji premium", takich jak suwaki obrazu jQuery. Wymaga to zaplecza interfejsu użytkownika do wybierania polecanej zawartości do slajdu. Czy to prezentacja? Co powiesz na skróty? Shortcode to prosty haczyk, który umożliwia wywołanie funkcji PHP poprzez dodanie czegoś takiego jak [shortcode] do posta lub strony. Cały czas widzę to w motywach. Czy to prezentacja? Nie jestem w stanie tego rozwiązać!


title: Użyj metaboxów wewnątrz szablonu strony archiwum dla Woocommerce

text: Tworzę własny motyw Wordpress i staram się, aby był kompatybilny z Woocommerce. Rozumiem prawie wszystko na temat tworzenia motywów woocommerce, w tym kopiowanie plików szablonów i ich zmienianie, a także czuję się komfortowo z niektórymi haczykami Woocommerce. Teraz Woocommerce używa pliku archive-product.php do wyświetlania przedmiotów w sklepie, a także używa do tego strony o nazwie „Sklep”. Problem polega na tym, że nie mogę użyć niestandardowych danych metabox w moim pliku archive-product.php, gdy zapisuję je na stronie „Sklep”. Chcę tylko wiedzieć, czy istnieje możliwość użycia danych metabox w szablonie archiwum, takim jak szablon archive-product.php Woocommerce. Jakieś sugestie? **Edytuj:** Udało mi się więc całkowicie rozwiązać mój problem, używając następującego kodu w załączonym pliku: if( is_shop() ) { $post_id = get_option( 'woocommerce_shop_page_id' );; } else { $post_id = $post->ID; } $meta_key = get_post_meta($post_id, 'meta_key', true);


title: Fragment się nie wyświetla

text: Używam niestandardowej strony głównej szablonu, w której chcę wyświetlić fragment z kategorii, ale nie jest on wyświetlany, ponieważ koduję tylko `the_excerpt`. Ja też mam zamieszanie, mówią, że `the_excerpt` powinien być użyty w pętli. Jaki jest główny powód pętli? Ponieważ po prostu otaczam moje wywołanie `the_excerpt` pętlą, czy jest to poprawne? <div class="summary"> <?php if ( have_posts() ): while ( have_posts() ) : the_post(); ?> <?php the_fragment(); ?> <?php koniec; jeszcze: ?> <?php endif; ?> </div><!--summary-->


title: Formularz rezerwacji wydarzenia dla wordpress

text: Nie mogę znaleźć wtyczki, która pozwoli mi to zrobić: Chcę akceptować rezerwacje wydarzeń na mojej stronie, jak na zrzucie ekranu. Poniżej pól tekstowych zostanie zaprezentowana lista wydarzeń, zielony pokaże wydarzenia z dostępnymi miejscami, czerwony pokaże wyprzedane. Chcę ręcznie ustawić listę wydarzeń i status wolny/wyprzedany w panelu administracyjnym. Wszystkie moje wydarzenia są 3-dniowe, więc ręczne wybieranie okresu za pomocą kalendarza jquery nie jest dla mnie. Chcę tylko listę wydarzeń. Chcę również, aby ta wtyczka pozwalała mi śledzić wszystkie rezerwacje w panelu administracyjnym.


title: Pobierz następny/poprzedni (rodzeństwo) Identyfikator strony nadrzędnej najwyższego poziomu - Wordpress

text: Pytanie: Czy istnieje możliwość uzyskania identyfikatora następnej/poprzedniej strony w wp_nav_menu w wordpressie. Przykład: mam takie menu nawigacyjne Menu_Item_1 (ID = 5) >SubMenu_Item_1-1 >SubMenu_Item_1-2 Menu_Item_2 (ID = 11) >SubMenu_Item_2-1 >SubMenu_Item_2-2 Jeśli jestem w Menu_Item_1 lub na dowolnej z jego stron podrzędnych, Identyfikator następnego elementu menu najwyższego poziomu (w tym przypadku Menu_Item_2) musi być przechowywany w zmiennej i tak dalej.


title: HTML-do-WordPress: Rozwijane menu nawigacyjne

text:
więc szukałem dookoła w nadziei, że ktoś też miał ten problem.. Ale nie mogę znaleźć żadnego. Obecnie stworzyłem dla kogoś szablon Wordpress z zakodowanego na sztywno szablonu HTML. A teraz jest problem... Zakodował już funkcję rozwijania w CSS, więc moim zadaniem było przeniesienie jej do Wordpressa, ale wydaje się, że nie działa to zbyt dobrze. Tak powinno wyglądać (zwróć uwagę, że są trzy wiersze, ponieważ w samym menu są trzy kategorie): ![Tak powinno wyglądać](http://i.stack.imgur.com/4aPwU.jpg ) To jest kod HTML z zakodowanego szablonu;
 Evenementen

 Eventy

 Braderie

 Jaarmarkt

 Bedrijfsfeesten

  Sportfeesten

 Cateringbus

 Filmlocatiebus

 Kinderfeesten

 Schoolfeesten

 Familiedagen

 To, co do tej pory mam, znajduje się w nagłówku. php w tej chwili: <a href="<?php bloginfo('url'); ?>">Strona główna
 <?php wp_nav_menu('title_li=&depth=2'); ?> Functions.php : add_filter( 'wp_nav_menu_objects', 'add_menu_parent_class' ); funkcja add_menu_parent_class( $items ) { $parents = array(); foreach ( $items as $item ) { if ( $item->menu_item_parent && $item->menu_item_parent > 0 ) { $parents[] = $item->menu_item_parent; } } foreach ( $ items as $item ) { if ( in_array ( $item->ID, $parents ) ) { $item->classes[] = 'submenu'; } } return $items;} EDIT: Próbowałem wszystkiego, aby spojrzeć na kodeks wp_nav_menu, ale nie mogę nic z tego zrobić.Ktoś powiedział mi, że nie używam go poprawnie, chodzi o to: Gdzie nie używam go poprawnie?Czy jest w functions.php lub nagłówku .php?Po prostu muszę go przenieść, ponieważ wydaje się to najbezpieczniejsze.Nigdy wcześniej nie robiłem takiego menu rozwijanego, dlatego proszę o naciśnięcie w prawo droga.


title: Przełącz metabox na podstawie wyboru

text:
Czy istnieje sposób na przełączanie niestandardowego metaboksu na podstawie niestandardowego wyboru z listy rozwijanej dla niestandardowego typu postu? Chodzi mi o to, że chciałbym, aby mój niestandardowy post „propozycja” wyświetlał różne metaboksy na podstawie wyboru. Na przykład wybieram Drukuj z listy rozwijanej i wyświetlają się wszystkie moje niestandardowe pola, które są przypisane do drukowania. Kiedy wybieram Witrynę, chcę wyświetlić różne pola, które są przypisane do Witryny. Po wybraniu każdego pola chciałbym, aby poprzednio wybrane pole zostało ukryte. Każdy wybór wyświetli kilka pól. Aby wyświetlić mój niestandardowy post, wpisz $args = array( 'labels' => array( 'name' => __( 'Przegląd propozycji'), 'singular_name' => __( 'Proposal'), 'add_new' => __( 'Dodaj nową propozycję'), 'add_new_item' => __( 'Dodaj nową propozycję'), 'edit_item' => __( 'Edytuj propozycję'), 'new_item' => __( 'Nowa propozycja'), 'all_items' => __( 'Cała propozycja'), 'view_item' => __( 'Wyświetl propozycję'), 'search_items' => __( 'Wyszukaj propozycję'), 'not_found' => __( 'Nie znaleziono propozycji'), 'not_found_in_trash' => __( 'Nie znaleziono propozycji w Koszu'), 'hierarchical' => true, 'parent_item_colon' => '', 'all_items' => __('Proposal') ), 'supports' => array ( 'tytuł','poprawki','komentarze','autor','redaktor' ), 'show_in_menu' => 'edit.php?post_type=client_portal', 'public' => prawda, ); register_post_type( 'Propozycja', $args ); Metaboksy do wyświetlenia do druku (nadal działa na większej liczbie metaboksów) add_filter( 'cmb_meta_boxes', 'cmb_sample_metaboxes' ); function cmb_sample_metaboxes( array $meta_boxes ) { $prefix = '_cmb_'; $meta_boxes['squid_metabox_venders'] = array( 'id' => 'squid_metabox_venders', 'title' => __( 'Informacje o dostawcy', 'cmb' ), 'pages' => array( 'vendors', ), / / Typ posta 'context' => 'normal', 'priority' => 'high', 'show_names' => true, // Pokaż nazwy pól po lewej stronie // 'cmb_styles' => true, // Dodaj CMB do kolejki arkusz stylów na interfejsie 'fields' => array( array( 'name' => __( '
Rozmiar projektu
', 'cmb' ), 'desc' => __( 'Złożony i płaski', 'cmb' ), 'id' => $prefix . 'squid_title', 'type' => 'title', ), array( 'name' => 'Flat', 'desc' => 'opcjonalne', 'id ' => $prefix . 'vendorflat', 'type' => 'text_small' ), array( 'name' => 'Folded', 'desc' => 'opcjonalne', 'id' = > $prefiks . 'vendorfolded', 'type' => 'text_small' ), array( 'name' => __( 'Typ składania', 'cmb' ), 'desc' => __( '', 'cmb' ), 'id ' => $prefix . 'test_select', 'type' => 'select', 'options' => array( 'none' => __( 'Brak', 'cmb' ), 'flat' => __( ' Składanie na płasko', 'cmb' ), 'halfFold' => __( 'Halffold', 'cmb' ), 'zFold' => __( 'Z Fold', 'cmb' ), 'triFold' => __( 'Tri Fold', 'cmb' ), 'gateFold' => __( 'Gate Fold', 'cmb' ), ), ), array( 'name' => __( '
Strony/Papier projektu
', 'cmb' ), 'desc' => __( '', 'cmb' ), 'id' => $prefix . 'squid_title', 'type' => 'title', ), array( ' nazwa' => 'Strony', 'desc' => '', 'id' => $prefiks . 'vendorPages', 'type' => 'text_small' ), array( 'name' => 'Papier', 'desc' => '', 'id' => $prefix . 'vendorPaper', 'type' => 'text_small' ), array( 'name' => 'Color', 'desc' => '', 'id' => $prefix . 'vendorColor', 'type' => 'text_small' ), array( 'name ' => 'Specjalne atramenty', 'desc' => '', 'id' => $prefix . 'vendorInks', 'type' => 'text_small' ), array( 'name' => 'Powłoka', ' desc' => '', 'id' => $prefix . 'vendorCoating', 'type' => 'text_small' ), array( 'name' => 'Turnaround', 'desc' => '', 'id ' => $prefiks .'vendorTurnaround', 'type' => 'tex t' ), array( 'name' => __( '
Specyfikacja faktury
', 'cmb' ), 'desc' => __( 'Numer telefonu, e-mail i adres internetowy', 'cmb ' ), 'id' => $prefiks . 'squid_title', 'type' => 'tytuł', ), ), );


title: katalogi podstawowe / URL

text: Czy istnieje sposób obsługi katalogów bazowych dla taksonomii, które dają wynik 404. Na przykład moje adresy URL to: http://skipology.com/category/... http://skipology.com/app/... ale Taksonomie / katalogi bazowe powyżej dają wynik 404. Czy można je przekierować do strony indeksu taksonomii (którą mogę potrzebować utworzyć) na przykład bez wpływu na katalog podrzędny (post) lub czy jest lepsza opcja. Jeśli tak to jak? Podejrzewam, że odpowiedź tkwi w przekierowaniach, ale nie jestem pewien.


title: Zmiana daty publikacji bez powodowania błędu 404

text: Mamy strukturę permalinków opartą na dacie (np. „www.mysite/2012/05/27/postname”). Czasami pojawiają się posty, które musimy pokazać jako pierwsze, więc zmieniamy ich datę. Problem w tym, że w ten sposób po zmianie daty zmieniany jest również URL, więc stary link powoduje błąd 404. Czy jest jakieś rozwiązanie tego problemu?


title: Prawidłowa składnia do przesyłania plików do niestandardowego katalogu w Wordpress

text: Mam aktualny kod PHP, który działa podczas załączania plików w formularzu. Pliki muszą trafić do określonego katalogu. Wiem, że dołączając w Wordpressie muszę używać innej składni. Jednak od kilku dni czytam dosłownie o tym, jak mogę to zrobić. Ponownie, mój kod działa na samodzielnej stronie PHP, ale nie w Wordpress. Nie martwię się zbytnio o bezpieczeństwo, ponieważ moja strona znajduje się w witrynie intranetowej za zaporą sieciową i nie można się do niej dostać w inny sposób. Widzę kilka samouczków i kod do przesyłania do niestandardowego katalogu w folderze przesyłania WP, ale muszę przesłać do katalogu w katalogu głównym serwera WWW. Oto mój kod aktualnie z samodzielnej strony PHP. $folderPath = "/śledzenie/pliki/standard/{$ID projektu}"; mkdir($ścieżkafolderu); $nazwapliku = nazwa podstawowa($_FILES["Dołącz_pliki"]["nazwa"]); $typ pliku = $_FILES["Dołącz_pliki"]["typ"]; $datei = "/śledzenie/pliki/standard/{$identyfikator projektu}/{$nazwapliku}"; $target_path = $folderPath . „/” . $nazwa pliku; if(move_uploaded_file($_FILES["Attach_Files"]["tmp_name"], $target_path)) { mysql_query("INSERT INTO files(files.name, files.project, files.added, files.datei, files.type, files .folder) VALUES('{$filename}', '{$projID}', UNIX_TIMESTAMP(now()), '{$datei}', '{$filetype}', 0)"); } chmod("{$docelowa_ścieżka}", 0777); Widziałem kodeks na wp_handle_upload, ale nie jestem pewien, czy dotyczy to moich potrzeb. Czuję, że właśnie tego potrzebuję, ale trudno mi znaleźć coś, co pasuje do tego, co próbuję zrobić. W ogóle nie potrzebuję załącznika formularza, aby przejść do Wordpressa. Widziałem ten artykuł, który wydawał się obiecujący, ale nadal przesyła się do umieszczania plików w katalogu WP, a nie na zewnątrz. Próbowałem również użyć tego artykułu jako odniesienia. Moje pytanie brzmi: w jaki sposób mogę mieć jedno pole formularza załącznika w niestandardowym szablonie strony Wordpress, aby podążać za moim bieżącym PHP i przesyłać do niestandardowego katalogu poza WP? Z góry dziękujemy za wszelkie sugestie! **Aktualizacja 12.13.13 Próbowałem użyć site_url, aby ustalić poprawną ścieżkę folderu, ale nadal nie miałem szczęścia. Oto kod, którego próbowałem do tej pory. $folderPath = site_url('/jobtracking/files/standard/{$projID}'); mkdir($ścieżkafolderu); $nazwapliku = nazwa podstawowa($_FILES["Dołącz_pliki"]["nazwa"]); $typ pliku = $_FILES["Dołącz_pliki"]["typ"]; $datei = site_url('/jobtracking/files/standard/{$projID}/{$filename}'); $target_path = $folderPath . „/” . $nazwa pliku; if(move_uploaded_file($_FILES["Attach_Files"]["tmp_name"], $target_path)) { mysql_query("INSERT INTO files(files.name, files.project, files.added, files.datei, files.type, files .folder) VALUES('{$filename}', '{$projID}', UNIX_TIMESTAMP(now()), '{$datei}', '{$filetype}', 0)"); } chmod("{$docelowa_ścieżka}", 0777); **Aktualizacja: 01.31.14 Wygląda na to, że nie dostaję nawet katalogu utworzonego po przesłaniu formularza. Wszystkie foldery są na razie ustawione na 0777, aby upewnić się, że mam wszystkie uprawnienia do odczytu/zapisu, których potrzebuję do mojego testu. Czytałem też o używaniu wp_mkdir_p(); zamiast mkdir(); podczas korzystania z Wordpressa. Nie wiem, czy mogę użyć zmiennej dla ciągu w wp_mkdir_p();. Gdy tylko uda mi się uzyskać katalog do utworzenia i plik do przeniesienia, czuję się, jakbym był w połowie drogi. **Aktualizacja: 02.03.14 $folderPath = ABSPATH . '/śledzenie/pliki/standard/{$projID}'; wp_mkdir_p($ścieżkafolderu, 0777, prawda); $nazwapliku = nazwa bazowa($_FILES['Attach_Files']['nazwa']); $filetype = $_FILES['Attach_Files']['type']; $datai = ABSPATH . 'pliki/standard/{$projID}/{$nazwapliku}'; $target_path = $folderPath . „/” . $nazwa pliku; if(move_uploaded_file($_FILES['Attach_Files']['tmp_name'], $target_path)) { mysql_query("WSTAW DO plików (files.name, files.project, files.user, files.added, files.datei, files .type, files.folder) VALUES('{$filename}', '{$projID}', 0, UNIX_TIMESTAMP(now()), '{$datei}', '{$filetype}', 0)") ; } chmod("{$docelowa_ścieżka}", 0777); **Aktualizacja 02.04.14 - - Tworzy katalog i umieszcza w nim plik. Jednak informacje nadal nie wchodzą do bazy danych. Może nie używam if(); prawidłowo? $folderPath = "/śledzenie/pliki/standard/{$ID projektu}"; mkdir(ABSPATH.$ścieżkafolderu, 0777, prawda); $nazwapliku = nazwa bazowa($_FILES['Attach_Files']['nazwa']); $filetype = $_FILES['Attach_Files']['type']; $datei = 'pliki/standard/{$projID}/{$nazwapliku}'; $target_path = ABSPATH.$folderPath . „/” . $nazwa pliku; if(move_uploaded_file($_FILES['Attach_Files']['tmp_name'], $target_path)) { mysql_query("WSTAW DO plików (files.name, files.project, files.user, files.added, files.datei, files .type, files.folder) VALUES('{$filename}', '{$projID}', 0, UNIX_TIMESTAMP(now()), '{$datei}', '{$filetype}', 0)") ; } chmod("{$docelowa_ścieżka}", 0777); **Aktualizacja 02.04.14 - TO DZIAŁA!!! Oto mój kod: $folderPath = "/jobtracking/files/standard/{$projID}"; mkdir(ABSPATH.$ścieżkafolderu, 0777, prawda); $nazwapliku = nazwa bazowa($_FILES['Attach_Files']['nazwa']); $filetype = $_FILES['Attach_Files']['type']; $datei = "pliki/standard/{$identyfikator projektu}/{$nazwapliku}"; $target_path = ABSPATH.$folderPath . „/” . $nazwa pliku; if(move_uploaded_file($_FILES['Attach_Files']['tmp_name'], $target_path)) { mysql_query("WSTAW DO plików (files.name, files.project, files.user, files.added, files.datei, files .type, files.folder, files.visible) VALUES('{$filename}', '{$projID}', 5, UNIX_TIMESTAMP(now()), '{$datei}', '{$filetype}', 0, ' ')"); } chmod("{$docelowa_ścieżka}", 0777);


title: Edytuj „dziękuję za tworzenie w Wordpress” w wersji 3.3.1

text: Czy istnieje sposób na edycję tekstu „dziękuję za tworzenie w Wordpress” w wersji 3.3.1 na dole CMS? Jeśli tak, jaki plik muszę edytować?


title: Jak mogę zmienić kolejność elementów paska administracyjnego?

text: Mam wtyczkę, która dodaje niestandardowe elementy paska administratora, ale chciałbym, aby pojawiły się po lewej stronie. Wiem, że mogę dodawać i usuwać pozycje menu za pomocą `$wp_admin_bar->add_menu()` itp., ale jak mogę zmienić ich kolejność? Edycja: Wygląda na to, że zamówienia elementów menu paska administratora są zdefiniowane w wp-include/class-wp-admin-bar.php, ale nie mogę zrozumieć, jak zmienić tę kolejność z poziomu mojej funkcji wtyczki. add_action( 'admin_bar_menu', 'wp_admin_bar_sidebar_toggle', 0); add_action( 'admin_bar_menu', 'wp_admin_bar_wp_menu', 10 ); add_action( 'admin_bar_menu', 'wp_admin_bar_my_sites_menu', 20 ); add_action( 'admin_bar_menu', 'wp_admin_bar_site_menu', 30 );


title: Niestandardowe taksonomie użytkownika kończą się niepowodzeniem, gdy rejestruję wiele taksonomii

text:
Mam witrynę z osobami z różnych dziedzin i chcę mieć możliwość grupowania ich według niestandardowych taksonomii. Wziąłem kod samouczka Justina Tadlocksa i działa dobrze, gdy mam zarejestrowaną jedną taksonomię, ale po zarejestrowaniu innej zaczynają się dziwnie zachowywać. Na razie mam taksonomie „Zawód” i „Urząd”. Mam pięć różnych zawodów i ponad 20 biur. Jeśli wybiorę jedną profesję i zapiszę, kolejne dwie mogą zostać sprawdzone, mimo że ich nie sprawdzałem. Oto mój kod. Czy to może być problem, gdy warunki są zapisywane? Czy ma to być jedna funkcja do rządzenia wszystkimi, czy też powinny mieć oddzielne funkcje, jak teraz? **EDYTUJ:** _400 linii kodu to trochę za dużo, przepraszam._ To, co robi, to rejestrowanie dwóch taksonomii, a następnie „powiązywanie” ich ze stronami użytkownika zamiast przyczepiania się do „postów”, które robi przez wartość domyślna, a następnie pomnożona przez dwa. Każda taksonomia ma swoją własną funkcję do wszystkiego. Nie wiem, czy to zadanie zapisywania pól jest źródłem moich problemów, ale wszystko działa dobrze, dopóki nie zapiszę profilu użytkownika. Oto funkcja, która zapisuje pola wyboru. function my_save_user_profession_terms( $user_id ) { $tax = get_taxonomy( 'zawód' ); /* Upewnij się, że bieżący użytkownik może edytować użytkownika i przypisywać terminy przed kontynuowaniem. */ if ( !current_user_can( 'edit_user', $user_id ) && current_user_can( $tax->cap->assign_terms) ) return false; $term = $_POST['zawód'] ; /* Ustawia warunki (używamy tylko jednego terminu) dla użytkownika. */ wp_set_object_terms( $user_id, $term, 'zawód', false); clean_object_term_cache( $user_id, 'zawód' ); } add_action( 'personal_options_update', 'my_save_user_office_terms' ); add_action( 'edit_user_profile_update', 'my_save_user_office_terms' ); A oto jak wypisuję moje terminy jako pola wyboru w adminie: /* Jeśli są jakieś terminy związane z zawodem, przejrzyj je i wyświetl pola wyboru. */ if ( !empty( $terms ) ) { foreach ( $terms as $term ) { ?> <input type="pole wyboru" name="zawód[]" id="zawód-<?php echo esc_attr( $term ->slug ); ?>" value="<?php echo esc_attr( $term->slug ); ?>" <?php sprawdzone( true, is_object_in_term( $user->ID, 'zawód', $term ) ) ; ?> /> <label for="zawód-<?php echo esc_attr( $term->slug ); ?>"><?php echo $term->nazwa; ?>
 <?php } } **Edytuj 2, dodano odpowiedź.**


title: Dodaj nowy post z predefiniowaną / ustaloną datą

text: ## Obecna sytuacja Wtyczka, nad którą aktualnie pracuję, to dodatkowy widok listy postów: Kalendarz, jak widać na poniższym zrzucie ekranu. ![Widok kalendarza administratora](http://i.stack.imgur.com/Nczzv.png) Widok kalendarza administratora z MP6 i szerokością ekranu urządzenia przenośnego. ## Cel Teraz każdy dzień pokazuje tylko ilość postów. > Chcę dodać **link do dodania nowego posta**. Ale ten link powinien > _nie tylko_ przenosić cię do ekranu `~/wp-admin/post-new.php?post_type=abc`, > ale także dodać **predefiniowaną datę postu** \- tę z dnia gdzie > kliknąłeś. ## Możliwe rozwiązania i problemy Do tej pory jest kilka opcji: 1. Zaczep się do publikowania metabox i spróbuj jakoś zmodyfikować datę. 2. Usuń metabox, zrób jego klon i po prostu zastąp datę, aby zaakceptować dane ze zmiennej zapytania (@Rarst idea). 3. Dodaj wersję roboczą z niestandardowym statusem postu i predefiniowaną datą po kliknięciu linku „nowy”, przekieruj do wersji roboczej. Oczyść wersje robocze za pomocą zadania cron wp (@pomysł użytkownika). ## Problemy 1. Podpięcie się pod meta box oznacza dodanie wywołania zwrotnego do filtra `preview_post_link`. Następnie dołączyłbym kolejne wywołanie zwrotne do przechwycenia opcji `gmt_offset` z filtrem `'pre_option_gmt_offset'` tylko po to, aby zmienić obliczenia wykonane wewnątrz `touch_time()` i zwrócić bieżącą datę. Problem polega na tym, że obliczenie to `time() + ($offset * HOURS_IN_SECONDS );`, a jedyną wartością, którą można zmienić, jest `$offset`. 2. Zastąpienie pola meta oznaczałoby śledzenie każdego biletu śledzenia i zmiany rdzenia, a zatem nie byłoby zbyt odporne na przyszłość. 3. Dużo wysiłku, aby dodać wersje robocze, posprzątać je itp. Następnie pojawia się problem, że używanie niestandardowego statusu posta nadal jest polem pełnym pułapek na miny. Każdy pomysł doceniany. Kod, który jeszcze bardziej potwierdza tę koncepcję. Ogłoszę nagrodę, gdy tylko będą jakieś użyteczne wersje robocze jako odpowiedzi.


title: Walidacja formularza przy edycji profilu użytkownika

text: Dodałem niestandardowe pole do profili użytkowników w bbPress, ale nie jestem pewien, jak wykonać walidację formularzy inną niż javascript. Chciałbym przeprowadzić walidację PHP, jednak kilka rzeczy, które wypróbowałem, nie zadziałało. Jeśli nie wprowadzisz adresu e-mail, pojawi się komunikat „BŁĄD: Wprowadź adres e-mail”. po przesłaniu formularza. Chcę czegoś takiego. Próbowałem: $myErrors = new WP_Error(); $myErrors->add('id_error', __('Błąd testu.',"")); bbp_add_error( 'bbp_steamid_invalid', __( 'BŁĄD: Wpisany identyfikator jest nieprawidłowy.', 'bbpress' ) ); Nie jestem zaznajomiony z obsługą błędów zarówno w WordPressie, jak i bbPressie, ale uważam, że jest to konieczne. Każda pomoc byłaby mile widziana.


title: Niestandardowe typy postów: ładne adresy URL wyszukiwania i has_archive

text:
To jest pytanie oparte na komentarzach z odpowiedzi tutaj. Używam następującego kodu do utworzenia kilku różnych pól wyszukiwania dla mojej witryny: <form action="<?php echo home_url( '/glossary/' ); ?>" method="get">
SZUKAJSŁOWNIK
 <input type="text" name="s" value="" /> <input type=" prześlij" value="GO" class="glossary_submit" /> </form> <form id="profilesearch" action="<?php echo home_url( '/species/' ); ?>" method="get"> <input type="text" size="50" class="default-value" value="SEARCH" name="s" /> <input type="submit" value="GO" class="profilesearch_submit" />  <input type="checkbox" name="showthumbnails " id="showthumbnails" class="checkbox" <?php if ($_POST["showthumbnails"] == "on") { echo 'checked="checked" '; } ?>/>UKRYJ MINIATURY </form> Mój CPT „glosariusza” ma następującą kreację `$args`: $args = array( 'labels' => $labels, 'public' => prawda, 'publicly_queryable' => prawda, 'exclude_from_search' => prawda, 'show_ui' => prawda, 'show_in_menu' => prawda, 'query_var' => prawda, 'capability_type' => 'post' , 'has_archive' => false, 'hierarchical' => true, 'menu_position' => 40, 'menu_icon' => $this->plugin_url . 'images/glossary.png', 'supports' => array('title ','edytor', 'miniaturka','atrybuty-strony') ); A mój CPT `gatunku` ma następujące wartości: $args = array( 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => prawda, 'has_archive' => prawda, 'capability_type' => 'post', 'has_archive' => prawda, 'hierarchical' => fałsz, 'menu_position' => 5, 'menu_icon' => $ this->plugin_url .'images/fish20.png', 'supports' => array('author','thumbnail','excerpt','comments','revisions') ); Obecnie, gdy przesyłam wyszukiwanie z formularza glosariusza, adres URL zmienia się na: `/glossary/?s=term`. Gdy przesyłam wyszukiwanie z formularza dotyczącego gatunków, adres URL zmienia się na: `/search/term`. Adres URL glosariusza robi to, co powinien — wyszukuje tylko typy CPT „glosariusz”. Jednak adres URL gatunku po prostu wyszukuje wszystko. **Jeśli zmienię `has_archive` na `false`, wyszukiwania działają zgodnie z powyższym `słowniczek`. Jeśli zmienię to na `true`, wyszukiwania będą działały zgodnie z powyższym `species`.** Chcę, aby obaj zrobiły tak: zmienić adres URL na `/search/cpt-slug/term`, tj. `/search/ gatunek/bettas` i wyszukaj tylko posty z tym CPT. Czy zrobiłem coś złego z moimi `$args`?


title: Generuj wiele adresów URL zapytań o tagi

text: Jak wiemy WordPress obsługuje wiele zapytań o tagi (',' i '+'). Jedyny problem z tym `add_query_arg()` nie obsługuje tych metod, jeśli parametr zapytania już istnieje w adresie URL. Z następującego adresu URL `www.domain.com?post_type=ptype&param=value1 add_query_arg('param', 'value2')` wygeneruje `www.domain.com?post_type=ptype&param=value2` zamiast `www.domain.com ?post_type=ptype&param=value1,value2` lub `value1+value2` Używałbym tylko metody rozdzielanej przecinkami (OR). Czy możesz mi pomóc napisać funkcję, która dodaje dodatkową wartość param obok już istniejącej? może wyrażenia regularne?


title: Wygeneruj listę użytkowników dla każdej witryny, aby przekazać plany uaktualnień

text: Mój zespół odziedziczył dużą instalację sieci WordPress. Aktualizacje muszą zostać uruchomione i musimy poinformować o tym naszych redaktorów i administratorów. Administrator systemu poprosił mnie o listę adresów URL i adresów e-mail dopasowanych do tych adresów URL. Planujemy kontaktować się z nimi w poszczególnych lokalizacjach, aby zarządzać aktualizacją całego systemu. Jaki byłby skuteczny sposób na to? Mogę uzyskać listę e-maili z tabeli `wp_users`. Czy istnieje narzędzie, które już to robi (i prawidłowo)? **Co najważniejsze: jak mogę pogrupować tych użytkowników do ich indywidualnych witryn WP w instalacji sieciowej?** Innymi słowy, jak mogę uzyskać taki raport z poziomu WP-Admin? Mój klient chciałby użyć wtyczki, jeśli to możliwe, aby wygenerować ten raport w interfejsie administratora. strona pierwsza - śmierdzącyPete - bilboBaggins989 strona druga - sallysue997 - billyBob itd.


title: Skopiuj/klonuj/powiąż pole niestandardowe z taksonomią niestandardową

text: Szukam rozwiązania umożliwiającego „klonowanie lub kopiowanie lub kojarzenie” danych pól niestandardowych z taksonomiami niestandardowymi. Przykład: Pole niestandardowe "location" powinno kopiować dane z tego pola do niestandardowej taksonomii "location" Istnieje wtyczka, która konwertuje niestandardowe pola na niestandardowe taksonomie na żądanie, http://wordpress.org/extend/plugins/custom-field -taksonomie/ ale potrzebowałbym jej funkcji w cronie... automatycznie na co dzień.... Liczy się każde rozwiązanie, zaadoptowanie tej wtyczki działa w cronie lub prosty kod do realizacji tej funkcji Dzięki!


title: Jak mogę zmienić adres URL wtyczki?

text: Próbuję użyć wtyczki OTW Portfolio Light i dodaje swój własny bit w adresie URL przed typem posta i nie mogę znaleźć miejsca, w którym można go zmienić. Przejście do strony profilu powoduje wyświetlenie prawidłowego adresu URL: `site.com/portfolio-name` Ale przejście do elementu portfolio zawiera, jak sądzę, niestandardową nazwę posta. Otrzymujesz więc: `site.com/otw-portfolio/portfolio-item` Nie mogę pobrać lub zmienić otw-portfolio z adresu URL. Wsparcie, jak w przypadku większości wtyczek, wydaje się prawie nieistniejące, więc szukam pomocy.


title: Pomóż zrozumieć taksonomię

text: OK, potrzebuję pomocy w zrozumieniu taksonomii. Wiem, czym one są, wiem, jak je wykonać, ale nie wiem, do czego właściwie są dobre. Załóżmy więc, że mam niestandardowy typ wpisu do recenzji gier wideo i chcę oddzielić recenzje według konsoli do gier. Xbox 360, PS3 i WII. Z tego, co rozumiem, byłoby to dobre dla taksonomii. Mogę stworzyć taksonomię o nazwie „Gry wideo” i użyć funkcji hierarchii dla „podkategorii” Xbox 360, PS3 i WII. OK, rozumiem, ale jaka jest różnica między tworzeniem taksonomii a używaniem kategorii i podkategorii? Jakie są zalety taksonomii? Po prostu nie widzę różnicy. Czy ktoś może mi to wyjaśnić?


title: front-end post z wieloma obrazami do przesłania?

text: Używam wpisu frontendowego z obrazem przesyłania, mój kod if (!function_exists('wp_generate_attachment_metadata')){ require_once(ABSPATH . "wp-admin" . '/includes/image.php'); require_once(ABSPATH . "wp-admin" . '/includes/file.php'); require_once(ABSPATH . "wp-admin" . '/includes/media.php'); } if ($_FILES) { foreach ($_FILES as $plik => $tablica) { if ($_FILES[$plik]['błąd'] !== UPLOAD_ERR_OK) { return "błąd przesyłania:" . $_FILES[$plik]['błąd']; } $attach_id = media_handle_upload( $plik, $nowy_post ); } } if ($attach_id > 0){ //i jeśli chcesz ustawić ten obraz jako Post, użyj: update_post_meta($new_post,'_thumbnail_id',$attach_id); } i działa dobrze z przesłaniem jednego obrazu, takiego jak ten <input type="file" id="image" name="image"> ale kiedy zmienię mój html na <input type="file" id="image" name= "image[]" multiple="multiple" > zatrzymaj przesyłanie Czy ktoś może mi pomóc???


title: Powiąż posty z indywidualnym użytkownikiem - ukryj przed innymi użytkownikami

text: Czy WordPress ma jakieś funkcje, które pomogą mi stworzyć system, w którym dane (np. niestandardowe posty) będą powiązane z konkretnym użytkownikiem i (domyślnie) niewidoczne dla żadnego innego użytkownika. Rozejrzałem się i nie widziałem niczego takiego, więc zaczynam podejrzewać, że jest to poza domeną WordPressa, ale pomyślałem, że po prostu zapytam tutaj, aby upewnić się, że nie przegapiłem niczego oczywistego. Nie sprawdziłem w pełni wszystkich możliwości wtyczek członkowskich, ponieważ uważam, że koncentrują się one na umożliwieniu wszystkim (lub warstwowym) treściom zalogowanych członków ... więc mogę się w tym pomylić. To, czego potrzebuję, to coś w rodzaju scenariusza członkostwa, w którym członkowie mogą zobaczyć tylko własne treści, a nie kogokolwiek innego. Czy można zrobić coś takiego za pomocą WordPressa, najlepiej z podstawowymi funkcjami, a jeszcze lepiej z wtyczką. Myślę, że tabela użytkownika nie jest przeznaczona do tego typu aktywności. Znalazłem ten artykuł i wiem, że jest dość stary, ale z tego wynika, że dodawanie nazw użytkowników Twittera i tym podobnych jest na tyle, na ile możemy.


title: Wydrukuj szczegóły profilu jako PDF lub z okna modalnego

text: Udało mi się użyć wtyczki Advance Custom Fields, aby utworzyć więcej pól, których potrzebuję dla każdego nowego użytkownika naszej witryny. To, czego potrzebujemy, to to, że gdy ktoś się zarejestruje, nadal musi mieć możliwość wydrukowania swoich danych, podpisania ich i oddania do agencji nieruchomości. To, czego potrzebuję, to dodać przycisk drukowania obok przycisku Aktualizuj użytkownika, który następnie pobierałby wszystkie szczegóły tej osoby, ładnie go układał i eksportował jako plik PDF, aby ta osoba mogła podpisać i przywrócić. Oto co powinienem rozważyć: * Utwórz nową wtyczkę * Zajrzyj do funkcji get_userdata(), aby pobrać szczegóły. * Dowiedz się, jak podłączyć się do strony użytkownika i dodać przycisk * Dodaj zdarzenie do przycisku, który przekazuje identyfikator użytkownika do funkcji. * Uruchom okno modalne z wyodrębnioną zawartością. * Dodaj przycisk do okna modalnego, aby wydrukować zawartość. Może nawet nie potrzebujesz opcji PDF? Wielkie dzięki


title: Kategoria slug w pętli zawsze taka sama?

text:
Moja struktura kategorii postów jest głęboka na 3 poziomy: * Produkty * Produkty mleczne * Mleko * Czekolada * Sery Chcę pokazać wszystkie posty z kategorii "Produkty mleczne" i dodać odpowiedni ślimak kategorii jako klasę, na przykład - post o nazwie "Cacao Chocolate" ” znajduje się w kategorii Czekolada i chcę, aby zawierała ślimaka „Czekolada”. Poniższym kodem wszystkie moje posty dodane do kategorii "Przetwory mleczne" mają ślimaka "Mleko" - nie ma znaczenia, czy są również w kategorii Mleko, czekolada czy ser. <?php query_posts('kategoria__in=39'); while ( have_posts() ): the_post(); echo '
slug .'" data-filter="'. $kategoria->slug .'">'. get_the_content() .'
'; koniec; // Zresetuj zapytanie wp_reset_query(); ?> Masz pomysł, jak zdobyć ostatnią kategorię wpisu?


title: dodaj akcję tylko po opublikowaniu - nie aktualizuj

text: Mam akcję, która dodaje meta pole z wartością po opublikowaniu. Problem polega na tym, że po aktualizacji pole meta jest resetowane do wartości domyślnej. Próbowałem już „new_to_publish” zamiast „publish_post”, ale to nie działa. add_action('publish_post', 'add_custom_field_automatically'); funkcja add_custom_field_automatically($post_ID) { global $wpdb; if (! wp_is_post_revision ($post_ID)) { update_post_meta ($post_ID, 'votes_count', '0'); } } Nadal nie mogę tego zrobić add_action( 'transition_post_status', 'wpse120996_post_status_publish', 10, 3 ); function wpse120996_post_status_publish( $new_status, $old_status, $post_ID ) { if ( $new_status == 'opublikuj' && $old_status == 'oczekujące' ) { global $wpdb; if (! wp_is_post_revision ($post_ID)) { update_post_meta ($post_ID, 'votes_count', '0'); } }} Jak rozumiem - za każdym razem, gdy status zmienia się z oczekującego na opublikowanie, rób to, co jest w środku. Ale to nie działa. W mojej witrynie mam system oceny postów z metapolem 'votes_count', w którym przechowywane są głosy. Kiedy pytam liczbę głosów od najwyższego do najniższego, nie wyświetla on postów bez głosów, więc muszę wypełnić je domyślną wartością 0, aby uwzględnić je w zapytaniu. Wszystko działa dobrze, ale po aktualizacji głosy są resetowane do 0... Posty są publikowane przez użytkowników ze statusem oczekującym, który sprawdzam i publikuję.


title: Użyj tablicy php poza jego funkcją

text: jakieś pomysły, dlaczego moja funkcja print_r $arr z dużą ilością elementów, ale zachowuje tylko kota i psa, jeśli chodzi o print_r $stack? Muszę mieć $arr używane poza funkcją, function pre_selected_results() { $args = array(...) $the_query = new WP_Query($args); $arr = array("Pies","Kot"); while ($the_query->have_posts()) : $the_query->the_post(); $args = array(...) $results = wp_get_post_terms(get_the_ID(),'type',$args); foreach ($wyniki jako $wynik){ $arr[] = $wynik; } koniec; print_r ($arr); return $arr; };//Koniec funkcji pre_get_results $stack = pre_selected_results(); print_r ($stos); Wielkie dzięki! EDIT : moje $args w przypadku, który pomaga: dla zapytania: $args['tax_query'] = array( 'relation' => 'OR', array( 'taxonomy' => 'category', 'terms' => $ _GET['category'], 'field' => 'slug', ), array( 'taksonomy' => 'genres', 'terms' => $_GET['genre'], 'field' => 'slug' , ), array( 'taksonomia' => 'typy', 'terms' => $_GET['typ'], 'pole' => 'slug', ), ); a dla wp_get_post_term: $args = array('orderby' => 'name', 'order' => 'ASC', 'fields' => 'slugs'); dzięki jeszcze raz


title: wp_localize_script i wp_enqueue_script nie działają w interfejsie użytkownika

text: Oto mój fragment kodu: wp_enqueue_script('ajax-script', get_stylesheet_directory_uri().'/js/myajax.js', array('jquery'), 1.0 ); wp_localize_script( 'ajax-script', 'ajax_object', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) ); Mój problem polega na tym, że kiedy używam tego ajax_object, to nie zadziała. Również plik myajax.js nie zostanie załadowany do serwisu. Ale działa dobrze w panelu administracyjnym. Dlaczego ten skrypt enqueue & localize nie działa w interfejsie użytkownika?


title: Jak sprawdzić, czy akcja wp-admin edytowała plik?

text: Chcę utworzyć małą wtyczkę do automatycznego czyszczenia pamięci podręcznej kodu APC po wykonaniu określonych czynności w interfejsie administratora Wordpress. Jest to konieczne, jeśli m.in. apc.stat jest ustawiony na 0, ponieważ zmiana w pliku nie powoduje zresetowania jego wartości pamięci podręcznej w pamięci podręcznej kodu operacji, a zatem wywołania będą używać starego, zbuforowanego, nieaktualnego pliku. Całkowity koszmar debugowania, jeśli zapomnisz ręcznie wyczyścić pamięć podręczną. **Czy jest prosty sposób na sprawdzenie, czy akcja edytowała/zmieniła plik?** Mogę ręcznie sprawdzić, czy is_admin i POST oraz plik to np. theme-editor.php, ale wydaje się to niezbyt fajnym hackiem, który z pewnością przegapi kilka rzeczy.


title: Jak ma być używany szablon cart.php WooCommerce?

text: Mam świeżą instalację Wordpress 3.5 i WooCommerce 1.6.6 (od teraz WC) i używam domyślnego motywu Twenty Twelve. Dodałem produkt do WC i podczas przeglądania tego produktu i używania wtyczki śledzenia szablonu paska debugowania widzę, że używany jest szablon `woocommerce/templates/single-product.php`. Jeśli jednak przeglądam stronę koszyka, która została automatycznie wygenerowana przez WooCommerce, używa ona szablonu `twentytwelve/page.php`, a nie szablonu `woocommerce/templates/cart/cart.php`, co mnie zaskoczyło. Jestem trochę zdezorientowany tym wynikiem. Czy szablon `cart.php` nie powinien być używany na stronie koszyka? Jeśli nie, do czego służy ten szablon iw jakich okolicznościach jest wykorzystywany przez WC?


title: Taksonomia prerenderowania grawitacyjnego

text: Próbuję wstępnie wypełnić pole kategorii lub rozwijane posty w formularzach grawitacyjnych. Oto co mam: <?php add_filter("gform_pre_render", "gform_prepopluate_populate_books"); //Uwaga: podczas zmiany wartości rozwijanych musimy również użyć gform_admin_pre_render, aby podczas edycji wpisu wyświetlały się właściwe wartości. add_filter("gform_admin_pre_render", "gform_prepopluate_populate_books"); function gform_prepopluate_populate_books($form){ $posttype = 'książki'; $taxtype = 'gatunki'; $formid = 5; $fieldid = 14); //wypełnianie listy rozwijanej tylko dla identyfikatora formularza 5 if($form["id"] != $formid) return $form; //Czytanie postów z kategorii "Biznes"; //$posts = query_posts(array('post_type' => array('post', 'movies'))); // $posts = query_posts( array( 'post_type' => $querytype ) ); $taxonomies=get_taxonomies(array('name' => $taxtype ), 'names'); // if ( have_posts() ): while ( have_posts() ): the_post(); //Tworzenie rozwijanej tablicy elementów. $elementy = tablica(); //Dodanie początkowej pustej wartości. $items[] = array("tekst" => "", "wartość" => ""); //Dodawanie tytułów postów do tablicy items if ( $taxonomies ) { foreach($taxonomies as $taxonomy) { $items[] = array("value" => $taxonomy->slug, "text" => $taxonomy- >nazwisko); } } //Dodawanie elementów do identyfikatora pola 8. Zastąp 8 rzeczywistym identyfikatorem pola. Identyfikator pola można uzyskać, patrząc na nazwę wejściową w znaczniku. foreach($form["pola"] jako &$pole) if($pole["id"] == $fieldid ) { $pole["wybory"] = $items; } } Wygląda na to, że wypełnienie moich wartości taksonomii w menu rozwijanym nie działa. jakieś pomysły?


title: Filtruj terminy taksonomii za pomocą wielu identyfikatorów w edit-tags.php

text: Chcę użyć funkcji wyszukiwania edit-tags.php z identyfikatorami wielu terminów. Na przykład, jeśli wpiszę w polu wyszukiwania coś takiego: #1245 i 6832, powinno wyświetlić te dwa terminy w tabeli wyników (WP_Terms_List_Table). Próbowałem użyć akcji pre_get_posts, aby uzyskać dostęp do zapytania uruchomionego dla wyszukiwania, ale to pokazuje mi tylko "puste" zapytanie: add_action('pre_get_posts', 'filter_terms_by_ids' ); funkcja filter_terms_by_ids ($wp_query) { global $pagenow; if($pagenow == 'edit-tags.php' && $_GET['s']): print_r($wp_query->query_vars); endif; } Moim pomysłem jest sprawdzenie $_GET['s'] i jeśli # jest pierwszym znakiem, mogę zmodyfikować zapytanie, aby zawierało tylko te terminy w wyszukiwaniu: if ('#' == substr($_GET['s '],0,1))


title: WP_ENQUEUE nie działa z Foundation 5 (rozwiązane)

text: **EDYTUJ** : PROSZĘ ZOBACZYĆ MOJĄ ODPOWIEDŹ POMOC PONIŻEJ :) skorzystaj z kodu! Niedawno zacząłem integrować Foundation 5.2.3 z Wordpress 3.9 i mam problemy z inicjalizacją jquery przez wp_enqueue. Style ładują się jednak dobrze. Działający przykład tego, co staram się osiągnąć, można znaleźć tutaj (style i skrypty w header.php i footer.php) functions.php // Skrypty w kolejce require_once('library/enqueue-scripts.php'); Teraz w moim enqueue-scripts.php <?php // funkcja wp_enqueue fundacja_styles fundacja_styles() { // styl wp_enqueue, ponieważ nie trzeba rejestrować linków stylów. wp_enqueue_style( 'reset', get_template_directory_uri() . '/style.css' ); wp_enqueue_style( 'fundament', get_template_directory_uri() . '/css/foundation.css' ); wp_enqueue_style( 'ikony', get_template_directory_uri() . '/font-files/font-icons/foundation-icons.css' ); wp_enqueue_style( 'nprogress', get_template_directory_uri() . '/css/nprogress/nprogress.css' ); wp_enqueue_style( 'zastąpić', get_template_directory_uri() . '/css/project.override.css' ); } // wp_enqueue Foundation_scripts function Foundation_scripts() { // wp_enqueue jqeury wp_enqueue_script('jquery'); // skrypty wp_enqueue wp_enqueue_script( 'modernizer', get_template_directory_uri() . '/js/modernizr-2.5.3.js',null,null, false ); wp_enqueue_script( 'scrollreveal', get_template_directory_uri() . '/js/foundation/foundation.scrollReveal.js',null,null, false ); wp_enqueue_script( 'jquery110', get_template_directory_uri() . '/js/vendor/jquery-1.10.js',null,null, true ); wp_enqueue_script( 'nprogress', get_template_directory_uri() . '/js/foundation/foundation.nprogress.js',null,null, true ); wp_enqueue_script( 'foundationmin', get_template_directory_uri() . '/js/foundation/foundation.min.js',null,null, true ); wp_enqueue_script( 'skrypty fundacji', get_template_directory_uri() . '/js/foundation/foundation.scripts.js',null,null, true ); } add_action( 'wp_enqueue_scripts', 'found_styles' ); add_action( 'wp_enqueue_scripts', 'foundation_scripts' ); ?> Mam swój niestandardowy plik skryptu /js/foundation/foundation.scripts.js inicjujący fundację przez: jQuery(document).foundation(($);W moim header.php mam funkcje title, basic meta i ` wp_head`. Jestem naprawdę zagubiony, dlaczego moje jquery się nie ładuje. Uwaga dodatkowa: jquery 1.10 jest używany TYLKO po to, aby pomóc w pracy npprogress.js.


title: Konflikt logowania za pomocą Ajax i Register Plus Redux: e-mail weryfikacyjny?

text: Czy istnieje sposób na zmuszenie logowania za pomocą Ajax do przestrzegania ustawień weryfikacji poczty e-mail Register Plus Redux? Włączyłem weryfikację e-maili i e-maili jako nazwy użytkownika w Register Plus Redux. Używam logowania za pomocą Ajax do rejestracji/obsługi logowania w ajaxie. Dzięki tej kombinacji tworzona jest zwykła nazwa użytkownika i użytkownik może z niej korzystać. Jednak tymczasowa (oczekująca na weryfikację) nazwa użytkownika nigdy nie jest tworzona, a zatem nowy użytkownik nigdy nie otrzymuje wiadomości e-mail z potwierdzeniem. Tymczasowa nazwa użytkownika jest tworzona (i wysyłany jest e-mail weryfikacyjny), jeśli użytkownik korzysta z własnego formularza rejestracyjnego WP. Używam WP 3.6.1, Register Plus Redux 3.9.10 i Logowanie za pomocą Ajax 3.1.2.


title: Zaawansowane zapytanie taksonomiczne z 3 typami postów

text: Od kilku godzin próbuję wymyślić, jak to zrobić, i ostatecznie uległem proszeniu o pomoc. Mam 3 niestandardowe typy postów, które muszę zapytać o termin o nazwie home, który znajduje się w taksonomii na każdym z nich. mam nadzieję, że jasno określiłem, co chcę osiągnąć, oto kod, którego obecnie używam. <?php $args = array( 'post_type' => array( 'testimonial', 'casestudy', 'post'), 'posts_per_page' => 1, 'tax_query' => array ( 'relation' => 'LUB' , array( 'taxonomy' => 'testimonial_category', 'terms' => 'home' 'field' => 'slug' ), array( 'taxonomy' => 'casestudy_category', 'terms' => 'home' ' field' => 'slug' ), array( 'taksonomia' => 'kategoria', 'terms' => 'home' 'field' => 'slug' ), ) ); $zapytanie = nowe WP_Query( $args ); $liczba poczt = 0; ?> <?php if ($query->have_posts()) : ?> <?php while ($query->have_posts()) : $query->the_post(); ?> <?php $liczba poczt++; ?>


title: Czy można spersonalizować Bibliotekę mediów?

text: Kiedy tworzymy nowy post i klikamy Polecany obraz, zdaję sobie sprawę, że WP tworzy strukturę folderów „rok/miesiąc/obraz.jpg”. Chciałbym zmienić to zachowanie na „category_of_the_post/image.jpg” (lub może „category_of_the_post/year/month/image.jpg”). Powodem jest to, że **Chcę utworzyć inny album dla każdego folderu „category_of_the_post”**. Próbowałem różnych wtyczek, ale **Nie znalazłem żadnej wtyczki umożliwiającej wgrywanie obrazków w tym samym czasie, kiedy tworzymy nowy post** (tak jak wtedy, gdy wgrywamy obrazek funkcji). Może jest jakiś inny sposób na zrobienie tego samego, ale zaczynam od tego pięknego CMS, więc nie widzę różnych możliwości od góry.


title: Włącz nieskończone przewijanie na single.php

text: Mam problem podobny do autora tego wątku: Czy można stronicować na single.php? Próbuję włączyć nieskończone przewijanie na single.php. Do tej pory udało mi się załadować dodatkowy 1 post, gdy dotrę do dołu strony, ale naprawdę chciałbym załadować więcej. Zdiagnozowałem problem na kilka sposobów: 1. Być może oryginalne zapytanie zwraca tylko dwa posty i dlatego więcej się nie pojawia. W takim przypadku, jak rozszerzyć oryginalne zapytanie, aby zawierało więcej postów? Myślę, że ma to coś wspólnego z użyciem pre_get_posts, ale mi się jeszcze nie udało. 2. Być może po wydrukowaniu oryginalnego pojedynczego posta (chcę, aby oryginalny pojedynczy post był pierwszy), mogę nadpisać oryginalne zapytanie. Próbowałem get_posts, nowe WP_Query, query_posts ... ale znowu nie rozumiem ich wystarczająco dobrze (przeczytałem Codex). I chociaż czasami udało mi się wyświetlić więcej niż dwa posty, te posty były zawarte w oryginalnym kodzie HTML, więc funkcja nieskończonego przewijania została pominięta. Czy ktoś może wskazać mi właściwy kierunek? Czy komuś się to udało? Inne posty, które czytałem, powodowały, że ludzie reagowali zdezorientowani, dlaczego ktoś chciałby wielu postów na single.php. Chcę mieć nieskończoną funkcjonalność przewijania na single.php, ponieważ moi goście dość często lądują na jednym poście. W związku z tym chciałbym zoptymalizować tę stronę, zachęcając ich do czytania więcej, umieszczając więcej postów, gdy dotrą do dołu strony. Łapiesz mój dryf? To wszystko może być porażką, ale zespół chce tego spróbować. Dziękuje za przeczytanie. -Miguel


title: Alternatywa dla is_taxonomy() do obejścia domyślnego paska bocznego motywu

text: Mój motyw Wordpress używa kodu w pliku „sidebar.php”, który mówi mu, że niektóre strony powinny zawsze używać domyślnego paska bocznego. To było w porządku, dopóki nie odkryłem, że każda niestandardowa taksonomia (przykład: "taxonomy-mountains.php") domyślnie używa tego domyślnego paska bocznego. Myślałem o złapaniu tego za pomocą `is_taxonomy()`, ale jest to przestarzałe i nie zadziała. Wszyscy lepsi programiści z pomysłem, jak mogę to teraz naprawić. Coś w rodzaju `if(is_taxonomy('mountains')){}` działałoby dobrze. Poniższy kod jest fragmentem, jeśli uważasz, że czegoś brakuje daj mi znać. //Domyślny pasek boczny $selected_sidebar_replacement = 'Widżety paska bocznego'; //Jeśli jest stroną lub pojedynczym if(is_singular()){ global $wp_query; $post = $wp_query->get_queried_object(); $selected_sidebar_replacement = get_post_meta($post->ID, 'sbg_selected_sidebar_replacement', true); //Jeśli wybrano domyślnie if($selected_sidebar_replacement == '0' || $selected_sidebar_replacement == ''){ $selected_sidebar_replacement = 'Widżety paska bocznego'; } // Zresetuj globalną $the_post wp_reset_query(); }


title: Jak wyświetlić pierwszy opublikowany post określonego użytkownika?

text: Szukam sposobu na wyświetlenie pierwszego opublikowanego posta użytkownika przy użyciu jego unikalnego identyfikatora. Mam funkcję, która wywołuje listę konkretnych użytkowników posługujących się ich identyfikatorami i chciałabym wyświetlić datę opublikowania posta przez użytkownika po raz pierwszy. To jest kod, który wstawiłem, jednak komórki zwracają puste, bez błędów PHP w logu. $useremail = $ticket['email']; $user = get_user_by( 'email', $useremail ); $IDużytkownik = $użytkownik->ID; $args = array( 'posts_per_page' => 1, 'post_status' => 'opublikuj', 'autor' => $IDużytkownik, 'orderby' => 'ID', 'zamówienie' => 'ASC', ); $first_post = nowy WP_Query($args); if ($first_post->have_posts()) { $first_post->the_post(); echo the_time('M j, Y'); wp_reset_postdata(); }


title: Wyklucz kategorię z zapytania

text: ## PROBLEM Cześć wszystkim, mam pętlę wp do wyświetlania postów, ale muszę wykluczyć kategorię 81. Próbowałem: **query_posts('cat=-81'); ?>** przed pętlą, ale pagenavi jest zepsuty i nie działa poprawnie. ## KOD <?php if(have_posts()): ?> <ol class="list posts"> <?php $end = array(3,6,9,12,15,18,21,24,27, 30,33,36,39,42,45); $i = 0; while (have_posts()) : the_post(); $i++; globalny $post; ?> ## HEADER Mam to na początku strony - może ma z tym coś wspólnego?: <?php get_header(); globalne $wp_query; $curauth = $wp_query->get_queried_object(); ?>


title: Co jest uważane za domyślne zapytanie dla filtru żądań?

text: Jak stwierdzono w jednej z odpowiedzi w tym pytaniu oraz we wpisie w kodeksie dotyczącym filtra `request`, filtr ten jest wywoływany tylko w domyślnym zapytaniu, takim jak główne zapytanie użyte w pętli. Moje pytanie brzmi, co jeszcze jest lub nie jest uważane za zapytanie domyślne? Czy utworzenie nowego obiektu `WP_Query` byłoby uważane za takie?


title: Jak zmienić tytuł miniatury posta i atrybuty alt na tytuł posta?

text: Czy możemy zmienić atrybuty title i alt atrybutów the_post_thumbnails i ustawić je na tytuł posta ? lubisz tworzyć dla niego funkcję i dodawać filtr ? Próbowałem szukać, ale nie mogę znaleźć tego, czego chcę. iz góry dziękuję.


title: Struktura galerii WordPressa Permalink wyświetla się niepoprawnie

text: Gdy obraz jest dodawany do galerii, wynikowy adres URL załącznika jest zazwyczaj wyświetlany w postaci takiej: **example.com/post-slug/attachment-slug/** Jednak spójrz na moją galerię: http:// /themeforward.com/demo2/?p=2195 i wyświetl obraz. Co może uniemożliwić poprawne wyświetlanie tego ślimaka? Obrazy zostały prawidłowo dołączone do postu.


title: niestandardowa strona kategorii typu post

text: Wygląda na to, że strona archiwum lub strona kategorii nie działają poprawnie. Śledzę http://codex.wordpress.org/Template_Hierarchy#Category_display i nadal domyślnie jest to archive.php (chyba zgodnie z wykresem) mimo że nazwałem go category-business.php oto mój kod: /* ***************** // Biznes ******************/ function my_custom_post_business() { $labels = array( ' name' => _x( 'business', 'nazwa ogólna typu posta' ), 'singular_name' => _x( 'business', 'nazwa typu posta pojedyncza' ), 'add_new' => _x( 'Dodaj nowy', ' książka' ), 'add_new_item' => __( 'Dodaj nową firmę' ), 'edit_item' => __( 'Edytuj firmę' ), 'new_item' => __( 'Nowa firma' ), 'all_items' => __ ( 'Wszystkie firmy' ), 'view_item' => __( 'Wyświetl firmę' ), 'search_items' => __( 'Wyszukaj firmę' ), 'not_found' => __( 'Nie znaleziono firmy' ), 'not_found_in_trash' => __( 'Nie znaleziono firmy w Koszu' ), 'parent_item_colon' => '', 'menu_name' => 'biznes' ); $args = array( 'labels' => $labels, 'description' => 'Przechowuje nasze dane biznesowe i biznesowe', 'public' => true, 'hierarchical' => true, 'show_ui' => true, ' show_in_nav_menus' => true, 'menu_position' => 5, 'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt', 'comments' ), 'has_archive' => true, // 'taksonomie' => array('kategoria'), ); register_post_type( 'biznes', $args ); } add_action( 'init', 'my_custom_post_business' ); /** dodaj kategorie dla niestandardowego typu postu */ add_action( 'init', 'build_taxonomies', 0 ); function build_taxonomies() { register_taxonomy( 'mycategories', 'business', array( 'hierarchical' => true, 'label' => 'Kategorie biznesowe', 'query_var' => true, 'rewrite' => true ) ); }


title: Zezwalaj użytkownikom na przesyłanie plików za pomocą wtyczki

text:
Piszę wtyczkę, w której chcę umożliwić użytkownikom przesłanie pliku .zip. Kiedy klikną przycisk Prześlij, chcę, aby WordPress rozpakował pliki i umieścił je w określonym folderze. Zauważyłem funkcje takie jak unzip_file(); i wp_handle_upload(); , ale nie mogę poprawnie przesyłać i przechowywać żadnych plików. Utworzyłem formularz html z polem wejściowym i przyciskiem prześlij, a po naciśnięciu prześlij wygląda na to, że plik jest przesyłany (widać % rośnie) w 100%, strona odświeża się, ale plik nie jest nigdzie przechowywany. <form id="custom_plugin_form" enctype="multipart/form-data" action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="POST">
 Wybierz niestandardowy pakiet czcionek:
 <input type="file" id="custom_plugin_form_upload_field" name="custom_plugin_form_upload_field">
 uwaga: plik musi być plikiem .zip pobranym z icomoon
 <?php $other_attributes = array('onclick' => 'custom_plugin_upload_files()'); echo submit_button( 'Prześlij', 'podstawowy', '', true, $other_attributes ); ?>
 </form> Po pierwsze, jak przechowywać pliki w określonym folderze? (nie jest to domyślny plik do przesyłania multimediów, może do mojego katalogu głównego wtyczek?) Po uzyskaniu tego, jak uruchomić unzip_file() na przesłanym pliku? Dziękuję


title: Trip Advisor i WordPress

text: Chciałbym, aby w witrynie wyświetlały się recenzje restauracji klienta z serwisu TripAdvisor. Jaki jest najlepszy sposób, aby to zrobić? Jeśli to możliwe, chciałby mieć możliwość sprawdzenia recenzji przed jej opublikowaniem na stronie.


title: Zmień format nazwy pliku zapisanych polecanych obrazów

text: Czy ktoś wie, jak mogę zmienić sposób, w jaki wordpress zapisuje dodatkowe rozmiary obrazu polecanego? W tej chwili mam główny zapis obrazu, taki jak: test_builder_banner_2.jpg, a dla każdego dodatkowego rozmiaru obrazu zapisuje się tak: test_builder_banner-610x260.jpg Jedyne, co chcę zrobić, to pozbyć się „-” między nazwą pliku a rozmiar pliku i zastąp go podkreśleniem. Czy istnieje filtr, którego mogę użyć lub coś w tym rodzaju?


title: Zapytanie Wp z wieloma niestandardowymi tagami (taksonomia) według warunków

text: Muszę wykonać zapytanie wp, które otrzyma dowolny post w niestandardowym typie postu, który ma jedną niestandardową taksonomię (nie hierarchiczną, jak tag postu) lub więcej. Mój obecny kod działa dla jednego tagu, ale próbowałem wielu i nie mogę tego zrobić... Wypróbowałem wiele możliwości, zapytanie według identyfikatora taksonomii itp., nikt dla mnie nie działa. Możesz mi pomóc ? Dziękuję ! Jest mój aktualny kod, praca dla jednego tagu: <?php foreach (get_the_terms( $post->ID, 'tag_blogcom' ) as $term ) {}?> <?php $query = new WP_Query(array( 'post_type' => 'blogcom', 'tag_blogcom' => $term->slug, 'showposts' => 10)); ?>


title: „Zabezpieczanie” obrazów w WordPress

text: Generalnie jestem przeciwny praktyce utrudniania pobierania obrazów na stronach internetowych. Mamy jednak wielu współpracowników fotograficznych, którzy zapewniają nam wyłączny, bezpłatny dostęp do swoich zdjęć. Nie tak dawno miałem instancję strony internetowej wykorzystującej wiele naszych informacji, w tym zdjęcia. Jakie kroki mogę podjąć, aby zabezpieczyć nasze obrazy? Doceniam to, że nigdy nie będzie kuloodporny, ale chciałbym, żeby było choć trochę utrudnione. Znak wodny byłby prawdopodobnie idealny, ale niewiele wiem na ten temat. **EDYTUJ**: Właśnie przyszło mi do głowy, po obejrzeniu filmu demonstracyjnego wtyczki Watermarking, że potrzebuję moich użytkowników, aby mogli doskonale wyświetlić obraz, ale aby można go było pobrać ze znakiem wodnym (tj. Jeśli klikną prawym przyciskiem myszy > zapisz jako). Oczywiście to znacznie komplikuje sprawę i zdaję sobie sprawę, że obrazy będą podatne na zrzuty ekranu i `wget`, ale przynajmniej utrudnię to niektórym niedoszłym złodziejom obrazów. Czy istnieją takie wtyczki lub czy są jakieś wbudowane funkcje WordPressa, które mogą mi pomóc? Z góry dziękuję,


title: Dlaczego wpmu_new_user nie działa z wtyczki, skoro działa z motywu?

text: Oto prosta funkcja testowa, która powinna wysłać wiadomość e-mail (chcę najpierw uruchomić ją, zanim zajmę się inną funkcjonalnością), gdy w instalacji wielostanowiskowej zostanie utworzony nowy użytkownik. Wiadomość e-mail powinna zostać wysłana, gdy użytkownik zarejestruje się z wp-signup.php i kliknie link aktywacyjny w swoim e-mailu. function test_wpmu_new_user( $user_id ) { wp_mail( 'ja@myemail.com', 'Temat', 'Treść'); } add_action( 'wpmu_new_user', 'test_wpmu_new_user' ); **Działa** z pliku functions.php motywu, ale **nie** z prostej wtyczki, która nie zawiera nic więcej. Działa również, gdy zakoduję go na stałe w ms-functions.php, gdzie znajduje się inna funkcja, `newuser_notify_siteadmin`, która również uruchamia się na `wpmu_new_user`. Oczywiście nie chcę tego zakodować na sztywno. I wreszcie, **działa** z tego samego pliku wtyczki, ale tylko wtedy, gdy nowy użytkownik jest tworzony przez superadministratora w WP admin. Potrzebuję go jednak do pracy dla samorejestrującego się użytkownika. Trac stwierdza: > Ta funkcja jest uruchamiana, gdy użytkownik sam się rejestruje, a także gdy superadministrator > tworzy nowego użytkownika. Zaczep do 'wpmu_new_user' dla zdarzeń, które powinny dotyczyć > wszystkich nowych użytkowników, ale tylko w trybie MultiSite (w przeciwnym razie użyj 'user_register'). Czy to sprawa priorytetowa? Czy muszę go ładować na konkretny hak?


title: Jak uzyskać ustawienie strefy czasowej WordPress?

text: Czy ktoś może mi powiedzieć, jak uzyskać strefę czasową ustawioną w panelu administracyjnym WordPressa? Na przykład, jeśli blog jest ustawiony na czas wschodni, potrzebuję tego dokładnego ciągu do wydrukowania: > US/Eastern To jest dla funkcji, która znajduje się w functions.php w moim motywie.


title: Czy wszystkie użyte identyfikatory są unikatowe?

text: Używam wtyczki JSON api do pobierania danych z wordpress do aplikacji, którą tworzę. Potrzebuję unikalnego identyfikatora, aby upewnić się, że nie mam żadnych duplikatów, PODCZAS używania identyfikatora jako sposobu sortowania od najnowszego posta do najstarszego posta. W tej chwili jestem zdezorientowany, ponieważ wyciągam 10 najnowszych postów. Następnie biorę identyfikator i próbuję wejść na example.com/?id=1774, ale nie otrzymuję prawidłowego wpisu. Dostaję inny. Zaczynają mi się kończyć pomysły?


title: Skrypt wp enqueue używający skryptów z cdn z bezpiecznym wywołaniem zwrotnym

text: Chcę dołączyć kilka skryptów i stylów ze zdalnego CDN... w tym przypadku pliki bootstrap i similer, ale chcę zapewnić sieć bezpieczeństwa w formie wywołania zwrotnego w przypadku awarii CDN z jakiegoś powodu... I dodałbym trochę kodu, ale naprawdę nie wiem, jak się do tego zabrać... **Oto przykład zwykłego wp_enqueue_script, którego obecnie używam:** wp_enqueue_script( 'bootstrap', 'http://netdna.bootstrapcdn.com /bootstrap/3.1.1/js/bootstrap.min.js', array('jquery'), 3.3, prawda);


title: wyłącz WooCommerce dla witryny w środowisku wielu witryn

text: Właśnie zainstalowałem P3 (Plugin Performance Profiler) i pokazuje, że subskrypcje WooCommerce i WooCommerce są aktywne na każdej z moich wielu witryn subdomen. Jak wyłączyć wtyczki w poszczególnych witrynach?


title: Posty wyświetlane [...] w nim

text: Widziałem błąd na mojej stronie. Pojawił się zaledwie kilka dni temu i wcześniej nie był obecny, więc podejrzewam, że powodem tego jest aktualizacja wtyczki. Problem polega na tym, że kiedy otwieram post do przeczytania, pokazuje mi "[...]" po około 300 znakach (tylko zgadywanie znaków). Jest to to samo skrócenie, które jest wykonywane na stronie, która pokazuje listę wszystkich artykułów w mojej witrynie. Jak mogę to usunąć? Proszę pomóż mi. Dziękuję


title: Ścisłe standardy Błąd bootstrap navwalker

text:
Mam problem ze zrozumieniem tego błędu i wcześniej się z nim nie spotkałem, czy ktoś mógłby mi pomóc? Ścisłe standardy: Deklaracja wp_bootstrap_navwalker::start_lvl() powinna być zgodna z Walker_Nav_Menu::start_lvl(&$output, $depth = 0, $args = Array) w .../wp-content/themes/flat-portfolio/wp_bootstrap_navwalker .php w wierszu 143 Kod wp_bootstrap_navwalker.php wygląda następująco: <?php /** * Nazwa klasy: wp_bootstrap_navwalker * GitHub URI: https://github.com/twittem/wp-bootstrap-navwalker * Opis: Niestandardowy WordPress klasa nav walker do implementacji stylu nawigacji Twitter Bootstrap 2.3.2 w niestandardowym motywie za pomocą wbudowanego menedżera menu WordPress. * Wersja: 1.4.3 * Autor: Edward McIntyre - @twittem * Licencja: GPL-2.0+ * URI licencji: http://www.gnu.org/licenses/gpl-2.0.txt */ class wp_bootstrap_navwalker extends Walker_Nav_Menu { / ** * @see Walker::start_lvl() * @od 3.0.0 * * @param string $output Przekazywane przez odwołanie. Służy do dołączania dodatkowej treści. * @param int $depth Głębokość strony. Używany do wyściełania. */ function start_lvl( &$output, $depth ) { $indent = str_repeat( "\t", $depth ); $output .= "\n$indent
\n"; } /** * @see Walker::start_el() * @since 3.0.0 * * @param string $output Przekazywane przez odwołanie. Służy do dołączania dodatkowej treści. * @param object $item Obiekt danych pozycji menu. * @param int $depth Głębokość pozycji menu. Używany do wyściełania. * @param int $current_page Identyfikator pozycji menu. * @param object $args */ function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) { global $wp_query; $wcięcie = ( $głębokość ) ? str_repeat( "\t", $depth ): ''; /** * Dzielniki i nagłówki * ================== * Określa, czy element jest dzielnikiem, nagłówkiem, czy zwykłym elementem menu. * Aby zapobiec błędom, używamy funkcji strcasecmp() w celu porównania *, które nie uwzględnia wielkości liter. Funkcja strcasecmp() zwraca 0, jeśli * ciągi są równe. */ if (strcasecmp($item->title, 'divider') == 0) { // Element jest dzielnikiem $output .= $indent . '
'; } else if (strcasecmp($item->title, 'divider-vertical') == 0) { // Element jest pionowym dzielnikiem $output .= $indent . '
'; } else if (strcasecmp($item->title, 'nav-header') == 0) { // Element jest nagłówkiem $output .= $indent . '
' . esc_attr( $item->attr_title ); } else { $nazwy_klasy = $wartość = ''; $klasy = puste( $item->klasy ) ? array() : (tablica) $item->classes; $classes[] = ($item->current) ? 'aktywny' : ''; $classes[] = 'pozycja-menu-' . $pozycja->ID; $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args ) ); if ($args->has_children && $depth > 0) { $class_names .= ' rozwijane podmenu'; } else if($args->has_children && $depth === 0) { $class_names .= ' dropdown'; } $class_names = $class_names ? ' class="' .esc_attr( $class_names ) '"' : ''; $id = apply_filters( 'nav_menu_item_id', 'menu-item-'. $item->ID, $item, $args ); $id = $id ? 'id="' .esc_attr($id) '"' : ''; $wyjście .= $wcięcie . '
'; $atrybuty = ! pusty( $item->target) ? ' target="' .esc_attr( $item->target) .''"' : ''; $atrybuty .= ! pusty( $item->xfn ) ? 'rel="' .esc_attr( $item->xfn) .'"' : ''; $atrybuty .= ! pusty( $item->url ) ? ' href="' .esc_attr( $item->url) .'"' : ''; $attributes .= ($args->has_children) ? ' data-toggle="dropdown" data-target="#" class="dropdown-toggle"' : ''; $item_output = $args->przed; /** * Glyphicons * =========== * Ponieważ pozycja menu NIE jest dzielnikiem ani nagłówkiem, sprawdzamy * czy istnieje wartość we właściwości attr_title. Jeśli właściwość attr_title * NIE jest pusta, stosujemy ją jako nazwę klasy dla glifów. */ if(! empty( $item->attr_title )){ $item_output .= 'attr_title) . '"> '; } else { $item_output .= ''; } $item_output .= $args->link_before . Apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after; $item_output .= ($args->has_children && $głębokość == 0) ? ' ' : ''; $item_output .= $args->po; $wyjście .= zastosuj_filtry( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args ); } } /** * Przemierzaj elementy, aby utworzyć listę z elementów. * * Wyświetl jeden element, jeśli element nie ma dzieci, w przeciwnym razie * wyświetl element i jego dzieci. Przemierzy tylko do maksymalnej * głębokości i nie będzie ignorować elementów poniżej tej głębokości. * * Ta metoda nie powinna być wywoływana bezpośrednio, zamiast tego użyj metody walk(). * * @see Walker::start_el() * @since 2.5.0 * * @param object $element Obiekt danych * @param array $children_elements Lista elementów, które mają być kontynuowane. * @param int $max_depth Maksymalna głębokość do przebycia. * @param int $depth Głębokość bieżącego elementu. * @param array $args * @param string $output Przekazywane przez odwołanie. Służy do dołączania dodatkowej treści. * @return null Null w przypadku niepowodzenia bez zmian parametrów. */ function display_element( $element, &$children_elements, $max_depth, $depth, $args, &$output ) { if ( !$element ) { return; } $id_field = $this->db_fields['id']; //wyświetl ten element if ( is_object( $args[0] ) ) { $args[0]->has_children = ! pusty( $children_elements[$element->$id_field] ); } parent::display_element($element, $children_elements, $max_depth, $depth, $args, $output); } } ?> Dzwonię do walkera, umieszczając następujący kod w moim header.php <?php wp_nav_menu( array( 'menu' => 'top_menu', 'depth' => 2, 'container' => false, 'menu_class' => 'nav', 'fallback_cb' => 'wp_page_menu', //Przetwarzaj menu nawigacyjne za pomocą naszego niestandardowego nav walkera 'walker' => nowy wp_bootstrap_navwalker()) ); ?> i zarejestrowanie funkcji w functions.php: // Zarejestruj Własną Nawigację Walker require_once('wp_bootstrap_navwalker.php');


title: Ścisłe standardy: deklaracja ... powinna być zgodna z

text:
Próbuję tej odpowiedzi i zmieniłem funkcję start_el(&$output, $item, $depth = 0, $args = array() ) { ale to nie zadziałało. Problem w tym, że mam ten motyw, link tutaj. i otrzymuję ten błąd: Strict Standards: Deklaracja description_walker::start_el() powinna być zgodna z Walker_Nav_Menu::start_el(&$output, $item, $depth = 0, $args = Array, $id = 0) w C:\xampp\htdocs\wordpress\wp- content\themes\bismuth\functions.php w wierszu 278 o części functions.php function register_menus() { register_nav_menus( array( 'top-menu' => 'Górny główny menu')                         ); } add_action('init', 'register_menus'); class description_walker extends Walker_Nav_Menu { function start_el(&$output, $item, $depth, $args) { global $wp_query; $wcięcie = ( $głębokość ) ? str_repeat( "\t", $depth ): ''; $nazwy_klasy = $wartość = ''; $klasy = puste( $item->klasy ) ? array() : (tablica) $item->classes; $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) ); $klasy_nazwy = 'klasa="'.esc_attr( $klasy_nazwy) '"'; $wyjście .= $wcięcie . '
ID . '"' . $wartość . $klasy_nazwy .'>'; $atrybuty = ! pusty( $item->attr_title ) ? ' title="' .esc_attr( $item->attr_title) .'"' : ''; $atrybuty .= ! pusty( $item->target) ? ' target="' .esc_attr( $item->target) .''"' : ''; $atrybuty .= ! pusty( $item->xfn ) ? 'rel="' .esc_attr( $item->xfn) .'"' : ''; if($item->object == 'strona') { $varpost = get_post($item->object_id); $attributes .= ' href="' .get_site_url() . '#' .$varpost->post_name .'"'; } else $attributes .= ! pusty( $item->url ) ? ' href="' .esc_attr( $item->url) .'"' : ''; $item_output = $args->przed; $item_output .= ''; $item_output .= $args->link_before . Apply_filters( 'the_title', $item->title, $item->ID ); $item_output .= $args->link_after; $item_output .= ''; $item_output .= $args->po; $wyjście .= zastosuj_filtry( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args ); } } Ktoś, proszę, wie, jak to rozwiązać? Wielkie dzięki!


title: Błąd niestandardowego nav walkera

text:
Używam wordpress 3.9 lokalnie do opracowania nowego motywu dla mojej witryny, jednak otrzymuję te błędy podczas próby użycia niestandardowej funkcji nav walker: Ścisłe standardy: Deklaracja ik_walker::start_lvl() powinna być zgodna z Walker_Nav_Menu:: start_lvl(&$output, $depth = 0, $args = Array) w C:\xampp\htdocs\myproject\wp-content\themes\matt\functions.php w wierszu 111 Ścisłe standardy: Deklaracja ik_walker::end_lvl( ) powinien być kompatybilny z Walker_Nav_Menu::end_lvl(&$output, $depth = 0, $args = Array) w C:\xampp\htdocs\myproject\wp-content\themes\matt\functions.php w wierszu 111 Ścisłe standardy : Deklaracja ik_walker::start_el() powinna być zgodna z Walker_Nav_Menu::start_el(&$output, $item, $depth = 0, $args = Array, $id = 0) w C:\xampp\htdocs\myproject\ wp-content\themes\matt\functions.php on line 111 Mój nav walker: class ik_walker extends Walker_Nav_Menu { function start_lvl(&$output, $depth) { $GLOBALS['ik_walker_counter'] = 0; $output .= ''. '
'; } function end_lvl(&$output, $depth) { $output .= '
'. '<button id="menu" class="menu-button" type="button" role="button" aria-label="Przełączanie menu">'. „”. '</button>'. '
'; } function start_el(&$output, $item, $depth, $args) { global $wp_query; globalny $ik_walker_counter; $wcięcie = ( $głębokość ) ? str_repeat( "\t", $depth ): ''; $nazwy_klasy = $wartość = ''; $klasy = puste( $item->klasy ) ? array() : (tablica) $item->classes; $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) ); $class_names = 'class="'.esc_attr($class_names).'"'; $wyjście .= $wcięcie . '
ID . '"' . $wartość . $klasy_nazwy .'>'; $atrybuty = ! pusty( $item->attr_title ) ? ' title="' .esc_attr( $item->attr_title) .'"' : ''; $atrybuty .= ! pusty( $item->target) ? ' target="' .esc_attr( $item->target) .''"' : ''; $atrybuty .= ! pusty( $item->xfn ) ? 'rel="' .esc_attr( $item->xfn) .'"' : ''; $atrybuty .= ! pusty( $item->url ) ? ' href="' .esc_attr( $item->url) .'"' : ''; $atrybuty .= ' class="c'.(++$ik_walker_counter).''"'; $item_output = $args->przed; $item_output .= ''; $item_output .= $args->link_before . Apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after; if(strlen($item->description)>2){ $item_output .= '
' . $item->opis . ''; } $item_output .= ''; $item_output .= 'my_individual_class.'">'; $item_output .= $args->po; $wyjście .= zastosuj_filtry( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args ); } } Wywołanie nav walkera: <?php wp_nav_menu( array( 'menu' => 'primary-menu' ,'container' => 'nav' ,'container_class' => 'podstrony' ,'depth' => 0 , 'walker' => nowy ik_walker() )); ?> Pomoc byłaby naprawdę mile widziana


title: wyklucz strony w niestandardowym menu

text:
Tworzę niestandardowy motyw dla wordpress, który będzie miał stronę ustawień. dodaję opcję wyłączenia stron z nawigacji, która po prostu będzie działać na id strony oddzielonej "," oto kod, który mam do tej pory:
 <?php $exmenuitems = get_option („exmenuitems”); $recentPosts = nowe WP_Query(); $recentPosts->query (array ( 'post__not_in' => array($exmenuitems), 'post_type' => 'strona', 'showposts' => $menuitems )); while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?> <?php $slug = basename(get_permalink());?>
<a href="#<?php echo $slug; ?>"><?php the_title();?>
 <?php koniec; ?>
 to działa dobrze z wyjątkiem tylko 1 identyfikatora strony. ale kiedy próbuję wykluczyć więcej niż 1 identyfikator, to nie działa, tylko pierwszy identyfikator w wprowadzanym tekście zostanie wykluczony, a drugi pozostanie widoczny. każda pomoc byłaby bardzo mile widziana. Dan


title: Jeśli taksonomia niestandardowa inaczej jest warunkowa

text:
Mam menu, które chcę pokazać tylko na niektórych stronach, używając następującego kodu: <?php if ( is_front_page() || is_archive() || is_404() ) { } else { if ( function_exists('has_parent')) { $id = get_the_ID(); $menu_to_use = get_post_meta($id, 'themestore-meta-menu-name', 1); echo ''; echo '

'; wp_nav_menu( array('menu' => $menu_to_use, 'menu_class' => 'grupa kontenerów nawigacji', 'container' => '' )); echo ''; } } ?> Mam niestandardową taksonomię i typ posta, którego NIE CHCĘ, aby menu pojawiało się na stronach z jednym postem. Wypróbowałem następujące i żadne z nich nie działa: if ( is_front_page() || is_archive() || is_404() || is_singular('tips') ) if ( is_front_page() || is_archive() || is_404( ) || is_tax('wskazówki') ) if ( is_front_page() || is_archive() || is_404() || taksonomia_istnieje('wskazówki') ) if ( is_front_page() || is_archive() || is_404() | | 'tips' == get_post_type() ) if ( is_front_page() || is_archive() || is_404() || is_category('tips')) ) Wypróbowałem obie niestandardowe funkcje z tej odpowiedzi: If is custom post type Wydawałoby się, że jeden z nich powinien działać, ale żaden z nich nie ukrywa menu. czego mi brakuje?


title: Buddypress Dodawanie elementu nawigacyjnego i wywoływanie pól niestandardowych

text: function my_bp_nav_adder() { bp_core_new_nav_item( array( 'name' => __('informacje', 'buddypress'), 'slug' => 'info', 'position' => 15, 'show_for_displayed_user' => true, 'screen_function ' => 'all_conversations_link', 'default_subnav_slug' => 'testowanie', 'item_css_id' => 'wszystkie rozmowy' )); } // Załaduj szablon strony dla swojego niestandardowego elementu. Musisz mieć plik item-one-template.php i item-two-template.php w katalogu głównym motywu. function all_conversations_link () { } add_action( 'bp_setup_nav', 'my_bp_nav_adder' ); Próbuję wyświetlić pewną wartość pól niestandardowych w utworzonej właśnie zakładce zwanej informacją. Stworzyłem niestandardowe pola profilu o nazwie lokalizacja. używając tego kodu pobieram wartość <?php //kod wewnątrz pętli katalogów $location= xprofile_get_field_data( "Osoba kontaktowa" ,bp_get_member_user_id());//pobieram tekst dla lokalizacji echo " $location "; ?


title: Jak połączyć dwie oddzielne kolumny w jedną?

text: W phpmyadminie mam dwie oddzielne kolumny dla szerokości i długości geograficznej. np. łac: '38,897683' lng:'-77.03649'. Te współrzędne są generowane dla moich niestandardowych wpisów lokalizacji. Jak mogę automatycznie scalić je w nową (trzecią) kolumnę, aby mieć wartości w jednym ciągu: '38.897683,-77.03649'. Chciałbym zastosować to zarówno do istniejących, jak i nowych postów, które są tworzone. Dziękuje


title: Zapytanie Wordpress var ładny prefiks adresu URL

text: Chcę dodać niestandardowy parametr zapytania, aby zdefiniować język w wordpressie, ale chcę, aby był on w strukturze permalinka przed wszystkimi innymi zmiennymi, na przykład: site.com/en/page site.com/en/post i dla domyślnego języka: site .com/page site.com/post Czy to możliwe?


title: Podczas próby dodania klas menu pojawia się błąd stripos

text: Używam niestandardowego motywu, który robi coś, co blokuje niestandardowe klasy menu (opcjonalne, które można wprowadzić z panelu menu) do drukowania w formacie HTML. 1. Znalazłem w kodzie, gdzie dodają klasy do znacznika `li`. Próbowałem więc dodać następujący wiersz kodu: `$li->addClass($classes);` Czy byłby to właściwy kod do pobrania pola klasy z panelu menu? Jeśli tak... Zrobiłem to i otrzymałem ten błąd: `Uwaga: stripos() [function.stripos]: needle nie jest łańcuchem ani liczbą całkowitą w pliku-ścieżka/plik.php w wierszu 397` Oto ten blok kodu : (Zauważyłem tuż nad linią ostrzeżenie referenceS) protected static function attrClass($action, DOMNode $węzeł, $klasa) { $classes = $node->getAttribute('class'); /* błąd znaleziony w wierszu poniżej */ $found = stripos($classes, $class) !== false && in_array(strtolower($class), explode(' ', strtolower($classes))); if ($akcja == 'ma') { return $found; } if ($action == 'toggle') { $action = $found ? „usuń” : „dodaj”; } if ($action == 'add' && !$found) { $node->setAttribute('class', trim(preg_replace('/\s{2,}/i', ' ', $classes.' ') .$klasa))); } if ($action == 'remove' && $found) { $classes = trim(preg_replace('/\s{2,}/i', ' ', preg_replace('/(^|\s)'.preg_quote ($klasa, '/').'(?:\s|$)/i', ' ', $klasy))); if ($klasy !== '') { $węzeł->setAttribute('klasa', $klasy); } else { $node->removeAttribute('klasa'); } } return $węzeł; } Nie jestem pewien, co jest nie tak i co muszę zrobić, aby funkcja klasy niestandardowej menu działała. Uwaga: Nadal uczę się wordpress/php, więc jeśli brakuje mi potrzebnych informacji, przepraszam i opublikuję je, jeśli o to poprosisz. Staram się być tak dokładny, jak to tylko możliwe! -edit- Oto blok kodu, w którym próbowałem dodać `$li->addClass($classes);` (tuż to zauważyłem ponownie) class WarpMenuDefault extends WarpMenu { /* Function: process Zwraca: Object */ public function process ($moduł, $element) { self::_process($moduł, $element->first('ul:first')); zwróć $element; } /* Funkcja: _process Zwraca: Void */ chroniona funkcja statyczna _process($moduł, $element, $poziom = 0) { if ($poziom == 0) { $element->attr('class', 'menu ' .$moduł->menu_style); } else { $element->addClass('poziom'.($poziom + 1)); } foreach ($element->children('li') as $li) { // jest aktywny ? if ($active = $li->attr('data-menu-active')) { $active = $active == 2 ? „prąd aktywny” : „aktywny”; } // jest rodzicem ? $ul = $li->dzieci('ul'); $rodzic = $ul->długość ? „rodzic” : null; // ustaw klasę w li $li->attr('class', sprintf('level%d item%s'.$parent.$active, $level + 1, $li->attr('data-id') ,$klasa)); /* Oto wiersz, który dodałem*/ $li->addClass($classes); // ustaw klasę w a/span foreach ($li->children('a,span') as $child) { // pobierz tytuł $title = $child->first('span:first'); // ustaw napisy $subtitle = $title ? explode('||', $title->text()) : array(); if (count($subtitle) == 2) { $li->addClass('hassubtitle'); $title->html(sprintf('%s%s', trim($subtitle[0]), trim( $subtitle[1]))); } // ustaw obraz if ($image = $li->attr('data-menu-image')) { $title->prepend(sprintf(' ', $obraz)); } $child->addClass(sprintf('poziom%d'.$rodzic.$aktywny, $poziom + 1)); } // podmenu procesu if ($ul->length) { self::_process($moduł, $ul->item(0), $poziom + 1); } } } }


title: Zmienić nazwę paska bocznego?

text: Używam motywu potomnego utworzonego z dwudziestu dwunastu motywów, motyw zawiera kilka pasków bocznych, który nazywa się „Główny pasek boczny”. Czy można zmienić jego nazwę na inną?


title: Uruchom krótki kod po naciśnięciu przycisku przesyłania

text: Muszę **wykonać krótki kod po naciśnięciu przez użytkownika przycisku przesyłania**. Używam formularza kontaktowego 7 i wstawiłem formularz za pomocą kodu skróconego w sekcji edycji posta. Jest to w zasadzie formularz zbierający dane i po przesłaniu przekieruję użytkownika do PayPala w nowym oknie. Skrót dla przycisku PayPal działa już samodzielnie. Próbowałem tej funkcji, ale formularz wydaje się zacinać, ikona ładowania jest wyświetlana na zawsze, wiadomość jest dostarczana, ale co najważniejsze, nie wykonuje mojego krótkiego kodu. Nawet prosty „test” echa;`. add_action („wpcf7_mail_sent”, „after_mail_sent”); function after_mail_sent () { echo do_shortcode ('[książka]'); } Jakieś pomysły proszę?


title: Jak poprawnie przetestować metodę, która jest wywoływana przez zaczep akcji?

text: Konstruktor w mojej klasie dodaje akcję do haka akcji 'init': class My_Custom_Post_Type { function __construct( $type ) { $this->type = $type; add_action( 'init', array( $this, 'register_my_type' ); } function register_my_type() { register_post_type( $this->type); } } Próbowałem to przetestować w teście jednostkowym i w końcu zdałem sobie sprawę, że nie ma powód uruchomienia haka akcji „init". Czy istnieje sposób na sprawdzenie, czy metoda register_my_type jest wywoływana i czy rejestrowany jest nowy typ posta? Edycja: Głównym źródłem mojego zamieszania było niezrozumienie relacji między phpunit , zestaw testowy WordPress, mój kod klasy i mój kod testowy. Teraz rozumiem, że przy zainstalowanych narzędziach programistycznych WordPress w sposób sugerowany w tym samouczku lub przez WP-CLI, wywołanie `phpunit` ładuje bootstrap, który następnie podłącza wtyczkę do haka akcji `muplugins_loaded`. Plik bootstrap następnie ładuje środowisko testowe WordPress. Po zakończeniu ładowania WordPressa uruchamiany jest hak `init`. Kod wtyczki korzystający z `init` powinien działać zgodnie z oczekiwaniami. Testy to w większości zwykły kod wykorzystujący dostępne funkcje lub klasy. Różni się od nich tym, że są napisane jako metody klasy, która rozszerza `WP_UnitTestCase`, która rozszerza `PHPUnit_Framework_TestCase`. Umieszczenie w tej klasie daje testom dostęp do asercji i fabryk obiektów oraz uruchamia metody `setUp` i `tearDown`, dzięki czemu każdy test jest niezależny od innych.


title: Zarządzanie zasobami procesora dla załączników zbiorczych Wstaw udostępnianie hosta

text: Stworzyłem stronę na współdzielonym hoście, która przegląda serię postów, a następnie dołącza obrazy do każdego z postów. Obrazy znajdują się już na serwerze i są kopiowane do folderu WP-Content. To 'działa', ale po około 3 iteracji pętli, strona internetowa wyświetla błąd timeoutu i jeśli spojrzę na wykorzystanie procesora serwera, to jest to 100%. Tak więc pytanie (pytania) brzmią: 1) Czy istnieje jakiś rodzaj uogólnionego „zbierania śmieci”, którego powinienem używać po każdej iteracji pętli, aby zapobiec nagromadzeniu procesora/pamięci? 2) Jeśli to się nie uda, czy istnieje narzędzie, którego mogę użyć do profilowania tego, co się dzieje, za pomocą współdzielonego konta hostingowego? Oto kod głównej pętli. Wnętrzności znajdują się w osobnej funkcji „save_post()”, która wywołuje wp_insert_post, a następnie wp_generate_attachment_metadata. Pomyślałem, że zacznę od pytania o -ogólne- zarządzanie pamięcią/zasobami, zanim wejdę z tym w chwasty. Zakładam, że byłoby to o wiele bardziej wydajne, gdybym mógł używać zbiorczych instrukcji SQL zamiast indywidualnych żądań SQL dla każdego wstawienia/załącznika, ale wydaje się, że jest zbyt złożoność tego, co się dzieje, gdy WP tworzy miniatury i przypisuje postmetę, abym chciał rozwiązać ten problem na jednorazowy projekt. ` $args = array('post_type' => 'ims_gallery', 'post_status' => 'draft', 'posts_per_page' => 10); $pwp_query = nowe WP_Query($args); while( $pwp_query->have_posts() ) : $pwp_query->the_post(); $post = get_post(); // var_dump($post); $galeria = $post; $galid = $galeria->ID; $galmeta = get_post_custom( $galid ); $galpath = '/' . przyciąć( $galmeta['_ims_folder_path'][0], '.,/' ); $titlename = preg_replace('/\s+/', '', get_the_title() ); $folder źródłowy = '/home/mójserwer2/public_html/źródło/BieżąceObrazy/' . $nazwa tytułu; echo('Przetwarzanie:' . $folder źródłowy); $destfolder = '/home/myserver2/public_html/myserver.net/wp-content/_imsgalleries/gallery-' . żółtodziób; $_zmieniony_folder docelowy = $folder docelowy . '/_zmiana rozmiaru'; $lista = ''; $files1 = scandir($folder źródłowy); if($files1) { $flist = implode(',', $files1); echo($galpath); // @mkdir( $destfolder, 0751, prawda ); @mkdir( $destfolder, 0751, prawda ); @mkdir( $_resize_destfolder, 0751, prawda ); @shell_exec('cp -a' . $folder źródłowy . '/*' . $destfolder); // kod do generowania załączników jest tutaj. save_post( $galid, $post ); } else echo('Brak plików dla: ' . $folder źródłowy); koniec; ?> `


title: edytuj search.php, aby uwzględnić posty z subdomeny

text: Czy istnieje sposób na edycję pliku search.php, aby uwzględnić subdomeny w wynikach wyszukiwania? Jedyny "warunek" jaki ma kod to... ...i nie mam już nic więcej do zrobienia. =/ I och, chcę uniknąć instalowania wtyczek, więc nie każ mi pobierać i instalować wtyczki Multisite Global Search. Wielkie dzięki~


title: Pobranie pierwszego obrazu dołączonego do posta i użycie go z kolumnami administratora

text: Obecnie korzystam z samouczka @kovshenin na temat dodawania miniatury (polecanego obrazu) do moich kolumn administracyjnych typu post. Czy byłoby możliwe (i jak :) ) najpierw pobrać pierwszy obraz dołączony do posta, jeśli nie jest dostępny polecany obraz? (i być może zwróci lokalny hostowany obraz, jeśli również nie jest dostępny polecany obraz) Oto kod, który obecnie mam: add_action( 'after_setup_theme', 'cor_after_setup_theme' ); function cor_after_setup_theme() { add_image_size( 'edit-screen-thumbnail', 48, 48, true ); } add_filter( 'manage_edit-product_columns', 'cor_add_product_column', 10, 1 ); function cor_add_product_column( $kolumna ) { $kolumna_thumbnail = array( 'thumbnail' => '' ); $kolumna = array_slice( $kolumna, 0, 1, prawda ) + $kolumna_thumbnail + array_slice( $kolumna, 1, NULL, prawda ); zwróć kolumnę $; } add_action( 'manage_posts_custom_column', 'cor_manage_product_column', 10, 1 ); function cor_manage_product_column( $kolumna ) { global $post; switch ( $column ) { case 'thumbnail': echo get_the_post_thumbnail( $post->ID, 'edit-screen-thumbnail' ); przerwanie; } } **Edytuj:** Jak wspomnieliśmy w następnych komentarzach, trochę czasu zajęło rozgryzienie rzeczy :). W końcu, dzięki sugestiom @ifdion, wymyśliłem kolejny wynik: add_action( 'after_setup_theme', 'cor_after_setup_theme' ); function cor_after_setup_theme() { add_image_size( 'edit-screen-thumbnail', 48, 48, true ); } add_filter( 'manage_edit-product_columns', 'cor_add_product_column', 10, 1 ); function cor_add_product_column( $kolumna ) { $kolumna_thumbnail = array( 'thumbnail' => '' ); $kolumna = array_slice( $kolumna, 0, 1, prawda ) + $kolumna_thumbnail + array_slice( $kolumna, 1, NULL, prawda ); zwróć kolumnę $; } add_action( 'manage_posts_custom_column', 'cor_manage_product_column', 10, 1 ); function cor_manage_product_column( $kolumna ) { global $post; $args = array( 'numberposts' => 1, 'post_mime_type' => 'image', 'post_parent' => $post->ID, 'post_type' => 'załącznik', ); $załączniki = get_children( $args ); if ( has_post_thumbnail() ) { echo get_the_post_thumbnail( $post->ID, 'edit-screen-thumbnail' ); } elseif ( $attachments ) { foreach ( $attachments jako $attachment ) { $image_attributes = wp_get_attachment_image_src( $attachment->ID, 'edit-screen-thumbnail' ); echo ''; } } else { echo ''; } } **Kolejna edycja** Nie jestem do końca pewien, czy zostanie pobrany **ostatni** obrazek dołączony do posta, ale tak czy inaczej, ten kod go otrzyma: add_action( 'after_setup_theme', 'cor_after_setup_theme' ); function cor_after_setup_theme() { add_image_size( 'edit-screen-thumbnail', 48, 48, true ); } add_filter( 'manage_edit-product_columns', 'cor_add_product_column', 10, 1 ); function cor_add_product_column( $kolumna ) { $kolumna_thumbnail = array( 'thumbnail' => '' ); $kolumna = array_slice( $kolumna, 0, 1, prawda ) + $kolumna_thumbnail + array_slice( $kolumna, 1, NULL, prawda ); zwróć kolumnę $; } add_action( 'manage_posts_custom_column', 'cor_manage_product_column', 10, 1 ); function cor_manage_product_column( $kolumna ) { global $post; $args = array( 'numberposts' => 1, 'post_mime_type' => 'image', 'post_parent' => $post->ID, 'post_type' => 'attachment', 'post_status' => null, ); $załączniki = get_posts( $args ); if ( has_post_thumbnail() ) { echo get_the_post_thumbnail( $post->ID, 'edit-screen-thumbnail' ); } elseif ( $attachments ) { foreach ( $attachments as $attachment ) { echo wp_get_attachment_image( $attachment->ID, 'edit-screen-thumbnail' ); } } else { echo ''; } }


title: Katalogi statyczne w sieci wielostanowiskowej WordPress

text: Planuję z wyprzedzeniem witrynę klasową, w której uczniowie będą mieli wybór albo zbudować swoje strony od zera, albo użyć instalacji wielostanowiskowej WordPress jako CMS. Chciałbym, aby ich prace miały sportowe adresy URL, takie jak : http:// myschool.edu/2011/project1 ➤ blog WP http:// myschool.edu/2011/project2 ➤ obsługuje pliki przesłane bezpośrednio przez uczniów http:// myschool. edu/2011/project3 ➤ Blog WP I żeby to działało również na przyszłe lata (2012, itd.). Mam przeczucie, że byłoby to możliwe dzięki pewnym regułom przekierowania w konfiguracji Apache. Nawet jeśli będę musiał je napisać ręcznie. Czy ktoś z większym doświadczeniem z funkcją WP Network i ModRewrite może potwierdzić, że jest to możliwe? A może zaproponować zupełnie lepszą alternatywę? Dziękuję!


title: Link do pliku .po w motywie potomnym

text: pracuję w dwudziestu dziesięciu motywach potomnych, chcę zmienić load_theme_textdomain( 'dwadzieścia', TEMPLATEPATH . '/languages' ); $locale = get_locale(); $locale_file = ŚCIEŻKA SZABLONU . "/języki/$locale.php"; if ( is_readable( $locale_file ) ) require_once( $locale_file ); zlokalizuj w dwudziestu funkcjach według tej w moim motywie potomnym: load_theme_textdomain( 'BETA', STYLESHEETPATH . '/languages' ); $locale = get_locale(); $locale_file = ŚCIEŻKA DO STYLU . "/języki/$locale.php"; if ( is_readable( $locale_file ) ) require_once( $locale_file ); Po tej zmianie w ścieżce arkusza stylów funkcja dwadzieścia dziesięć nadal przejmuje moją własną funkcję. Jak mogę to naprawić?


title: Projektowanie niestandardowego archive.php inspirowanego motywem Autofocus

text: Próbowałem użyć strony głównej z motywu Autofocus w innym motywie, kopiując kod z index.php w motywie Autofocus do mojego nowego pliku archive.php. Skopiowałem również powiązane funkcje z functions.php z Autofocus, próbowałem też przenieść część css do nowego motywu. Próbowałem tego przez długi czas i z wieloma poprawkami, ale nie mogę tego zmusić do pracy. Dostaję zarówno obrazy, jak i tekst, ale nie w tym samym stylu, co w motywie Autofokusa, a zdecydowanie nie z przycinaniem autofokusa na przednim ekranie. Czy coś mi umyka? Czy nie powinno zadziałać, jeśli skopiuję cały plik fuctions.php do nowego i skopiuję cały css?


title: Rozszerz opcje ekranu

text: Dostosowuję administratora WP i chcę dodać przycisk przełączania, aby przełączać się między dostosowanym administratorem a domyślnym administratorem. Chciałbym umieścić ten przycisk w rozwijanej karcie Opcje ekranu. Czy jest jakiś sposób na rozszerzenie tego obszaru? W wp-admin/includes/screen.php znalazłem funkcję publiczną render_screen_meta() { i próbowałem skopiować tę funkcję do mojego pliku dashboard.php, który zawiera wszystkie moje dostosowania pulpitu nawigacyjnego jako funkcję render_screen_meta() { i dołączyłem moje zmiany do wartości domyślnych funkcja, ale działa. Nie spowodowało to błędu, ale nie udało się zmienić funkcji. Próbowałem utworzyć go jako funkcję publiczną w moim pliku dashboard.php, ale PHPStorm ciągle wyświetlał mi błąd mówiąc „spodziewane oświadczenie”. Nie jestem za bardzo obeznany z wykorzystaniem public. * * * To, co próbuję zrobić, to utworzyć przycisk, jak pokazano na poniższym zrzucie ekranu: ![tutaj wprowadź opis obrazu](http://i.stack.imgur.com/tLffy.jpg)


title: Jak stronicować wordpress [galeria] shortcode?

text: Używam shortcode galerii wordpress [galeria] Zastanawiałem się, czy istnieje możliwość ich stronicowania bez użycia wtyczki.


title: Lista hierarchicznej listy terminów z liczbą z powiązanym terminem

text: Mam posty niestandardowe (typu post niestandardowy, wps_business), które mają dwie taksonomie (wps_location i wps_type) i chciałbym wymienić wszystkie terminy z typu określonej lokalizacji. Na przykład: * POST 1: King's English Cafe, lokalizacja: Londyn, typ: Restauracja (rodzic), angielski * POST 2: La Madeline, lokalizacja: Paryż, typ Restauracja (rodzic), francuski * POST 3: wuj Julios, lokalizacja: Londyn, typ: Restauracja (nadrzędny), meksykański * POST 4: San Marinos, lokalizacja: Londyn, typ: Restauracja (nadrzędny), włoski * POST 5: Chipotle, lokalizacja: Londyn, typ: Restauracja (nadrzędny), meksykański * POST 6 : Olive Garden, lokalizacja: Londyn, typ: Restauracja (rodzic), włoski * POST 7: Home Depot, lokalizacja: Londyn, typ: Home & Garden (rodzic), [bez dziecka] * POST 8: Lowe's, lokalizacja: Londyn , typ: Dom i ogród (rodzic), [bez dziecka] * POST 9: Samochód Franka, lokalizacja: Londyn, typ: Lokalny (rodzic), Mechanik * POST 10: Samochód Smitha, lokalizacja: Londyn, typ: Lokalny (rodzic) ), Mechanik * POST 11: King's Bank, lokalizacja: Londyn, typ: Lokalny (rodzic), Bank ..etc.. Więc to, co chciałbym mieć to wyświetlanie na stronie lokalizacji Londyn to tylko lista terminów z typu które mają posty aso kojarzony z lokalizacją Londyn (taksonomia: lokalizacja). Więc... Dom i ogród (2) Lokalny (3) * Mechanik (2) * Bank (1) Restauracja (5) * Angielski (1) * Meksykański (2) * Włoski (2) Myślałem, że muszę dostosuj klasę Walker_Category; jednak uważam, że może być potrzebne bardziej złożone zapytanie. Wolałbym nie pobierać wszystkich postów i przechodzić między nimi, aby to utworzyć. Propozycje? Czy istnieje SQL, który je pobierze?