title: Gdzie hakerzy zwykle uruchamiają swój skrypt hakerski?

text: Tak więc w moim dążeniu do rozwiązania tej zagadki znalazłem skrypt, który może być podobny do tego używanego do niszczenia naszych stron: http://pastebin.com/raw.php?i=hcvPE8YV Teraz moje pytanie brzmi, gdzie zwykle działają ten? Czy uruchamiają go na zhakowanym serwerze lub na własnych komputerach?


title: Powiązanie niestandardowej pozycji podmenu z typem wpisu pozycji menu najwyższego poziomu

text: Pracuję nad wtyczką, która ustawia strony podmenu menu administratora na wszystkich różnych typach postów. Muszę być w stanie powiązać te nowe strony podmenu z odpowiednim typem posta pozycji menu najwyższego poziomu. Czy jest to możliwe bez konieczności używania `$_GET`? Widzę, że `$typenow` jest używany w `edit.php`, ale nie mogę tego użyć na mojej niestandardowej stronie, ponieważ zwraca tylko `NULL`. A więc w skrócie: Jak ustawić odpowiedni/skojarzony typ posta z niestandardowym elementem menu. **AKTUALIZACJA:** Oto obraz, który mam nadzieję, że nieco lepiej opisuje to, czego szukam. ![http://i.imgur.com/4q4Dy.jpg](http://i.stack.imgur.com/VPo8Y.jpg) Tak jak teraz, element niestandardowy w podmenu jest dostępny tylko wtedy, gdy aktywny, ponieważ w przeciwnym razie `$_GET` nie może pobrać `post_type`. Używam: $post_type = esc_attr( $_GET['post_type'] ); $post_type_object = get_post_type_object( $post_type ); $title = $post_type_object->etykiety->nazwa; $page = add_submenu_page( 'edit.php?post_type=' . $post_type, $title, $title, 'edit_pages', 'order-' . $post_type, 'cmspo_menu_order_page' ); Potrzebuję więc sposobu, aby pobrać odpowiedni typ postu, z którym powinien być powiązany element niestandardowy, w tym przypadku jest to „strona”, ale w każdym niestandardowym typie posta, który został zarejestrowany na stronie `capability_type` „page”, będą znajdować się elementy niestandardowe zamiast „post”.


title: Zwraca tylko posty w głównym menu w pętli w kolejności, w jakiej pojawiają się w menu post__in

text: Pracuję nad witryną z jednym przewijaniem. Chcę uwzględnić TYLKO strony, które pojawiają się w głównym menu witryny. Jeśli strona nie znajduje się w menu głównym, NIE powinna być uwzględniona w pętli. Chcę również, aby kolejność stron wyprowadzanych przez zapytanie była taka sama, jak w menu. Oto co mam do tej pory: $page_sort_sections = sort_sections(); $args = array( 'posts_per_page' => -1, 'post_type' => 'strona', 'post__in' => (array) $page_sort_sections, 'orderby' => 'post__in', ); $home_query = nowe WP_Query($args); if($home_query->have_posts()): while($home_query->have_posts()) : $home_query->the_post(); get_template_part('sekcje-stron'); koniec; w przeciwnym razie: get_template_part( '404'); endif; To zajmuje się konfiguracją zapytania. Oto kod funkcji, której używam do przekazania w tablicy post__in: if ( ! function_exists( 'sort_sections' )){ function sort_sections(){ if(!has_nav_menu( 'primary')){ return; } if ( ( $lokalizacje = get_nav_menu_locations() ) && isset( $lokalizacje['podstawowa'] ) ) { $menu = wp_get_nav_menu_object( $lokalizacje['podstawowa'] ); $items = wp_get_nav_menu_items($menu->term_id); $sekcje = tablica(); foreach((tablica) $items as $key => $menu_items){ if('page-sections' == $menu_items->object){ $sections[] = $menu_items->object_id; } } return $sekcje; } } } Zrobiłem var_dump na zapytaniu i jego zwrocie: ["post__in"]=> array(0) { } ["orderby"]=> string(8) "post__in" } Jakieś przemyślenia, dlaczego to nie zwraca Identyfikatory pozycji w menu?


title: Lista i dostęp do kategorii dla niestandardowego typu postu

text: Mam dwa typy postów: Projekty i Wydarzenia. Chcę, aby każdy z tych typów postów miał własne kategorie: Nadchodzące i Przeszłe. Mam stronę archiwum wyświetlającą posty w tych typach. Jednak na tej stronie chcę _wymienić kategorie_, które ma ten typ postu. Zrobiłem trochę badań, ale bezskutecznie. Następnie chcę, aby ta lista łączyła się z kategorią, pokazując posty w kategorii dla bieżącego typu postu (Projekty lub Wydarzenia). Mam więc dwa pytania: 1. Jak wygenerować listę kategorii z linkami? 2. Jaki byłby adres URL do wyświetlania kategorii w niestandardowym typie posta? Próbowałem utworzyć stronę category.php i uzyskać dostęp do `/projects/upcoming/`, ale znowu bezskutecznie.


title: otwórz wybrany post wordpress za pomocą javascript

text: Chciałbym utworzyć link, który otwiera wybrany post za pomocą javascript onclick w pętli. Jeśli użyję `<a href="<?php the_permalink();?>Więcej...</a>` w pętli, otworzy się poprawny post.Ale jeśli użyję funkcji  Więcej... po prostu nie otworzy poprawnego wybrany post Jak mogę to zrobić?


title: Jak sprawdzić, czy bieżąca strona statyczna jest stroną główną z wtyczki administratora?

text: Ustawiłem stronę statyczną jako stronę główną. Muszę wiedzieć, czy użytkownik jest aktualnie na stronie głównej w mojej niestandardowej wtyczce. Funkcje **is_home()** i **is_front_page()** nie działają, ponieważ strona główna jest stroną statyczną. Mogę uzyskać identyfikator tej strony: $frontpage_id = get_option('page_on_front'); Ale jak uzyskać identyfikator bieżącej strony z wtyczki administratora? (Wtedy będę mógł porównać te identyfikatory i wykryć, czy bieżąca strona jest stroną główną!) 2 Kod vancoder: 1) Ustaw dowolną stronę statyczną jako stronę główną. 2) Utwórz fikcyjną wtyczkę 3) Kod wtyczki : $d = is_front_page(); var_dump($d); ==> bool(false) **UPD** http://codex.wordpress.org/Conditional_Tags#The_Front_Page powinien działać, czy nie 2 Wtyczka Vancoder Admin to tylko wtyczka :) przepraszam A te dwie linie to cały kontekst dla teraz spróbuj sam, to nie działa. WP wersja 3.3.2


title: Używasz jednego niestandardowego pliku taksonomii.php dla dwóch niestandardowych taksonomii?

text: Zarejestrowałem 2 niestandardowe taksonomie, 'allergy' i 'gmc_allergy', które są typu postu 'gmc_recipe'. Mam taksonomię-allergy.php i kiedy wchodzę na blah.com?allergy=test, to poprawnie wyświetla wszystkie posty, które mają przypisane 'alergia'. Prawidłowo wyświetla również wszystkie „gmc_allergy”, o ile na liście są również jakieś „alergie” (z powodu mojej niestandardowej logiki w taxonomy-allergy.php). Jak mogę sprawić, by blah.com?allergy=test zwracał wyniki dla „gmc_allergy”, gdy nie ma wyników dla taksonomii „alergia”, ale są wyniki dla „gmc_allergy”? Obecnie otrzymuję błąd 404, co jest zrozumiałe, ponieważ moja logika pokazująca „gmc_allergy” znajduje się w pliku taxonmy-allergy.php i nigdy nie jest wykonywana, ponieważ dla „alergii” nie ma wyników. Utworzyłem: function gmc_pre_get_posts($query) { if (!is_admin() && $query->is_main_query()) { if (is_tax()) { $query->set('taxonomy', array('gmc_allergy', 'alergia')); //Więc teraz będzie zawierał również gmc_allergy, gdzie wcześniej sprawdzał tylko alergię, która była w url? $query->set('post_type', array('post', 'page', 'gmc_recipe'); } } return $query; } Ale to nadal daje mi 404, czy jestem na właściwej ścieżce? robisz źle?


title: Zapisywanie wielu treści Metabox

text: Tworzę dość prostą niestandardową stronę dla znajomego na ich witrynie WordPress, ale mam poważne problemy z prawidłowym zapisywaniem zawartości metaboksy. Wygląda na to, że WordPress nie zachowuje się tak, jak oczekiwałbym od PHP, więc kiedy umieszczam instrukcje echa w pobliżu, aby zobaczyć, dokąd się poszło, nie zawsze się pojawiają, nawet gdy kod musi być uruchomiony. Bardzo dziwny. Czy ktoś może mi pomóc wskazać, co zrobiłem źle? (Przepraszamy za dużą ilość kodu!) function metabox_exhibition_setup() { /* Dodaj hak 'data_początkowa'. */ add_meta_box('gc_start_date', esc_html__('Data rozpoczęcia wystawy'), 'create_metabox_exhibition_start_date', 'gc_exhibition', 'side', 'default'); /* Dodaj hak 'finish_date'. */ add_meta_box('gc_finish_date', esc_html__('Data zakończenia wystawy'), 'create_metabox_exhibition_finish_date', 'gc_exhibition', 'side', 'default'); /* Dodaj hak 'subtitle'. */ add_meta_box('gc_subtitle', esc_html__('Podtytuł wystawy'), 'create_metabox_exhibition_subtitle', 'gc_exhibition', 'normal', 'core'); add_action( 'save_post', 'save_metabox_exhibition', 10, 2 ); } /* Zapisz metadane posta z pola meta. */ function save_metabox_exhibition( $post_id, $post ) { $fields = 0; if($_POST) { $metaboxes[0]['nonce'] = $_POST['exhibition_finish_date_nonce']; $metaboxes[0]['data'] = $_POST['gc_finish_date']; $metaboxes[1]['nonce'] = $_POST['exhibition_start_date_nonce']; $metaboxes[1]['data'] = $_POST['gc_start_date']; $metaboxes[2]['nonce'] = $_POST['exhibition_subtitle_nonce']; $metaboxy[2]['data'] = $_POST['gc_subtitle']; $pola = liczba($metaboxy); $pola = liczba($metaboxy); } //print_r($metaboxy); for($i = 0; $i <= $pola ; $i++ ) { /* Sprawdź jednorazowy numer przed kontynuowaniem. */ if ( !isset( $metaboxes[$i]['nonce'] ) || !wp_verify_nonce( $metaboxes[$i]['nonce'], basename( __FILE__ ) ) ) return $post_id; /* Pobierz obiekt typu post. */ $post_type = get_post_type_object( $post->post_type ); /* Sprawdź, czy bieżący użytkownik ma uprawnienia do edycji wpisu. */ if ( !current_user_can( $post_type->cap->edit_post, $post_id )) return $post_id; /* Pobierz wysłane dane i oczyść je */ $new_meta_value = ( isset( $metaboxes[$i]['data'] ) ? sanitize_html_class( $metaboxes[$i]['data'] ) : '' ); /* Pobierz metaklucz. */ $meta_key = $metaboxes[$i]['data']; /* Pobierz meta wartość klucza pola niestandardowego. */ $meta_value = get_post_meta( $post_id, $meta_key, true ); /* Jeśli dodano nową wartość meta i nie było poprzedniej wartości, dodaj ją. */ if ( $new_meta_value && '' == $meta_value ) add_post_meta( $post_id, $meta_key, $new_meta_value, true ); /* Jeśli nowa wartość meta nie odpowiada starej wartości, zaktualizuj ją. */ elseif ( $nowa_meta_wartość && $nowa_meta_wartość != $meta_wartość ) update_post_meta( $post_id, $meta_key, $nowa_meta_value ); /* Jeśli nie ma nowej wartości meta, ale istnieje stara wartość, usuń ją. */ elseif ( '' == $nowa_meta_wartość && $meta_wartość ) delete_post_meta( $post_id, $meta_key, $meta_value ); }


title: Zarejestruj skrypt, który ma być umieszczony w kolejce zarówno w panelu administracyjnym, jak i interfejsie użytkownika

text: Jak rozumiem, skrypty administracyjne powinny być rejestrowane i umieszczane w kolejce przez hak `admin_enqueue_scripts` i wszystkie inne skrypty w `wp_enqueue_scripts`, więc skonfigurowałem następujące funkcje, aby rejestrować i umieszczać wszystkie moje skrypty w kolejce w przejrzysty i zorganizowany sposób. Moje pytanie brzmi, co jeśli potrzebuję pewnych skryptów (np. wtyczki jquery validate) zarówno w adminie, jak i na froncie? jaka jest zalecana metoda rejestracji i kolejkowania skryptu w tym przypadku? zarejestruj go dwukrotnie za pomocą innego uchwytu $ lub zarejestruj go tylko za pomocą `wp_enqueue_scripts`, a jeśli tak, czy nie istnieje ryzyko, że nie zostanie wywołany, gdy jest to wymagane? (to znaczy, po co inaczej `admin_enqueue_scripts`, jeśli nie po to, aby udostępnić te skrypty we wcześniejszym czasie? Naprawdę byłbym wdzięczny, aby ktoś mi to wyjaśnił, aby w pełni zrozumieć niuanse kolejkowania skryptów w wp. Dzięki Mój kod: // ZAREJESTRUJ SIĘ WSZYSTKIE SKRYPTY NIEADMINISTRACYJNE add_action( 'wp_enqueue_scripts', 'register_all_non_admin_scripts' ); function register_all_non_admin_scripts() { wp_register_script( ... ); wp_register_script( ... ); } // ENQUEUE NON-action'(ADMINLY_SCRIPSkrypt 'enqueue_scripts_where_required' ); function enqueue_scripts_where_required() { // skrypty ładowane przez cały czas wp_enqueue_script( '' ); // skrypty ładowane warunkowo if( is_page( '' ) ) { wp_enqueue_style( } /'' ); / ZAREJESTRUJ WSZYSTKIE SKRYPTY ADMIN add_action( 'admin_enqueue_scripts', 'register_all_admin_scripts' ); function register_all_admin_s cripts(){ wp_register_script( ... ); wp_register_script(...); } // SKRYPTY ADMIN W KOLEJCE add_action( 'admin_enqueue_scripts', 'enqueue_admin_contact_cpt_js' ); funkcja enqueue_admin_contact_cpt_js(){ global $post_type; // skrypty ładowane przez cały czas wp_enqueue_script( '' ); // skrypty do warunkowego załadowania przez typ postu if( 'contact' == $post_type ){ wp_enqueue_script( '' ); ... } }


title: Przepisz adres URL / permalink do domyślnego archiwum - rocznie / miesięcznie

text: Chcę zmienić strukturę rocznego/miesięcznego adresu URL archiwum domyślnego typu postu „post”. Jak wiemy, domyślne adresy URL to: Domyślny: `http://wwww.domain.com/2013/09` ale chcesz je przepisać, więc kończą się tak: Nowość: `http://wwww.domain.com /about/blog/archive/2013/09` próbowałem wykonać następujące czynności, ale wydaje się działać: add_rewrite_rule("about/blog/archive/([0-9]{4})/([0-9]{2}) /page/?([0-9]{1,})/?",'index.php?post_type=post&year=$matches[1]&monthnum=$matches[2]&paged=$matches[3]',' Top'); add_rewrite_rule("about/blog/archive/([0-9]{4})/([0-9]{2})/?",'index.php?post_type=post&year=$matches[1]&monthnum= $matches[2]','top'); add_rewrite_rule("about/blog/archive/([0-9]{4})/page/?([0-9]{1,})/?",'index.php?post_type=post&year=$matches[ 1]&paged=$matches[2]','top'); add_rewrite_rule("about/blog/archive/([0-9]{4})/?",'index.php?post_type=post&year=$matches[1]','top'); Chciałbym, aby ktoś wskazał właściwy kierunek, potrzebuję więcej informacji, zostaw komentarz. Dziękuję.


title: Ostatnie posty+, jak rozwiązać multiwidget?

text: Zainstalowałem wtyczkę Ostatnie posty dostarczoną z widżetem. Teraz mogę dodać tylko jedną instancję widżetu do obszarów widżetów. Chcę, aby w moim obszarze widżetów pojawiała się jedna instancja, która pojawia się tylko na mojej stronie początkowej, oraz jedna instancja widżetu w moim obszarze widżetów, która pojawia się na innych stronach. Teraz widżet wydaje się nie obsługiwać "multiwidget", ale "instancje widżetów" mają mieć dokładnie taką samą konfigurację. Czy jest jakiś sposób, aby „zmusić” WP do dodania widżetu do mojego innego obszaru widżetów, nawet jeśli oznacza to „zhakowanie” bazy danych?


title: Jaki jest najlepszy sposób przeniesienia podkatalogu+plików wtyczki do wp-content/uploads-directory?

text: Jestem twórcą wtyczki Leaflet Maps Marker (http://www.mapsmarker.com \- "Przypinaj, organizuj i pokazuj swoje ulubione miejsca za pomocą OpenStreetMap, OGD Vienna lub dowolnej niestandardowej mapy WMTS") i mam jedno pytanie: wtyczka zawiera około 100 ikon znaczników z Kolekcji Ikon Map (mapicons.nicolasmollet.com), których można używać do oznaczania ulubionych miejsc. Te ikony są przechowywane w **wp-content\plugins\leaflet-mapsmarker\img\mapicons**. Teraz użytkownicy mogą przesyłać inne własne ikony z kolekcji (która składa się z ponad 700 ikon). Problem polega na tym, że jeśli użytkownicy prześlą niestandardowe ikony do katalogu wtyczek, a ja wydam aktualizację wtyczki w przyszłości, przesłane ikony zostaną usunięte i muszą zostać ponownie przesłane przez użytkownika. Zacząłem więc pracować nad przeniesieniem katalogu mapsicons do **wp-content/uploads/leaflet-maps-marker-icons**. Tworzenie katalogu działa całkiem dobrze z funkcją wordpress wp_mkdir_p(): $target = ABSPATH . „wp-content/uploads/ulotki-mapy-marker-ikony”; wp_mkdir_p ($ cel ); w następnym kroku chciałem przenieść katalog z wtyczek, używając również (nieudokumentowanej) funkcji api pliku wordpress copy_dir(): $source = WP_PLUGIN_DIR . '/' . end(explode('/', dirname(__FILE__))) . '/img/mapikon'; //dopuszcza nazwy katalogów wtyczek inne niż ulotki-mapy-marker $target = ABSPATH . „wp-content/uploads/ulotki-mapy-marker-ikony”; copy_dir($źródło, $cel, $skip_list = array() ); Niestety to nie zadziałało - otrzymuję błąd: > Błąd krytyczny: Wywołaj funkcję członkowską dirlist() na obiekcie niebędącym obiektem w /wp- > current/wp-admin/includes/file.php w wierszu 756 Czy ktoś tutaj użył tę funkcję w jednym z jego projektów wcześniej i wie, jak ją poprawnie wykorzystać? lub: czy znasz inne bezpieczne sposoby kopiowania/przenoszenia plików za pomocą funkcji wordpress? Nie chcę używać poleceń PHP bezpośrednio, ponieważ z mojego doświadczenia wynika, że istnieje zbyt wiele możliwych konfiguracji serwerów internetowych prowadzących do zwiększonej liczby próśb o wsparcie (włączanie/wyłączanie trybu bezpiecznego, konieczność wprowadzania danych uwierzytelniających FTP...). Każda pomoc jest na prawdę doceniana! Aby uzupełnić, oto kod funkcji copy_dir() z pliku.php: function copy_dir($from, $to, $skip_list = array() ) { global $wp_filesystem; $dirlist = $wp_filesystem->dirlist($od); $from = końcoweslashit($od); $to = końcowy ukośnik($do); $skip_regex = ''; foreach ( (tablica)$skip_list as $key => $skip_file ) $skip_regex .= preg_quote($skip_file, '!') . „|”; if ( !empty($skip_regex)) $skip_regex = '!(' .rtrim($skip_regex, '|') .')$!i'; foreach ( (tablica) $dirlist as $filename => $fileinfo ) { if ( !empty($skip_regex) ) if ( preg_match($skip_regex, $from . $filename) ) Continue; if ( 'f' == $fileinfo['type'] ) { if ( ! $wp_filesystem->copy($from .$filename, $to .$filename, true, FS_CHMOD_FILE)) { // Jeśli kopiowanie nie powiodło się, chmod plik do 0644 i spróbuj ponownie. $wp_filesystem->chmod($do. $nazwapliku, 0644); if ( ! $wp_filesystem->copy($z . $nazwapliku, $do .$nazwapliku, true, FS_CHMOD_FILE)) zwróć nowy WP_Error('copy_failed', __('Nie można skopiować pliku.'), $to . $nazwapliku ); } } elseif ( 'd' == $fileinfo['type'] ) { if ( ! $wp_filesystem->is_dir($to . $filename) ) { if ( !$wp_filesystem->mkdir($to . $filename, FS_CHMOD_DIR) ) zwraca nowy WP_Error('mkdir_failed', __('Nie można utworzyć katalogu.'), $to . $nazwapliku); } $result = copy_dir($z . $nazwapliku, $do .$nazwapliku, $pomiń_listę); if ( is_wp_error($wynik) ) zwróć $wynik; } } zwróć prawdę; } zaktualizowany kod (ponieważ kod w komentarzach nie był poprawnie sformatowany) WP_Filesystem(); $cel = ABSPATH . „wp-content/uploads/ulotki-mapy-marker-ikony”; if (!is_dir($target)) //sprawdź instalacje wielostanowiskowe { wp_mkdir_p( $target ); $źródło = WP_PLUGIN_DIR . '/' . end(explode('/', dirname(__FILE__))) . '/img/mapikon'; copy_dir($źródło, $cel, $skip_list = array() ); $zipfile = ABSPATH . „wp-content/uploads/leaflet-maps-marker-icons/mapicons.zip”; unzip_file( $plik zip, $cel ); }


title: jak mogę w prosty sposób zmienić foldery przesyłania na %year%/%month%/%day%?

text: Czy jest na to łatwy sposób? GoDaddy ma głupi limit 1024 plików w jednym folderze, a mój klient przesyła ponad 500, a dzięki miniaturom znacznie przekraczamy limit. Jeśli jestem w stanie zmienić foldery na %year%/%month%/%day%, będę bezpieczny, jeśli chodzi o ten limit. Kolejne pytanie dotyczy tego, czy mogę tworzyć wordpress, aby generować kciuk tylko wtedy, gdy jest to potrzebne. Na przykład suwak domowy użyje tylko 10 obrazów, nie chcę, aby inne 1000 obrazów miało wygenerowaną miniaturę. Dzięki za pomoc!


title: Jak ustawić pozycje w menu głównym

text: Jestem nowy w programowaniu WordPress, mam nadzieję, że to nie jest zbyt głupie pytanie. Jak mogę skonfigurować moje menu tak, aby zawierało linki do * Strona główna * O (Strona) * Blog (myślę, że posty we wszystkich kategoriach z wyjątkiem Portfolio i In the Works) * Portfolio (Kategoria) * W Works (Kategoria) Myślę, że wszystko jest łatwe, z wyjątkiem tego, że nie widzę od razu sposobu, aby wskazać stronę główną (może muszę "zakodować" coś w stylu `http://domain.com`?) Również jak mogę mieć link do bloga Na wszelki wypadek, Odnoszę się do poniższego ekranu ![](http://imgur.com/AjPhM.jpg)


title: Tabele HTML w obszarach zawartości

text: Czy istnieje wtyczka, która pozwoliłaby mi tworzyć i edytować tabele w bloku treści w postach i na stronach? Przypuszczam, że trochę jak polecenie „wstaw tabelę” w MS Word.


title: Nie działa bookmarklet w motywie Tagologia

text: Jest motyw dla WordPressa - http://cuppster.com/tagology/ Zainstalowałem go, ale bookmarklet nie działa! Zrobiłem wszystko tak, jak napisano na stronie tego tematu, ale jeśli klikniesz w link „Oznacz to”, nic się nie dzieje. W czym może być problem? Prosimy o pomoc.


title: Konwersja kluczy podstawowych z liczb całkowitych autoinkrementacji na identyfikatory UUID

text: ## Cel Chciałbym, aby WordPress używał unikalnego identyfikatora zamiast automatycznej inkrementacji klucza podstawowego, co jest obecnie standardowym podejściem WP, aby ułatwić integrację kilku stron WP. ## Rozumowanie Potrzebuję, aby klucz był uniwersalny, przynajmniej w domenie kilku witryn WordPress. Ideą jest synchronizacja postów i innych danych między witrynami w taki sposób, aby post utworzony na dowolnej witrynie był również dostępny dla każdej innej witryny. Różne witryny będą znajdować się na różnych serwerach w różnych lokalizacjach. ## Problem Funkcja autoinkrementacji, na której opiera się WP, wyraźnie spowoduje użycie tego samego klucza w odpowiedniej tabeli każdej witryny WP dla różnych postów, tj. Pierwszy post w każdej witrynie będzie miał wartość „1”, podczas gdy ja tego potrzebuję być unikalne we wszystkich instalacjach, abym mógł połączyć dane z każdej z nich z każdą inną witryną. Gdy WP pobiera klucz podstawowy, rzutuje te wartości na liczby całkowite. Kiedy PHP otrzymuje BIGINT z MySQL, normalnie zarządzałby nim jako float, ponieważ jest większy niż limit int PHP, ale rzutowanie go jako int w PHP skutkuje obcięciem go w moim przypadku. ## Co zrobiłem do tej pory? Obecnie używam funkcji `uniquid()` w PHP do generowania klucza, który tworzy 13-znakowy ciąg, który następnie konwertuje się na ułamek dziesiętny w obszarze `1388661576514060` (dziś wieczorem), co jest mniejsze niż `BIGINT` w MySQL (do `18446744073709551615`), więc to jest fajne, a nadpisanie `wpdb` pomyślnie zapisuje go do bazy danych, ale limit liczby całkowitej PHP jest znacznie mniejszy, do `2147483647` . Jest to dość proste, zastępując funkcję pomocniczą `insert_replace` i funkcję zapytania w `wpdb` funkcjami z nowej klasy, która ustawia i zapamiętuje unikalną wartość, która ma być używana jako klucz podstawowy. Obecnie zamierzam spróbować usunąć rzutowanie `(int)` i sprawdzić, czy to rozwiąże mój problem, chociaż wolałbym nie wprowadzać zmian w rdzeniu WP, wydaje się, że może to być moja jedyna opcja. * * * ## Myśli jestem zaniepokojony przyjęciem takiego podejścia, ponieważ chociaż może to rozwiązać moją doraźną potrzebę, może spowodować jeszcze gorszy problem gdzieś indziej i zastanawiam się, czy ktoś wcześniej próbował czegoś podobnego. Dodatkowo jestem ciekaw, dlaczego programiści użyli specyficznego castingu - uwielbiam luźne typowanie danych w PHP, więc nie jest to coś, co zrobiłbym, gdyby nie było konkretnego powodu. Mam wystarczająco spalone palce, aby uszanować racje innych programistów na tyle, aby spróbować dowiedzieć się, czym one są, stąd pytanie. Naprawdę wolałbym w ogóle nie hackować rdzenia z wszystkich oczywistych powodów, czy ktoś mógłby zaproponować i przemyślenia lub pomysły, jak obejść ten problem lub alternatywnie inny sposób podejścia do niego?


title: Jak zapobiec błędom instalacji wtyczek, motywów na Wordpress?

text: Nie mogę zainstalować żadnego motywu/wtyczki w moim Wordpress 3.0 Pobieram pakiet instalacyjny z http://downloads.wordpress.org/plugin/contact-form-7.2.3.1.zip… Rozpakowywanie pakietu… Instalowanie wtyczki… Nie można skopiować plik. /public_html/blog/wp-content/plugins/contact-form-7/languages/wpcf7-lt_LT.po Instalacja wtyczki nie powiodła się. Pobieranie pakietu instalacyjnego z http://wordpress.org/extend/themes/download/piano-black.2.2.zip… Rozpakowywanie pakietu… Nie można utworzyć katalogu. /public_html Pobieranie pakietu instalacyjnego z http://downloads.wordpress.org/plugin/contact-form-7.2.3.1.zip… Rozpakowywanie pakietu… Nie można utworzyć katalogu. /public_html/blog/wp-content/upgrade/contact-form-7.tmp/contact-form-7 Za każdym razem otrzymuję podobne wiadomości. Czy jest jakieś rozwiązanie? **Aktualizacja 12/01/2012** : Jeśli używasz najnowszej wersji WP (3.1 i nowszej, 3.3.1 na dzień dzisiejszy), nie będziesz mieć żadnych problemów. Te problemy zostały usunięte. Ciesz się swoim WP.


title: Liczba pętli post nie jest w porządku

text: Używam niestandardowego typu posta. Ale na stronie docelowej Liczba pętli post nie jest w porządku <?php $loop = new WP_Query( array( 'post_type' => 'focus-areas' ,'get' => 'all') ); ?> <?php while ( $loop->have_posts() ): $loop->the_post(); $liczy++; ?> <?php echo $liczba; ?> To drukowanie jako 16, 1, 3, 4, 5,.... Wszystkie posty są wyświetlane, ale nie jest w porządku. szukałem w witrynie google i wordpress, ale nie znalazłem żadnego rozwiązania


title: Pokaż powiązane posty na single.php, pogrupowane według terminów taksonomii, z zaznaczonym obiektem postu Advanced Custom Field

text:
Mam wpisy o niestandardowej taksonomii zwane Obszary zawierające terminy, takie jak artykuły, prezentacje, wiadomości itp. Te terminy są stosowane do zwykłego postu typu „post”. Pod typem wpisu niestandardowego o nazwie „Firma” dodałem zaawansowany niestandardowy wpis w polu o nazwie pola `associated_items`, aby wybrać wpisy związane z tą firmą. Obecnie mam tę funkcję w moim `single-company.php`, która pokazuje posty wybrane w polu ACF `associated_items`... <?php $post_objects = get_field('associated_items');?> <?php if( $post_objects ): ?>

Powiązane posty
 <?php foreach( $post_objects jako $post): ?> <?php setup_postdata($post); ?> <?php get_template_part( 'zawartość', 'wyciąg' ); ?> <?php endforeach; ?>
 <?php wp_reset_postdata(); ?> <?php endif; // end if( $post_objects ) ?> Powyższy kod wyświetla tylko posty wybrane w niestandardowym polu ACF `associated_items`, ale w porządku chronologicznym, podczas gdy chciałbym, aby były pogrupowane zgodnie z terminami taksonomii, na przykład w następujący sposób: ## Wpisy związane z artykułami firmy * post w obszarze „Artykuły” * kolejny wpis w obszarze „Artykuły” * i kolejny wpis w obszarze „Artykuły” Prezentacje * post w obszarze „Prezentacje” * kolejny wpis w obszarze w obszarze "Prezentacje" * i kolejny wpis w obszarze "Prezentacje" Nowości * post w obszarze "Aktualności" * kolejny wpis w obszarze "Aktualności" * i kolejny wpis w obszarze "Aktualności" Z góry bardzo wiele dziękuje !


title: Określony html w pętli wordpress

text:
Próbuję ustawić suwak wordpress, jak mogę osiągnąć dokładnie poniższy wynik w pętli wordpress

Slajd 1 — opis tutaj

Slajd 2 — opis tutaj

Slajd 3 — opis tutaj

 Pokaż mi
Slajd 1 Pokaż mi
Slajd 2 Pokaż mi
Slajd 3
 na przykład chcę pokazać powyższy kod z hin $my_query = new WP_Query('cat=49&showposts=4&orderby=RAND'); while ($my_query->have_posts()) : $my_query->the_post();$do_not_duplicate = $post->ID; ?> powyższy kod <?php endwhile; ?> Proszę daj mi znać, jeśli jest inny sposób na osiągnięcie tego samego wyniku, ale orderby=RAND jest dla mnie ważne BR


title: WP_Error z get_category_parents

text: W moim motywie pojawia się następujący błąd: > Błąd krytyczny, który można przechwycić: Obiekt klasy WP_Error nie mógł zostać przekonwertowany na > ciąg znaków w `/home/winentra/public_html/s1.ssonline.co.in/wp- > content/themes/peekaboo/ admin/common-functions.php` w linii 186 Linia nr 186: echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' '); Kontekst: elseif ( is_single() ) { $cat = get_the_category(); $kot = $kot[0]; echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' '); echo $bieżącyPrzed; tytuł(); echo $bieżącyPo; } Jakieś pomysły na ten temat proszę?


title: Wyklucz strony według kolejności menu

text: mam "Default Page Generator" na aktywacji motywu, który stworzyłem... w tym pliku ustawiam 'menu_order' dla każdej strony. **Chcę wykluczyć strony z kolejnością menu większą niż 50 z domyślnego menu wp_list_pages** Czy istnieje sposób na sprawdzenie/pobranie 'menu_order' każdej strony? a jeśli istnieje, czy możesz wymyślić sposób na zintegrowanie go z funkcją wp_list_pages?


title: Pokaż obraz po lewej i treść po prawej za pomocą ul li

text: Cóż, szukam sposobu, aby to zrobić. W indeksie, aby pokazać każdy post, z „kciukiem” po lewej stronie i treścią po prawej, używając w tym celu ul li. (na przykład http://ae.tutsplus.com/). zwykła pętla nie mogę oddzielić tekstu i iamge, więc zgaduję, że muszę dodać trochę php do miksu?


title: Ustaw rozmiar czcionki automatycznie w zależności od liczby słów w poście

text:
Przesyłając post do publikacji zostanie zliczona ilość słów w poście i doda div z ustawionym rozmiarem czcionki w zależności od ilości słów. Jeśli post zawiera do 50 słów, zwraca się z font-size:18px;

Tekst do 50 słów.

 Jeśli post zawiera od 50 do 100 słów, zwracany jest font-size:16px;

Tekst zawierający od 50 do 100 słów.

 Zakres zostanie zamknięty po ostatnim `</p>`.

paragraf 1

paragraf 2

paragraf 3

 Czy ktoś wie o jakiejkolwiek funkcji do tego? Dziękuję Ci.


title: Daj odwiedzającym dostęp do strony/postu chronionego hasłem za pomocą zewnętrznego skryptu

text: **Przegląd:** W mojej witrynie chcę utworzyć strefę klienta. Istnieje formularz, w którym odwiedzający wpisuje nazwę (np. „event_xyz”) i hasło. Tylko niektóre dobrze poinformowane kręgi (uczestnicy wydarzenia xyz, którzy chcą pobrać jakieś pliki) będą znały dane dostępowe. Po przesłaniu, odwiedzający jest przekierowywany do p-redirect.php, który powinien ustawić ciasteczko, aby uzyskać dostęp do określonej strony, do której chce wejść - $_POST['name'] równa się ślimakowi posta. Znalazłem ten skrypt, aby ustawić to ciasteczko i próbowałem rozwiązać mój problem w następujący sposób: global $wp_hasher; if ( empty( $wp_hasher )) { require_once ( ABSPATH . 'wp-includes/class-phpass.php' ' ); $wp_hasher = nowe hasłoHash(8, prawda); } setcookie( 'wp-postpass_' . COOKIEHASH, $wp_hasher->HashPassword( stripslashes( $_POST['pw']) ), 0, COOKIEPATH ); wp_safe_redirect( "http://www.domain.com/wordpress/".$_POST['nazwa'] ); Wyjście(); Ale to pokazuje mi błąd, że w tym pliku i w wp-includes/pluggable.php nagłówki zostały już wysłane. Nie wiem też, w jaki sposób skrypt, który jest pobierany z wp-login.php?action=postpass, wie, do której strony chcę uzyskać dostęp. Jakieś rozwiązania?


title: Ostrzeżenie: urlencode() oczekuje, że parametr 1 będzie łańcuchem, podano tablicę

text: Wysłałem pytanie na StackOverflow (przepraszam za link krzyżowy) i gdy szukam rozwiązania tego problemu, natknąłem się na to ostrzeżenie: > Ostrzeżenie: urlencode() oczekuje, że parametr 1 będzie ciągiem, tablica podana w > /var/www/.../httpdocs/wp-includes/formatting.php w wierszu 3192. Robiąc śledzenie wsteczne, odkryłem, że pochodzi on z `query.php` : **wp_includes/query.php** , _lines 1710. ..1712_ if ( isset( $t->przepisz['hierarchical'] ) && $t->przepisz['hierarchical'] ) { $q[$t->query_var] = wp_basename( $q[$t-> zmienna_zapytania] ); } Teraz otrzymuję ten błąd, ponieważ jeden z moich parametrów adresu URL jest tablicą kategorii, w której próbuję wyszukać i zwrócić wszystkie produkty (niestandardowy typ postu), które mają przypisaną jedną lub więcej zdefiniowanych kategorii. Dlaczego WordPress próbuje wywołać `basename` na tablicy parametru `GET` jest poza mną. Czy ktoś chciałby mi to wyjaśnić? Dziękuję!


title: Dlaczego tablica utworzona w funkcji podłączonej do rejestru dostosowania jest wypełniana, gdy dostosowywany jest ładowany, ale nie, gdy ładowany jest interfejs?

text: Mam funkcję, która jest przeznaczona do wykonywania dwóch rzeczy: 1) tworzenia kontrolek/ustawień próbnika kolorów w konfiguratorze oraz 2) tworzenia wielowymiarowej tablicy `$customizeData`, która ma być wyprowadzana w stylach nagłówka i używana do lokalizowania zmiennych dla dostosowania. js. Pierwszy cel jest udany. Drugi przywiózł mnie tutaj. Dodałem var_dump dla `$customizerData` do index.php, tablica ma wartość null na interfejsie użytkownika, ale jest wypełniana zgodnie z oczekiwaniami, gdy ładuję ją do konfiguratora. Oto funkcja, o której mowa: if (! function_exists('_sf_customzier_color_loop') ) : function _sf_customzier_color_loop($colors, $countStart = 10, $section) { //Nie wiem, dlaczego muszę to zrobić najpierw global $wp_customize; //deklaruj $customizerData jako zmienną globalną global $customizerData; //uruchom licznik na 10 lub cokolwiek zostało ustawione. $liczba = $liczbaPoczątek; foreach ($kolory jako $rzeczy) { $slug = $rzeczy['slug']; $id = "_sf[{$slug}]"; //Jeśli bieżąca tablica ma ustawiony priorytet, użyj go, jeśli nie, użyj licznika. if (! isset($things['priority']) ) { $priority = $count; } else { $priority = $things['priority']; } $wp_customize->add_setting( $id, array( 'type' => 'option', 'transport' => 'postMessage', 'capability' => 'edit_theme_options', 'default' => $things['default' ], ) ); $control = new WP_Customize_Color_Control( $wp_customize, $slug, array( 'label' => __( $things['label'], '_sf' ), 'section' => $section, 'priority' => $priority, 'ustawienia' => $id ) ); $wp_customize-> add_control ($kontrola); //utwórz tablicę, która będzie używana do wyprowadzania stylów do wp_head i Customizer.js $customizerData [] = array( 'id' => $id, 'slug' => $slug, 'selector' => $things['selector '], 'właściwość' => $rzeczy['właściwość'], ); //licznik priorytetów wyprzedzenia $count++; } } endif; // ! _sf_customzier_color_loop istnieje Możesz zobaczyć przykład tego, co do tego karmię: https://github.com/Shelob9/_sf_lib/blob/1.1-fancy-data/customizer/customizer-sidebar.php Co muszę zrobić że tablica jest zapełniona na froncie?


title: Tłumaczenie wtyczki lub pliku locale

text: Muszę mieć niestandardowe tłumaczenie dla jednego kraju i dać ludziom możliwość wyboru między nim a językiem angielskim... czy istnieje wtyczka zapewniająca alternatywny zestaw tekstu dla stron i postów? Dziękuję


title: niestandardowe archiwum taksonomii typu post „tag” : nie znaleziono postu

text: Zarejestrowałem niestandardowy typ postu „object” i zarejestrowałem taksonomię „post_tag”, aby można było oznaczyć te obiekty. register_taxonomy_for_object_type('post_tag', 'object'); Kiedy odwiedzam `domain.com/tag/{object-slug}` nie znajduje żadnego posta, chociaż są. Oto jak został zadeklarowany mój CPT: register_post_type( 'objet', array('labels' => array(/* usunięte dla jasności */), 'description' => __( 'blabla' ), 'public' => true , 'publicly_queryable' => true, 'exclude_from_search' => false, 'show_ui' => true, 'query_var' => true, 'menu_position' => 3, 'menu_icon' => get_stylesheet_directory_uri() . '/library/images /custom-post-icon.png', 'rewrite' => array( 'slug' => 'stock', 'with_front' => false ), 'has_archive' => 'stock', 'capability_type' => 'post ', 'taxonomies' => array('post_tag'), 'hierarchical' => false, 'supports' => array( 'title', 'editor', 'thumbnail', 'revisions', 'sticky')) ) ;


title: $attachment->post_title nie wyświetla tytułu

text: Mam ten mały kawałek php. $attr = array( 'class' => 'bigImg', 'alt' => trim(strip_tags( $attachment->post_excerpt )), 'title' => trim(strip_tags( $attachment->post_title )) ); Mam to w html: <?php echo the_post_thumbnail( 'polecane', $attr ); ?> i jak mogłeś się domyślić, chcę wypisać alt i tytuł z posta, ale wygląda na to, że tego nie robię. Oto wynik: <img width="1081" height="608" src="http://lart.co.uk/wordpress/wp-content/uploads/2013/07/img4.jpg" class="bigImg wp -post-image" alt="" title="" /> Dlaczego więc nie mam tytułu i alt?


title: Wyniki wyszukiwania profilu BP nie będą zawierać linków do strony profilu użytkownika

text: Zainstalowałem wyszukiwanie profili bp wraz z s2member i chcę przeprowadzić wyszukiwanie profili na różnych poziomach członkostwa, jednak gdy wyświetlą się wyniki wyszukiwania i kliknę jeden z wyników wyszukiwania, ich strona profilu nie zostanie wyświetlona. Zawsze umieszcza "autor/" przed nazwą profilu członka w adresie URL. Jak mogę usunąć „autora/” z adresu URL?


title: Niestandardowe Meta Boxes: wiele pól w polu powtarzalnym

text:
Pracuję nad meta boxem na imprezy. Każde wydarzenie ma swoją własną stronę z metaboxem na skład, obraz tła, adres URL strony z biletami i trochę tekstu. Aby stworzyć skład, chciałbym skorzystać z powtarzalnych pól z samouczka „Reusable Custom Meta Boxes tutorial” z WP Tuts +: http://wp.tutsplus.com/tutorials/reusable-custom-meta-boxes-part- 1-intro-i-podstawowe-pola/. Nie wiem jednak, jak dodać wiele pól w polach powtarzalnych. Oto pomysł: [powtarzalny] \- Pole tekstowe: Imię i nazwisko artysty \- Pole tekstowe: Witryna artysty \- Pole wyboru: Nagłówek (tak lub nie) [/powtarzalny] To jest kod z samouczka: function meta_box_callback($ pola, $strona) { global $post; echo '<input type="ukryty" name="'.$page.'_meta_box_nonce" value="'.wp_create_nonce(basename(__FILE__)).'" />'; // Rozpocznij tabelę pól i wykonaj pętlę echo '
'; foreach ($fields as $field) { // pobierz wartość tego pola, jeśli istnieje dla tego postu if ($field['label']) $label = $field['label']; if ($field['desc']) $desc = ''.$field['desc'].''; if ($pole['id']) $id = $pole['id']; if ($field['type']) $type = $field['type']; if ($pole['wartość']) $wartość = $pole['wartość']; if ($pole['opcje']) $opcje = $pole['opcje']; $meta = get_post_meta($post->ID, $id, prawda); // Rozpocznij wiersz tabeli od echa '
 '.$label.'	 '; switch($field['type']) { case 'repeatable': echo '+
'; $i = 0; if ($meta) { foreach($meta jako $wiersz) { echo '
||| <input type="text" name="'.$field ['id'].'['.$i.']" id="'.$pole['id'].'" value="'.$row.'" size="30" /> -
'; $i++; } } else { echo '
||| <input type="text" name="'.$pole['id'].'['.$ i. ']" id="'.$pole['id'].'" value="" size="30" /> -
'; } echo '
 '.$field['desc'].''; przerwanie; } // przełącz echo '
'; } // foreach echo '
'; // table } function meta_box_save($post_id, $fields, $page) { // weryfikuj wartość jednorazową if (!wp_verify_nonce($_POST[$page.'_meta_box_nonce'], basename(__FILE__))) return $post_id; // sprawdź autozapis if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return $post_id; // sprawdź uprawnienia if ($page != $_POST['post_type']) { if (!current_user_can('edit_page', $post_id)) return $post_id; } elseif (!current_user_can('edit_post', $post_id)) { return $post_id; } // przejdź przez pola i zapisz dane foreach ($fields as $field) { if($field['type'] == 'tax_select') { // zapisz taksonomie $term = $_POST[$field['id ']]; wp_set_object_terms ($post_id, $term, $pole['id'] ); } else { // zapisz resztę $old = get_post_meta($post_id, $field['id'], true); $nowy = $_POST[$pole['id']]; if ($nowy && $nowy != $stary) { update_post_meta($post_id, $field['id'], $new); } elseif ('' == $nowy && $stary) { delete_post_meta($post_id, $field['id'], $old); } } } // foreach } Mam nadzieję, że możecie mi pomóc :-).


title: Podkatalogi wielostanowiskowe IIS 7.5 zmieniają lokalizację multimediów/przesyłania

text: Używam WP 3.8.1 Multisite. Podkatalogi są skonfigurowane. Mam 10 podkatalogów witryn i 1 witrynę główną. WordPress działa na 64-bitowym serwerze Windows 2008 R2 datacenter z IIS 7.5. Mam 2 partycje na tym serwerze; Dysk 60 GB C dla systemu operacyjnego, IIS (inetpub) i WordPress oraz 100 GB dysk D przeznaczony na wszystkie przesyłane pliki, które będą przesyłane do WordPress (zdjęcia, dokumenty, filmy itp.) Próbuję wskazać ścieżkę przesyłania każdej witryny do folderu na dysku D, w tym celu zaznaczam Moje witryny > zaznaczam Administrator sieci > klikam Witryny > wybieram witrynę i klikam Edytuj na jednej z witryn > i na ekranie Edytuj witryny klikam kartę Ustawienia i przewijam w dół do pola „Ścieżka przesyłania”. Chcę, aby każda witryna miała swój własny folder na dysku D, na przykład: 1.) Witryna główna (http://mydomain.com/) = D:\wordpress\uploads\primary\ 2.) Witryna podkatalogu o nazwie „foo” (http://mojadomena.com/foo) = D:\wordpress\uploads\foo 3.) Witryna podkatalogu o nazwie „bar” (http://mojadomena.com/bar) = D:\wordpress \uploads\bar 4.) Witryna z podkatalogu o nazwie "test" (http://mojadomena.com/test) = D:\wordpress\uploads\test itd... Więc po utworzeniu wszystkich folderów i edycji każdej z witryn ścieżka Zrobiłem test przesyłania **Test #1 - Strona główna** Pulpit > Media > Dodaj nowy > Wybierz plik > wybierz plik test.jpg > pasek postępu mówi „100%”, a następnie „Crunching” > Od razu zauważam miniaturę obraz jest uszkodzony, więc klikam Edit Media. Link stały to http://mojadomena.com/?attachment_id=184, a miniatura jest nadal uszkodzona, więc klikam „Wyświetl stronę załącznika”, która przenosi mnie do standardowej strony posta z uszkodzonym obrazem. Wracam do ekranu Edytuj multimedia i sprawdzam adres URL pliku, który to http://mydomain.com/wp-content/uploads/test.jpg, więc próbuję otworzyć ten adres URL i uzyskać standardową stronę postu z napisem Strona nie została znaleziona, jeśli Otwieram Eksploratora Windows i przechodzę do D:\wordpress\uploads\primary\, tam jest mój obraz i odpowiednie miniatury, które WordPress generuje np. test.jpg (oryginalny), test-50x50.jpg, test-80x80.jpg, test-120x90.jpg itd... Jeśli otworzę Eksploratora Windows i przejdę do C:\inetpub\wwwroot\wp-content\uploads\ folder jest pusty **Test nr 2 - Strona podkatalogu "foo"** Dashboard > Media > Dodaj nowy > Wybierz plik > wybierz plik test.jpg > pasek postępu mówi "100%", a następnie "Crunching" > Od razu zauważam miniatura obrazu jest zepsuta, więc klikam Edytuj multimedia. Link stały to http://mydomain.com/foo/?attachment_id=18, a miniatura jest nadal uszkodzona, więc klikam „Wyświetl stronę załącznika”, która przenosi mnie do standardowej strony posta z uszkodzonym obrazem. Wracam do ekranu Edytuj multimedia i sprawdzam adres URL pliku, który to http://mydomain.com/foo/wp-content/uploads/sites/2/test.jpg, więc próbuję otworzyć ten adres URL i uzyskać stronę błędu IIS który brzmi: **Podsumowanie błędów** Błąd HTTP 404.0 — Nie znaleziono Zasób, którego szukasz, został usunięty, zmieniono jego nazwę lub jest tymczasowo niedostępny. **Szczegółowe informacje o błędzie** **Moduł:** IIS Web Core **Powiadomienie:** MapRequestHandler **Hander:** StaticFile **Kod błędu:** 0x80070002 **Wymagany adres URL:** http://mydomain .com:80/wp-content/uploads/sites/2/test.jpg **Ścieżka fizyczna:** C:\inetpub\wwwroot\wp-content\uploads\sites\2\test.jpg Jeśli otworzę Eksploratora Windows i przejdź do D:\wordpress\uploads\foo\, widzę, że wordpress utworzył folder, którego nie utworzyłem, o nazwie „witryny”, kiedy klikam na „witryny”, znajduję inny folder utworzony przez wordpress o nazwie „2”, klikam w folderze „2” i stwierdzam, że jest tam mój obraz i odpowiednie miniatury, które WordPress generuje np. test.jpg (oryginalny), test-50x50.jpg, test-80x80.jpg, test-120x90.jpg itd... Jeśli otworzę Eksploratora Windows i przejdę do C:\inetpub\wwwroot\wp-content\uploads\ folder jest pusty Zgaduję, że może to mieć coś wspólnego z moimi regułami przepisywania w web.config, więc opublikuję to tutaj: ` <?xml version="1.0" kodowanie="utf-8"?> <konfiguracja > <system.webServer> <httpProtocol> <customHeaders> <clear /> <add name="X-UA-Compatible" value="IE=edge" /> </customHeaders> </httpProtocol> <staticContent> <remove fileExtension =".svg" /> <mimeMap fileExtension=".svg" mimeType="image/svg+xml" /> </staticContent> <handlers> <remove name="PHP54_via_FastCGI" /> <remove name="PHP55_via_FastCGI" / > <remove name="PHP53_via_FastCGI" /> <add name="PHP5_5_via_FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\PHP\v5. 5\php-cgi.exe" resourceType="Either" /> </handlers> <przepisz> <zasady> <rule name="WordPress Reguła 1" stopProcessing="true"> <match url="^index\.php $" ignoreCase="false" /> <action type="Brak" /> </rule> <rule name="WordPress Rule 2" stopProcessing="true"> <match url="^([_0-9a-zA-Z -]+/)?files/(.+)" ignoreCase="false" /> <action type="Przepisz" url="wp-includes/ms-files.php?file={R:2}" appendQueryString= "false" /> </rule> <rule name="WordPress Rule 3" stopProcessing="true"> <match url="^([_0-9a-zA-Z-]+/)?wp-admin$" ignoreCase="false" /> <action type="Przekierowanie" url="{R:1}wp-admin/" redirectType="Permanent" /> </rule> <rule name="WordPress Rule 4" stopProcessing=" true"> <match url="^" ignoreCase="false" /> <conditions LogicGrouping="MatchAny"> <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" /> <add input= "{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" /> </conditions> <action type="None" /> </rule> <rule name="WordPress Rule 5" stopProcessing="true"> < dopasuj url="^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*)" ignoreCase="false" /> <action type="Przepisz" url="{R :1}" /> </rule> <rule name="WordPre ss Reguła 6" stopProcessing="true"> <match url="^([_0-9a-zA-Z-]+/)?(.*\.php)$" ignoreCase="false" /> <typ akcji ="Przepisz" url="{R:2}" /> </rule> <rule name="WordPress Rule 7" stopProcessing="true"> <match url="." ignoreCase="false" /> <action type="Przepisz" url="index.php" /> </rule> </rules> </rewrite> <defaultDocument> <files> <clear /> <add value=" index.php" /> <add value="index.html" /> <add value="index.htm" /> </files> </defaultDocument> </system.webServer> </configuration> ` Oto moje wersje: Windows 2008 R2 datacenter 64bit IIS 7.5 IIS Rewrite Module 2 PHP Manager 1.2 dla IIS 7 MySQL Server 5.5 MySQL Connector Net 6.5.4 WordPress 3.8.1


title: Jak zaciemnić adresy URL katalogów motywów

text: Przepisuję to pytanie, ponieważ zdałem sobie sprawę, że było całkowicie niejasne, co chcę zrobić. Szukam sposobu na „zasłonięcie” katalogu motywów, aby bezwzględne adresy URL, które odwołują się do takich rzeczy, jak obrazy i arkusze stylów w tym katalogu motywów, nie miały struktury „wp-content/themes/my_theme/”, ale są raczej czymś więcej bezpośrednio, jak zwykła strona internetowa, np.: "/images/my_image.gif" i "/css/stylesheet.css". Łatwo jest zakodować ścieżkę do folderu motywu za pomocą zalecanej metody get_template_directory_uri(), aby programowo wywołać folder motywu, ale w ten sposób struktura folderów motywu jest całkowicie widoczna. Mam nadzieję, że odpowiedź może w jakiś sposób wykorzystać `wp_rewrite`, ponieważ jedyne inne rozwiązanie, o którym mogę pomyśleć, to edycja `.htaccess`, a to oznacza zakodowanie katalogu motywu w pliku htaccess. Przypuszczam, że można to zautomatyzować za pomocą wtyczki lub funkcji aktywacji motywu, która edytuje plik htaccess, ale mam nadzieję, że ktoś zna bardziej „wbudowany” sposób na zrobienie tego.


title: Co robi setup_postdata ($post )?

text: Kodeks definiuje to jako „Ustaw globalne dane pocztowe. Pomaga w formatowaniu niestandardowych wyników zapytań pod kątem używania znaczników szablonów.' Naprawdę tego nie rozumiem. Oto przykład kodu: global $post; $args = array( 'numberposts' => -1); $posts = get_posts($args); foreach( $posts jako $post) : setup_postdata($post); echo $post->ID; na każdym kroku; Proszę, czy możesz wyjaśnić?


title: Obsługa adresów URL w aplikacji WordPress

text: Mamy aplikację internetową, którą uruchamiamy wewnątrz WordPressa, aby skorzystać z uwierzytelniania WordPressa. Aby to zadziałało, stworzyliśmy typ szablonu dla naszej aplikacji, który po prostu zawiera stronę startową naszej aplikacji. Chociaż jest to trochę hack, działa to świetnie, z wyjątkiem jednego aspektu - wszystkie względne adresy URL używają teraz strony WordPressa jako podstawy, zamiast faktycznej ścieżki do zasobu. Na przykład, jeśli strona mojej aplikacji znajduje się pod adresem `http://mojawitryna.com/mojaaplikacja`, względne łącze do arkusza stylów spowoduje, zgodnie z oczekiwaniami, `http://mojawitryna.com/mojaaplikacja/css/stylesheet.css` . Niestety nie jest to faktyczna lokalizacja arkusza stylów. Faktyczna lokalizacja arkusza stylów wygląda mniej więcej tak: `http://moja_strona.com/katalog1/katalog2/katalog3/css/arkusz stylów.css`. Jak mam przejść do tworzenia linków do tego zasobu w mojej aplikacji internetowej, jeśli podstawowy adres URL nie odzwierciedla dokładnie lokalizacji zasobu? Uwaga: nie mogę używać linków bezwzględnych, ponieważ rozwijamy się lokalnie, co oczywiście nie ma takiej samej struktury katalogów jak witryna WordPress.


title: Niestandardowe archiwum typu postów - błąd w nav-menu-template.php

text:
Stworzyłem niestandardowy typ posta o nazwie „vehicle” za pomocą wtyczki CCTM i skopiuj/wklej archive.php do archive-vehicle.php, ale spowodowało to błąd w moim nagłówku: Ostrzeżenie: in_array() oczekuje, że parametr 2 będzie tablicą, null podany w /home/.../public_html/wp-includes/nav-menu-template.php w wierszu 439 Dostaję ten sam błąd powtarzany dla każdej pozycji menu głównego (nie ma podmenu). Jeśli usunę archive-vehicle.php i wyświetlę te same posty za pomocą archive.php, nie pojawią się żadne błędy. Dlaczego miałoby to być? **Aktualizacja** Wiersz 439 pliku nav-menu-template.php jest in_array( $parent_item->object_id, $queried_object->ancestors ) `print_r($queried_object)` tuż przed wierszem 439 generuje następujące - nie ma „przodków” klucz: stdClass Object ( [labels] => stdClass Object ( [name] => Pojazdy [singular_name] => Pojazd [add_new] => Dodaj nowy [add_new_item] => Dodaj nowy pojazd [edit_item] => Edytuj pojazd [new_item] => Nowy pojazd [view_item] => Wyświetl pojazd [search_items] => Wyszukaj pojazdy [not_found] => Nie znaleziono pojazdów [not_found_in_trash] => Nie znaleziono pojazdów w koszu [parent_item_colon] => Operator [all_items] => Pojazdy [menu_name] => Pojazdy [name_admin_bar] => Pojazd ) [ opis] => Każdy pojazd jest powiązany z Operatorem [publicly_queryable] => 1 [exclude_from_search] => [capability_type] => post [map_meta_cap] => 1 [_builtin] => [_edit_link] => post.php?post= %d [hierarchical] => 1 [public] => 1 [przepisz] => Tablica ( [slug] => pojazd [z_frontem] => 1 [strony] => 1 [feeds] => 1 [ep_mask] => 1 ) [has_archive] => 1 [query_var] => [register_meta_box_cb] => [taksonomie] => Tablica ( [0] => kategoria [1] => funkcje [2] => kolory [3] => sterowniki ) [show_ui] => 1 [menu_position] => [menu_icon] => [can_export] => 1 [show_in_nav_menus] => 1 [show_in_menu] => 1 [show_in_admin_bar] => 1 [delete_with_user] => [cctm_hierarchical_custom] => 1 [cctm_hierarchical_includes_drafts] => [cctm_hierarchical_post_types] => Tablica ( [0] => operator ) [cctm_custom_columns_enabled] => 0 [post_type] => pojazd [use_default_menu_icon] => 1 [label] => Pojazdy [cctm_show_in_menu] => 1 [cctm_show_in_menu_custom] => [rewrite_with_front] => 1 [permalink_action]/% /%postname [rewrite_slug] => [include_in_search] => 1 [include_in_rss] => 1 [cctm_enable_right_now] => 1 [custom_order] => ASC [is_active] => 1 [custom_fields] => Tablica ( [0] => pasażer_pojemność [1 ] => bagażu_mocy [2] => hourly_rate [3] => included_milleage [4] => extra_mileage_price [5] => extra_image ) [map_field_metabox] => Tablica ( [passenger_capacity] => cctm_vehicledetails [luggage_capacity] => cctm_hourclehicles ] => cctm_vehicledetails [included_milleage] => cctm_vehicledetails [additional_mileage_price] => cctm_vehicledetails [additional_image] => cctm_default ) [original_post_post_type_name] => pojazd [nazwa_klasy] =>_ edytuj pojazd read_post] => read_post [delete_post] => usuń_post [edit_posts] => edit_posts [edit_others_posts] => edit_others_posts [publish_posts] => publikuj_posty [read_private_posts] => read_private_posts [czytaj] => przeczytaj [delete_posts] => delete_posts [delete_private_posts] => delete_post delete_posts [delete_other_published]> => edit_private_posts [edit_published_posts] => edit_published_posts [create_posts] => edit_posts ) ) stdClass Object ( [labels] => stdClass Object ( [name] => Pojazdy [singular_name] => Pojazd [add_new] => Dodaj nowy [add_new_item] => Dodaj nowy pojazd [edit_item] => Edytuj pojazd [new_item] => Nowy pojazd [view_item] => Wyświetl pojazd [search_items] => Wyszukaj pojazdy [not_found] => Nie znaleziono pojazdów [not_found_in_trash] => Nie znaleziono pojazdów w Trash [parent_item_colon] => Operator [all_items] => Pojazdy [menu_name] => Pojazdy [name_admin_bar] => Pojazd ) [description] => Każdy pojazd jest powiązany z Operatorem [publicly_queryable] => 1 [exclude_from_search] => [ zdolniity_type] => post [map_meta_cap] => 1 [_builtin] => [_edit_link] => post.php?post=%d [hierarchiczny] => 1 [publiczny] => 1 [przepisać] => Tablica ( [slug ] => pojazd [with_front] => 1 [strony] => 1 [feeds] => 1 [ep_mask] => 1 ) [has_archive] => 1 [query_var] => [register_meta_box_cb] => [taksonomie] => Tablica ( [0] => kategoria [1] => funkcje [2] => kolory [3] => sterowniki ) [show_ui] => 1 [pozycja_menu] => [icon_menu] => [can_export] => 1 [ show_in_nav_menus] => 1 [show_in_menus] => 1 [show_in_admin_bar] => 1 [delete_with_user] => [cctm_hierarchical_custom] => 1 [cctm_hierarchical_includes_drafts] => [cctm_rays]0]_cot_post_operator => 0 [post_type] => pojazd [use_default_menu_icon] => 1 [label] => Pojazdy [cctm_show_in_menu] => 1 [cctm_show_in_menu_custom] => [rewrite_with_front] => 1 [permalink_action] => /%postname%/ [rewrite_slug ] => [include_in_search] => 1 [include_in_rss] => 1 [cctm_enable_right_now] => 1 [custom_order] => ASC [jest_active] => 1 [custom_fields] => Tablica ( [0] => pojemność_pasażera [1] => pojemność_bagażu [2] => stawka_godzinowa [3] => included_milleage [4] => extra_mileage_price [5] => dodatkowy_obraz ) [ map_field_metabox] => Array ( [passenger_capacity] => cctm_vehicledetails [luggage_capacity] => cctm_vehicledetails [hourly_rate] => cctm_vehicledetails [included_milleage] => cctm_vehicledetails [additional_mileage_price] => cctm_vehicledetails [additional_image] => cctm_default ) [original_post_type_name] => vehicle [ name] => pojazd [cap] => obiekt stdClass ( [edit_post] => edit_post [read_post] => read_post [delete_post] => delete_post [edit_posts] => edit_posts [edit_others_posts] => edit_others_posts [publish_posts] => publikuj_posty [ read_private_posts] => read_private_posts [read] => read [delete_posts] => delete_posts [delete_private_posts] => delete_private_posts [delete_published_posts] => delete_published_posts [delete_others_posts] => [sedit_others] =>rivate_posts [edit_published_posts] => edit_published_posts [create_posts] => edit_posts ) ) **Aktualizacja 2** archive-vehicle.php: <?php /** * Szablon do wyświetlania stron archiwum. * * Używane do wyświetlania stron typu archiwum, jeśli nic bardziej szczegółowego nie pasuje do zapytania. * Na przykład łączy strony oparte na dacie, jeśli nie istnieje plik date.php. * * Dowiedz się więcej: http://codex.wordpress.org/Template_Hierarchy * * @package WordPress * @subpackage Twenty_Ten * @since Twenty Ten 1.0 */ get_header(); ?>

 <?php /* Kolejkowanie pierwszy post, w ten sposób wiemy * z jaką datą mamy do czynienia (jeśli tak jest). * * Resetujemy to później, abyśmy mogli poprawnie uruchomić pętlę * z wywołaniem funkcji rewind_posts().*/ if ( have_posts() ) the_post(); ?>
 <?php if ( is_day() ) : ?> <?php printf( __( 'Archiwa dzienne: %s', 'dwadzieścia') , pobierz_datę() ); ?> <?php elseif ( is_month() ) : ?> <?php printf( __( 'Miesięczne archiwa: %s', 'dwadzieścia' ), get_the_date( _x( 'F Y', 'format daty miesięcznych archiwów', 'dwadzieścia' ) ) ); ?> <?php elseif ( is_year() ) : ?> <?php printf( __( 'Archiwa roczne: %s', 'dwadzieścia' ), get_the_date( _x( 'Y', ' format daty archiwów rocznych', 'dwadzieścia' ) ) ); ?> <?php else : ?> <?php _e( 'Archiwa bloga', 'dwadzieścia' ); ?> <?php endif; ?>
 <?php /* Ponieważ powyżej wywołaliśmy the_post(), musimy * przewinąć pętlę z powrotem do początku, w ten sposób * możemy uruchomić pętlę poprawnie, w całości. */ przewiń_posts(); /* Uruchom pętlę dla strony archiwum, aby wyprowadzić posty. * Jeśli chcesz przeciążyć to w motywie potomnym, dołącz plik * o nazwie loop-archive.php, który zostanie użyty zamiast tego. */ get_template_part( 'pętla', 'archiwum' ); ?>

 <?php get_sidebar(); ?>

 <?php get_footer( ); ?> **Update 3** wp-content\plugins\custom-content-type-manager\controllers\create_post_type.php: <?php /*----------------- -------------------------------------------------- ----------- Utwórz nowy typ posta. -------------------------------------------------- ----------------------------*/ if ( ! zdefiniowano('CCTM_PATH')) exit('Bez bezpośredniego dostępu do skryptu'); if (!current_user_can('administrator')) exit('Tylko administratorzy'); require_once(CCTM_PATH.'/includes/CCTM_PostTypeDef.php'); $dane=tablica(); $data['page_title'] = __('Utwórz niestandardowy typ treści', CCTM_TXTDOMAIN); $data['help'] = 'http://code.google.com/p/wordpress-custom-content-type-manager/wiki/CreatePostType'; $data['wiadomość'] = ''; $data['menu'] = sprintf('%s', __('Anuluj'), __('Anuluj')); $data['edit_warning'] = ''; // używane tylko wtedy, gdy edytujesz post_type, nie usuwasz. // Zmienne dla naszego szablonu $fields = ''; $data['action_name'] = 'custom_content_type_mgr_create_new_content_type'; $data['nonce_name'] = 'custom_content_type_mgr_create_new_content_type_nonce'; $data['submit'] = __('Utwórz nowy typ zawartości', CCTM_TXTDOMAIN); $data['akcja'] = 'utwórz'; $data['post_type'] = ''; // domyślnie $data['def'] = self::$default_post_type_def; // $def = self::$post_type_form_definition; // Zapisz dane, jeśli zostały poprawnie przesłane if ( !empty($_POST) && check_admin_referer($data['action_name'], $data['nonce_name']) ) { $sanitized_vals = CCTM_PostTypeDef::sanitize_post_type_def($_POST); $error_msg = CCTM_PostTypeDef::post_type_name_has_errors($sanitized_vals, true); if ( empty($error_msg)) { // Wyczyść kartę. To wyrzuca każde wystąpienie „is_foreign” (i potencjalnie inne problemy) // które mogą wystąpić, jeśli nazwa typu postu została użyta przez inną wtyczkę i śledzone przez CCTM // niestandardowe pola dla tej wtyczki, a później druga wtyczka została dezaktywowana i // CCTM chce używać tej samej nazwy typu post. unset(CCTM::$data['post_type_defs'][ $sanitized_vals['post_type'] ]); CCTM_PostTypeDef::save_post_type_settings($sanitized_vals);$data['msg'] = CCTM::format_msg( sprintf(__('Typ treści %s został utworzony', CCTM_TXTDOMAIN), ''.$sanitized_vals['post_type'].' ')); self::set_flash($data['msg']); uwzględnij CCTM_PATH . '/kontrolery/list_post_types.php'; zwrócić; } else { // posprzątaj... w szczególności etykiety menu mogą ulec zniszczeniu. :( $data['def'] = $sanitized_vals; $data['def']['labels']['singular_name'] = ''; $data['def']['label'] = ''; $data['msg'] = CCTM::format_error_msg($error_msg); } } $data['icons'] = CCTM_PostTypeDef::get_post_type_icons(); $data['columns'] = CCTM_PostTypeDef::get_columns($post_type) ; $data['orderby_options'] = CCTM_PostTypeDef::get_orderby_options($post_type); $data['content'] = CCTM::load_view('post_type.php', $data); print CCTM::load_view('templates/ default.php', $data); /*EOF*/ wp-content\plugins\custom-content-type-manager\includes\CCTM.php register_custom_post_types funkcja: publiczna funkcja statyczna register_custom_post_types() { //powrót; $post_type_defs = self::get_post_type_defs(); foreach ($post_type_defs as $post_type => $def) { $def = self::_prepare_post_type_def($def); if ( isset($def['is_active']) && !empty($def['is_active']) && !in_array($post_type, self::$built_in_post_types) && isset($def['post_type']) ) { register_post_type( $post_type, $def ); } } // Dodawane dla każdego problemu 50 // http://code.google.com/p/wordpress-custom-content-type-manager/issues/detail?id=50 if (self::get_setting('flush_permalink_rules') ){ globalny $wp_rewrite; $wp_rewrite->flush_rules(); } }


title: Użyj oEmbed w elementach listy

text:
Wiem, że WordPress posiada funkcjonalność oEmbed. Ale treść, która ma zostać osadzona, musi znajdować się w osobnej linii, tak jak poniżej: Lorem Ipsum http://www.youtube.com/link/to/content Więcej Lorem Ipsum Niestety mój znacznik wygląda tak, więc oEmbed nie działa i Muszę użyć wtyczki.

http://www.youtube.com/link/to/content

http://www.youtube.com/link/to/content

 Czy mimo to mogę uruchomić oEmbed bez tej wtyczki? Linia lub dwie w functions.php byłyby lepsze niż ta wtyczka.


title: Jak wyświetlić szczegóły wpisu na blogu na innej stronie?

text:
Obecnie stworzyłem szablon do listy moich postów na blogu <?php /*nazwa szablonu: Figures */ get_header(); ?> <?php nectar_page_header($post->ID); ?>

 <?php $args = array( 'posts_per_page' => 5, 'orderby' => 'rand', 'post_type' => 'post', 'post_status' => 'opublikuj' ); $mojeposty = get_posts( $args ); echo '
'; foreach ( $myposts jako $post ): setup_postdata( $post ); ?>
 <?php echo get_the_post_thumbnail($post->ID, 'medium'); ?> <a href="<?php the_permalink(); ?>"><?php echo $post->post_title; ?>
 <?php endforeach; echo '
'; ?>

 <?php get_sidebar(); ?>

 <?php get_footer(); ?> Czego nie znam, czy mogę stworzyć inną stronę, aby pokazać wyniki? Ponieważ jeśli kliknę permalink postów, przeniesie mnie do domyślnego widoku szczegółów bloga i muszę to zmienić


title: Konwertuj wszystkie daty w polu na czas uniksowy, z wyjątkiem tych, które już są w czasie uniksowym

text: Mam pole meta, które jest mieszane z datami MM/dd/rr gg:mm i datami sygnatury czasowej systemu Unix. Jak przekonwertować wszystkie daty MM/dd/rr gg:mm w db na Unix? Mam ograniczoną wiedzę na temat PHP i SQL, więc bądź delikatny. Dziękuję!


title: meta_query z tablicą jako wartością z wieloma tablicami

text: Mam już kilka wskazówek, jak to zrobić, zobacz tutaj: meta_query z tablicą jako wartością, ale jestem zdezorientowany wieloma meta_zapytaniami w następujący sposób: for ($i=0; $i<count($amenities);$i++) {$count = liczba($tablice); $arrays[$count] = array( 'klucz' => 'udogodnienia', 'wartość' => $udogodnienia[$i], 'porównaj' => 'LUBIE' ); } for ($j=0; $j< ilość($udogodnienia2); $j++) { $liczba2 = ilość($tablice2); $arrays2[$count2] = array( 'klucz' => 'udogodnienia', 'wartość' => $udogodnienia[$j], 'porównaj' => 'LUBIĘ' ); } to jak zawrzeć $arrays2 w poniższym zapytaniu z 'relation' => 'AND'? $the_query = new WP_Query(array( 'post_type' => 'listing', 'post_status' => 'publish', 'category_name' => 'private_rental', 'meta_query' => $arrays ));


title: Lista postów według ich niestandardowego terminu taksonomii, z warunkiem

text:
Mam dwie niestandardowe taksonomie o nazwie „custom-category” i „file_type”. Używam poniższego kodu, aby wyświetlić wszystkie terminy „file_type” wraz z powiązanymi z nimi postami. Tak: File_Type Term 1 * post * post * post File_Type Term 2 * post * post * post i tak dalej... Mój problem polega na tym, że muszę dodać do tego jeszcze jeden warunek. Chcę wyświetlać posty tylko wtedy, gdy **również** mają określony termin w taksonomii „kategorii niestandardowej”. Tak więc dla każdego terminu file_type chcę, aby wyświetlały się tylko posty, które mają ten termin ORAZ mają termin „jednostki szkoleniowe” w taksonomii kategorii niestandardowej (identyfikator terminu to 9). Jestem zmieszany. Oto mój działający kod do wyświetlania wpisów według terminu file_type. Jak dodać ten dodatkowy warunek? <?php $kategorie = get_terms('typ_pliku'); foreach ( $kategorie jako $kategoria ) : ?>
<?php echo $kategoria->nazwa; ?>
 <?php $posts = get_posts(array( 'post_type' => 'produkt', 'taksonomia' => $kategoria->taksonomia, 'term' => $kategoria->slug )); // Oto druga, zagnieżdżona pętla foreach, która przechodzi przez posty powiązane z tą kategorią foreach($posts as $post) : setup_postdata($post); ?>

<?php the_title(); ?>
 <?php the_post_thumbnail('produkt'); ?> <a href="<?php the_permalink(); ?>" class="button">Więcej informacji
 <?php endforeach; ?> <?php endforeach; ?>


title: Użyj stylu metabox wprowadzania tagów dla kategorii

text: Używam kategorii do tworzenia osi czasu wiadomości, na przykład http://newslines.org/misha-collins/ (sprawdź chmurę na dole strony, aby uzyskać więcej przykładów) Problem dotyczy ekranu Dodaj post. W metapolu wejściowym Kategorie są używane pola wyboru. W miarę powiększania się listy kategorii przewijanie tej listy staje się bardzo czasochłonne. Mógłbym przekonwertować kategorie na Tagi (co jest bardzo łatwe), abym mógł użyć metabox wprowadzania tagów, który ma autouzupełnianie ajax, ale wtedy musiałbym zmienić kod motywu na całą witrynę, aby zamiast tego wyświetlał tagi kategorii. Zastanawiałem się więc, czy mógłbym po prostu zmienić metaboks kategorii, aby miał ten sam styl autouzupełniania Ajax, co metaboks tagów. Wszystkie porady są doceniane!


title: Zewnętrzny skrypt używający WP - Hooki / Akcje nie działają?

text: Zbadałem ten problem dogłębnie, ale wciąż jestem zakłopotany. **Mówiąc prosto, mam zewnętrzny skrypt do przesyłania, który ładuje WP. Jednak wydaje się, że nie mogę uchwycić żadnej z działań/filtrów, które w to włożyłem. Dlaczego tak jest?** Próbowałem różnych metod ładowania WP w skrypcie. Zwraca to 404, gdy przesyłający (javascript) go wywołuje: define( 'WP_USE_THEMES', false ); require_once('../../wp-blog-header.php'); Tak więc rozwiązanie, które znalazłem, wydaje się działać dobrze: require_once('../../wp-config.php'); $wp->init(); $wp->parse_request(); $wp->query_posts(); $wp->register_globals(); Ten powyższy przykład wydaje się działać, z wyjątkiem tego, że nie mogę znaleźć żadnego wyobrażalnego sposobu, aby się do niego podłączyć. Nawet jeśli umieściłbym cały procesor przesyłania w funkcji, która łączy się z różnymi miejscami, takimi jak ... add_action('plugins_loaded', 'the_upload_processing_function'); //lub add_action('wp_loaded', 'the_upload_processing_function'); //i tak dalej... Martwe powietrze... brak odpowiedzi. Skrypt będzie działał, jeśli zostawię go poza funkcją, po prostu działa pod kodem startowym ładowania wordpress, **ale haki / akcje nie działają.** Wynik, którego nie mogę osiągnąć: * Wtyczka wywołuje skrypt uploadera przez javascript, upload.php (działa)... * Wtyczka, miejmy nadzieję, załaduje się przed skryptem uploadu i, w zależności od zmiennej $_POST, zmieni ścieżkę katalogu docelowego za pomocą filtra: To jest filtr... $ targetDir = apply_filters('ss_upload_destination', $targetDir); * Należy zatem zmienić $`targetDir`, ale haki wydają się niewidoczne dla wtyczki. Absolutnie nie ma mowy, żeby go złapać. Zmęczyłem się opisywaniem problemu bez przedłużania go. Byłbym wdzięczny za wszelkie spostrzeżenia, którymi można się podzielić. * * * **Dla odniesienia, oto cały skrypt przesyłania:** <?php require_once('../../wp-config.php'); $wp->init(); $wp->parse_request(); $wp->query_posts(); $wp->register_globals(); //definiuj( 'WP_USE_THEMES', fałsz ); //require_once('../../wp-blog-header.php'); if(!is_user_logged_in()) die(); // Upewnij się, że plik nie jest buforowany (jak to się dzieje na przykład na urządzeniach iOS) header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Ostatnia modyfikacja: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Kontrola pamięci podręcznej: brak przechowywania, brak pamięci podręcznej, konieczność ponownego sprawdzenia poprawności"); header("Kontrola pamięci podręcznej: post-check=0, pre-check=0", false); header("Pragma: brak pamięci podręcznej"); /* // Obsługa nagłówka CORS("Access-Control-Allow-Origin: *"); // inne nagłówki CORS, jeśli są... if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') { exit; // zakończ tutaj żądania CORS preflight } */ // 5 minut czasu wykonania //@set_time_limit(5 * 60); // Odkomentuj ten, aby sfałszować czas wysyłania // usleep(5000); // Ustawienia $targetDir = ss_upload_dir . ss_blog_path . '/'; if(!is_numeric($_REQUEST['upload_destination'])) umrzeć; $blog_id = $_REQUEST['upload_destination']; switch_to_blog($blog_id); $ścieżka = ss_get_blog_path($blog_id); $targetDir = ss_upload_dir . $ścieżka . '/'; $targetDir = apply_filters('ss_upload_destination', $targetDir); //$targetDir = 'przesyłane'; $cleanupTargetDir = fałsz; // Usuń stare pliki $maxFileAge = 5 * 3600; // Tymczasowy wiek pliku w sekundach // Pobierz nazwę pliku if (isset($_REQUEST["nazwa"])) { $fileName = $_REQUEST["nazwa"]; } elseif (!empty($_FILES)) { $nazwapliku = $_FILES["plik"]["nazwa"]; } else { $nazwa_pliku = uniqid("plik_"); } $ścieżka_pliku = $katalog_docelowy . $nazwa_pliku; // Chunking może być włączony $chunk = isset($_REQUEST["chunk"]) ? intval($_REQUEST["fragment"]) : 0; $kawałki = isset($_WNIOSEK["kawałki"]) ? intval($_REQUEST["kawałki"]) : 0; // Usuń stare pliki tymczasowe if ($cleanupTargetDir) { if (!is_dir($targetDir) || !$dir = opendir($targetDir)) { die('{"jsonrpc" : "2.0", "error" : { "code": 100, "message": "Nie udało się otworzyć katalogu tymczasowego."}, "id" : "id"}'); } while (($plik = readdir($dir)) !== false) { $tmpfilePath = $targetDir . $plik; // Jeśli plik tymczasowy jest plikiem bieżącym, przejdź do następnego if ($tmpfilePath == "{$filePath}.part") { continue; } // Usuń plik tymczasowy, jeśli jest starszy niż maksymalny wiek i nie jest bieżącym plikiem if (preg_match('/\.part$/', $file) && (filemtime($tmpfilePath) < time() - $maxFileAge )) { @unlink($tmpfilePath); } } closedir($katalog); } // Otwórz plik tymczasowy if (!$out = @fopen("{$filePath}.part", $chunks ? "ab" : "wb")) { die('{"jsonrpc" : "2.0", " error" : {"code": 102, "message": "Nie udało się otworzyć strumienia wyjściowego."}, "id" : "id"}'); } if (!empty($_FILES)) { if ($_FILES["plik"]["błąd"] || !is_uploaded_file($_FILES["plik"]["tmp_name"])) { die('{" jsonrpc" : "2.0", "error" : {"code": 103, "message": "Nie udało się przenieść przesłanego pliku."}, "id" : "id"}'); } // Odczytaj binarny strumień wejściowy i dołącz go do pliku tymczasowego if (!$in = @fopen($_FILES["file"]["tmp_name"], "rb")) { die('{"jsonrpc" : " 2.0", "error" : {"code": 101, "message": "Nie udało się otworzyć strumienia wejściowego."}, "id" : "id"}'); } } else { if (!$in = @fopen("php://input", "rb")) { die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "Nie udało się otworzyć strumienia wejściowego."}, "id" : "id"}'); } } while ($buff = fread($in, 4096)) { fwrite($out, $buff); } @fclose($out); @fclose($w); // Sprawdź, czy plik został przesłany if (!$chunks || $chunk == $chunks - 1) { // Usuń tymczasowy przyrostek .part rename("{$filePath}.part", $filePath); do_action('ss_file_upload_complete', $filePath); } do_action('ss_after_upload'); // Zwróć sukces odpowiedzi JSON-RPC die('{"jsonrpc" : "2.0", "result" : null, "id" : "id"}');


title: Jak mogę utworzyć niestandardowy shortcode, który zwróci niestandardowy typ postu według identyfikatora?

text:
Proszę wybaczyć moją ignorancję, wydaje się to proste, ale nie mogę tego rozgryźć, a ja spieszyłem się, aby razem zhakować. Nie mogę znaleźć w internecie niczego, co mogłoby mi pomóc. **Co mam:** Niestandardowy typ posta o nazwie „case_study”. Będzie ich dużo i będą używane w różnych miejscach na stronie, niektóre z nich więcej niż jeden raz. **Czego potrzebuję:** Aby w razie potrzeby wydrukować indywidualne studium przypadku, za pomocą dowodu tożsamości. Czuję, że użycie shortcode byłoby najbardziej oczywistym sposobem na zrobienie tego, ale nie udaje mi się tam dotrzeć. (Być może istnieje lepsza opcja przyjazna dla użytkownika?) Chciałbym, aby mój shortcode działał tak: [case_study id=31] Oto mój kod wtyczki. To obecnie wyświetla całą kategorię studium przypadku, gdy używam krótkiego kodu: //Typ postu studium przypadku add_action('init', 'register_cpt_case_study'); function register_cpt_case_study() { $labels = array( 'name' => _x('Studia przypadków', 'case_study'), 'singular_name' => _x('Studium przypadku', 'case_study'), 'add_new' => _x ('Dodaj nowe', 'case_study'), 'add_new_item' => _x('Dodaj nowe studium przypadku', 'case_study'), 'edit_item' => _x('Edytuj studium przypadku', 'case_study'), 'new_item ' => _x('Nowe studium przypadku', 'case_study'), 'view_item' => _x('Wyświetl studium przypadku', 'case_study'), 'search_items' => _x('Wyszukaj studium przypadku', 'case_study' ), 'not_found' => _x('Nie znaleziono studiów przypadku', 'case_study'), 'not_found_in_trash' => _x('Nie znaleziono studiów przypadku w Koszu', 'case_study'), 'parent_item_colon' => _x(' Studium przypadku nadrzędnego:', 'case_study'), 'menu_name' => _x('Case Studies', 'case_study'), ); $args = array( 'labels' => $labels, 'hierarchical' => false, 'description' => 'Wtyczka studium przypadku dla lepszego zarządzania i organizacji', 'supports' => array('title', 'editor '), 'public' => false, 'show_ui' => true, 'show_in_menu' => true, 'menu_icon' => 'http:www.changethis.com', //zmień tę ikonę 'show_in_nav_menus' => false , 'publicly_queryable' => true, 'exclude_from_search' => true, 'has_archive' => false, 'query_var' => true, 'can_export' => true, 'rewrite' => true, 'capability_type' => 'post ' ); register_post_type('case_study', $args); } // KRÓTKI KOD DLA STUDIUM PRZYPADKU function case_study_shortcode($atts) { extract(shortcode_atts(array( 'id' => '', ), $atts)); // Zapytanie query_posts('post_type=case_study'); //Pętla if (have_posts()) : while (have_posts()) : the_post(); echo '
'; echo tytuł_(); echo '
'; echo the_content(); koniec; w przeciwnym razie: endif; //Resetuj zapytanie wp_reset_query(); } add_shortcode('case_study', 'case_study_shortcode'); Wszelkie porady byłyby bardzo mile widziane!


title: Usuń element menu nawigacyjnego za pomocą skryptu

text: Chcę utworzyć niestandardowe menu nawigacyjne za pomocą skryptu we wtyczce wp. Już prawie jestem na miejscu, korzystając z tego samouczka. Jedyne, czego potrzebuję, to możliwość usunięcia wpisów w menu. coś takiego jak wp_delete_nav_menu_item ($ menuID, $ itemID); Jako alternatywę mógłbym stworzyć nowe menu używając wp_create_nav_menu($menu_name); więc nie muszę usuwać domyślnych wpisów menu, z którymi inaczej pracowałbym. Problem polega na tym, że motyw zawiera opcje pozycji menu, takie jak „nagłówek” i nie wiem, jak mogę zdefiniować pozycja dla nowo utworzonego menu.Mam nadzieję, że ktoś może udzielić porady, abym mógł rozwiązać jeden z tych problemów.Dzięki!To jest kod, z którym do tej pory pracuję.Potrzebuję kodu dla części, aby usunąć domyślne wpisy //Dodaj menu //Pobierz identyfikator menu $mymenu = wp_get_nav_menu_object('Header'); $menuID = $mymenu->term_id; //Sprawdź, czy Menu istnieje if( !$mymenu ) { //Menu istnieje -> Usuń domyślne wpisy // } else { //Menu nie istnieje -> Utwórz je $menuID = wp_create_nav_menu('Nagłówek'); } //Utwórz nowe wpisy menu //Utwórz wpisy menu nadrzędnego $myPage = get_page_by_title( 'Home' ); $itemData = array( 'menu-item-object-id' => $myPage->ID, 'menu-item-parent-id' => 0, 'ja nu-item-position' => 1, 'menu-item-object' => 'strona', 'menu-item-type' => 'post_type', 'menu-item-status' => 'opublikuj' ); wp_update_nav_menu_item ($menuID, 0, $itemData);


title: Strona wyświetla się, ale inspektor pokazuje błąd 500 Internal Server?

text: Ustawiłem niestandardowe adresy URL dla witryny opartej na wordpressie (nie używając stron ani postów wordpress), ale niestandardowe adresy URL i zawierające niestandardowe szablony stron. Kilka adresów URL działa poprawnie, z wyjątkiem jednego, strona wyświetla się dobrze, ale inspektor pokazuje wewnętrzny błąd serwera 500. Tak więc pytanie brzmi, gdzie wordpress wyprowadza informacje nagłówka, jakikolwiek hak lub filtr, aby je zmienić lub jaki jest właściwy sposób dodawania niestandardowych wzorców adresów URL. Używam `add_rerite_tag()`, a następnie `add_permastruct()` w końcu używam `template_redirect()` do załadowania niestandardowego pliku php.


title: Strona wyświetlająca posty na stronie głównej

text: Chcę poznać stronę odpowiedzialną za wyświetlanie wpisów na blogu w WordPressie. Gdzie prawdopodobnie mogę spodziewać się znalezienia zapytania SQL i renderowania postów, aby móc samodzielnie edytować niektóre rzeczy.


title: Problem użytkowników (wielu autorów i wiele witryn)

text: wszystko. Mam problem związany z użytkownikami w witrynie wielu autorów (w rzeczywistości dwie witryny w witrynie z wieloma witrynami, z których obie mają tych samych użytkowników). Oto kilka szczegółów: 1) Na liście użytkowników zaplecza liczba użytkowników w nawiasach u góry jest prawidłowa (5), ale na rzeczywistej liście pojawiają się tylko dwa. 2) Problematyczni użytkownicy mogą zalogować się do administratora. Jednak jeden z nich widzi tylko lewą kolumnę; główny obszar treści administratora pozostaje dla niego pusty. Nazwiemy go „Użytkownik 1”. Co dziwne, jedyny aktywny użytkownik „problematycznych użytkowników” nadal może publikować. 3) W interfejsie, w jednej witrynie multisite, istniejące posty są wyświetlane dobrze, nawet przez użytkownika 1. Jednak w drugiej witrynie brakuje postów użytkownika 1. Oznacza to, że brakuje rzeczywistej pełnej strony posta. Post pojawia się na stronie archiwum wraz z nazwą użytkownika, ale strona pojedynczego posta renderuje tytuł, ale nie treść. 4) Na (statycznej) stronie głównej używam zapytania o fragmenty WP, aby renderować fragmenty ostatnich pięciu postów. To renderuje się dobrze, dopóki nie trafi na pierwszy fragment, który ma pokazać od Użytkownika 1, w którym to momencie strona przestaje się renderować, w wyniku czego jego fragment, a także pasek boczny i stopka (które pojawiają się później w kodzie HTML) nie są renderowanie. Wygląda na to, że to się zaczęło, gdy Użytkownik 1 edytował swój profil, więc rozważam utworzenie tymczasowego użytkownika, usunięcie jego profilu z bazy danych (nie można go usunąć w admin, ponieważ tak naprawdę nie pojawia się na liście) i przypisanie jego posty do tymczasowego, a następnie ponowne utworzenie konta użytkownika, aby sprawdzić, czy to rozwiąże problem. Ale może ktoś inny ma lepsze pomysły. Obecnie używam wersji 3.9, ale wygląda na to, że problemy z użytkownikiem 1 zaczęły się przed aktualizacją.


title: usuń menu administratora wtyczki w wordpressie bez instalowania wtyczki w wersji 3.8.1

text: Postępuję zgodnie z instrukcjami na tej stronie, aby usunąć niektóre menu administratora. http://codex.wordpress.org/Function_Reference/remove_menu_page Ale wygląda na to, że działa tylko na domyślnych menu administratora wp. Menu administratora dodane przez wtyczki nie jest usuwane. Na przykład próbowałem usunąć menu administratora wordpress seo przez yoast za pomocą remove_menu_page( 'admin.php?page=wpseo_dashboard' ); Ale menu pozostaje tam. Wszystkie inne standardowe menu administratora wp zostały usunięte z wyjątkiem wp seo przez yoast. Masz pomysł, jak mogę również usunąć menu administratora wtyczek? Widziałem kilka podobnych pytań, ale zalecane kody nie wydają się być zgodne z 3.8.1, więc dodałem to pytanie, aby rozpocząć nowe nowe pytanie specyficzne dla 3.8.1 Dzięki


title: Dodaj pozycję menu w określonej kolejności

text: Używam poniższego kodu, aby programowo dodać pozycję menu logowania/wylogowania do WordPressa. Próbuję wymyślić, jak określić położenie tego menu na pozycji #2. IE - Menu główne Strona główna | Zaloguj/Wyloguj | Skontaktuj się z nami add_filter('wp_nav_menu_items', 'voodoo_loginout_link', 10, 2); function voodoo_loginout_link($items, $args) { $voodooredir = htmlspecialchars($_SERVER['REQUEST_URI']); $loginoutlink = wp_loginout($voodooredir, false); zwróć $items . "<li> $loginoutlink </li>"; }


title: W tym starsza wersja jQuery dla IE7/IE8

text: Zdaję sobie sprawę, że jQuery 2.0 porzucił wsparcie dla niektórych przeglądarek, w tym IE7 i IE8. Używam tylko trochę jQuery na mojej witrynie WordPress, ale ponieważ muszę obsługiwać IE7/IE8, zastanawiałem się, jak najlepiej byłoby włączyć starsze wersje jQuery? A może powinienem wybrać jedną wersję (np. 1.9.1), która obsługuje starsze i bardziej nowoczesne przeglądarki i trzymać się tego? Obecnie wstrzykuję jQuery do mojego `functions.php` w następujący sposób: if (!is_admin()) add_action("wp_enqueue_scripts", "my_jquery_enqueue", 11); funkcja my_jquery_enqueue() { wp_deregister_script('jquery'); wp_register_script('jquery', "http" . ($_SERVER['SERVER_PORT'] == 443 ? "s" : "") . "://ajax.googleapis.com/ajax/libs/jquery/1.9.0/ jquery.min.js", fałsz, null); wp_enqueue_script('jquery'); } Każda pomoc jest mile widziana. Z góry dziękuję!


title: Zezwalaj na niefiltrowany kod HTML dla niezalogowanych użytkowników podczas zapisywania posta

text:
Używam tego kodu: $var1 = $_GET["t1s2ninput"]; $zmienna2 = $_GET["t1s2pinput"]; $new_post = array ( 'post_title' => 'Tytuł

Odmiana:

'. $var1 .'

', 'post_author ' => 5, 'post_content' => 'Lorem ipsum', 'post_status' => 'publikuj', 'post_type' => 'produkt', ); $post_id = wp_insert_post($nowy_post); wp_set_post_terms ($post_id, 72, "product_cat"); $zmienna3 = $zmienna2 / 1; update_post_meta( $post_id, '_price', $var3 ); globalny $woocommerce; $woocommerce->koszyk->add_to_cart($post_id, 1); Kiedy jestem zalogowany jako administrator, działa bezbłędnie, jednak w każdym innym przypadku (wylogowany, inny użytkownik...) tytuł posta nie działa tak, jak powinien, znaczniki `HTML` (w tym przypadku `< dl class="variation">` i inne) znikną. Co ja robię źle? Dziękuję Ci.


title: jak wyświetlić dane z bazy mysql w poście

text: Jestem nowy w używaniu worddress. Próbuję stworzyć stronę internetową, która pokaże tabelę danych z mojej bazy danych mysql. czy jest jakaś darmowa wtyczka, która będzie w stanie to zrobić?


title: biblioteka multimediów nie wyświetla miniatur po usunięciu pełnego obrazu

text: Używam trochę kodu, który usuwa niepotrzebne pełne obrazy po wgraniu i dodaniu różnych rozmiarów. usuwanie funkcji w functions.php: add_filter( 'wp_generate_attachment_metadata', 'delete_fullsize_image' ); funkcja delete_fullsize_image( $metadane ) { $upload_dir = wp_upload_dir(); $full_image_path = trailingslashit( $upload_dir['basedir'] ) . $metadane['plik']; $usunięte = odłącz ($pełna_ścieżka_obrazu ); zwróć $metadane; } Działa to świetnie, ale problem polega na tym, że nie widzę już żadnych miniatur w bibliotece multimediów, ponieważ są one generowane tylko przez obraz w pełnym rozmiarze. To sprawia, że praca z przesłanymi obrazami jest naprawdę skomplikowana/trudna. Czy w jakiś sposób można to „naprawić” i uzyskać te małe miniatury w bibliotece multimediów z innego rozmiaru (np. Średniego, dużego lub dowolnego niestandardowego rozmiaru)? Z góry dziękuję, chłopaki.


title: Problem z wp_editor

text:
Próbowałem dodać wp_editor w tej funkcji, ale bez powodzenia. Czy ktoś może mi pomóc dodać wp_editor w polu 'historia'.. function guestposts_shortcode( $atts ) { extract ( shortcode_atts (array( 'cat' => '1', 'author' => '1', 'thanks' =) > get_bloginfo('home'), ), $atts ) ); return '<form class="guests-post" action="'. plugin_dir_url("guest-posts.php") .'guest-posts/guest-posts-submit.php" method="post"> ' . __('Tytuł posta:', 'posty-gości') . '
 <input type="text" name="title" size="60" required="required" placeholder="' . __('Tytuł posta', 'guest-posts') . '">
 ' . __('Historia', 'posty-gości') . ' '. wp_nonce_field() .' <textarea rows="15" cols="72" required="required" name="story" placeholder="' . __('Zacznij pisać swój post tutaj', 'guest-posts') '"></textarea >
 ' . __('Tagi', 'posty-gości') . '
 <input type="text" name="tags" size="60" placeholder="' . __('Tagi oddzielone przecinkami', 'guest-posts') '">

 ' . __('Twoje imię', 'posty gości') . '
 <input type="text" name="autor" size="60" required="required" placeholder="' . __('Twoje imię i nazwisko', 'guest-posts') . '">
 ' . __('Twój e-mail', 'posty-gości') . '
 <input type="email" name="email" size="60" required="required" placeholder="' . __('Twój e-mail tutaj', 'guest-posts') . '">
 ' . __('Twoja witryna', 'posty-gości') . '
 <input type="text" name="site" size="60" placeholder="' . __('Twoja witryna', 'guest-posts') '">

 <input type="ukryty" value="'. $cat .'" name="kategoria"><input type="ukryty" value="'. $autor .'" name=" authorid"> <input type="hidden" value="'. $thanks .'" name="dzięki"> <input type="hidden" value="'. str_replace('/wp-content/themes', ' ', get_theme_root() .'/wp-blog-header.php" name="rootpath"> <input type="submit" value="' .__('Submit The Post', 'guest-posts') . '"> <input type="reset" value="' . __('Reset', 'guest-posts') '">
 </form> '; } add_shortcode( 'posty-goscie', 'posty_goscie_shortcode' ); ?> A to jest submit.php <?php //Pobierz przesłany formularz ob_start(); require_once($_POST["ścieżka główna"]); $tytuł = $_POST["tytuł"]; $historia = $_POST["historia"]; $tagi = $_POST["znaczniki"]; $autor = $_POST["autor"]; $e-mail = $_POST["e-mail"]; $witryna = $_POST["witryna"]; $authorid = $_POST["authorid"]; $kategoria = $_POST["kategoria"]; $dziękuję = $_POST["dzięki"]; $ścieżka = $_POST["ścieżka główna"]; $nonce=$_POST["_wpnonce"]; //Załaduj WordPressa //wymagaj($ścieżka); //Zweryfikuj pola formularza //Właściwości Postu $new_post = array( 'post_title' => $title, 'post_content' => $story, 'post_category' => $category, // Można używać również dla niestandardowych taksonomii 'tags_input' = > $tags, 'post_status' => 'oczekujące', // Wybierz: publikuj, podgląd, przyszłość, wersja robocza itp. 'post_type' => 'post', //'post',page' lub użyj niestandardowego typu postu jeśli chcesz 'post_author' => $authorid //Identyfikator autora ); //zapisz nowy post $pid = wp_insert_post($new_post); /* Wstaw dane formularza do pól niestandardowych */ add_post_meta($pid, 'author', $author, true); add_post_meta($pid, 'autor-e-mail', $email, prawda); add_post_meta($pid, 'strona-autora', $strona, prawda); header("Lokalizacja: $dziękuję"); ?>


title: Jak sprawić, by taksonomia była zarówno hierarchiczna, jak i nie

text: Potrzebuję, aby moja taksonomia była listą kontrolną, więc ustawiam `hierarchical => false`. Jednak potrzebuję również funkcji wyszukiwania podobnej do tej, gdy hierarchia jest ustawiona na wartość true. Czy istnieje sposób na „połączenie” obu? Lub jak dodać funkcję wyszukiwania do mojej taksonomii?


title: Ostatni post stylizowany inaczej niż inne posty

text:
Jestem z tym kompletnie pomieszany. Potrzebuję, aby pierwszy post pętli wyglądał inaczej, jako rodzaj magazynu, wiesz: większa miniatura i większy tytuł. Próbowałem już nth-of-type w CSS, :first-child i różne odmiany php. Ale nic nie działa. Oto główna część kodu na index.php::
Najnowsze
 <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <div class="fragment postu <?php echo (++$j % 2 == 0) ? 'last' : ''; ?>"> <a href="<?php the_permalink() ?>" title="<?php the_title(); ?>" rel="nofollow" id="featured-thumbnail">

 <?php if ( has_post_thumbnail() ) { ?> <a href="<?php the_permalink() ?>" title="<?php the_title(); ?>" rel="zakładka"> <?php echo '
'; the_post_thumbnail('slider',array('title' => '')); echo '
'; ?> <?php } ?>

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

  <?php echo human_time_diff( get_the_time('U'), current_time('timestamp') ) . ' temu'; ?>

 Będę niezmiernie wdzięczny, jeśli możesz mi w tym pomóc.


title: Wielu przesyłających obrazy

text:
Ok, używając poniższego kodu, próbowałem dodać dwa pola przesyłania do typu postów kosztowych dla recenzji, które są przesyłane przez klientów w interfejsie witryny tutaj: http://pictureperfectponds.com/testimonials-submit-your-review / /* -------------------------------*/ /* Prześlij i załącz zdjęcie klienta - przed */ /* - ------------------------------*/ if( !isset($rc_swt_options['disable_picture']) ) { if( trim ( $_POST['client_picture'] ) === '' ) { require_once (ABSPATH . 'wp-admin/includes/admin.php'); $id = media_handle_upload( 'klient_obraz', $post_id ); unset($_FILES); if ( is_wp_error($id)) { $errors['upload_error'] = $id; $id = fałsz; } if( $errors ) { $client_picture_error = apply_filters( 'rc_swt_error_upload', __('Wystąpił błąd podczas przesyłania poprzedniego obrazu.', 'rc_swt') ); $hasError = prawda; } else { $client_picture_url = wp_get_attachment_url ($id ); update_post_meta( $post_id, $field_prefix . 'client_picture', $client_picture_url ); } } } /* -------------------------------*/ /* Prześlij i dołącz zdjęcie klienta - po */ / * -------------------------------*/ if( !isset($rc_swt_options['disable_picture_after'])) ) { if ( trim( $_POST['client_picture_after'] ) === '' ) { require_once(ABSPATH . 'wp-admin/includes/admin.php'); $id = media_handle_upload( 'client_picture_after', $post_id ); unset($_FILES); if ( is_wp_error($id)) { $errors['upload_error'] = $id; $id = fałsz; } if( $errors ) { $client_picture_after_error = apply_filters( 'rc_swt_error_upload', __('Wystąpił błąd podczas przesyłania twojego zdjęcia po.', 'rc_swt') ); $hasError = prawda; } else { $client_picture_after_url = wp_get_attachment_url ($id ); update_post_meta( $post_id, $field_prefix . 'client_picture_after', $client_picture_after_url ); } } } A formularz jest kodem tutaj: <?php if( !isset($rc_swt_options['disable_picture']) ) { ?>  < ?php echo apply_filters( 'rc_swt_label_upload_profile', __('Prześlij swój obraz przed:', 'rc_swt') ); ?> <input type="file" name="client_picture" id="client_picture" class="rc_swt_testimonials_form_input" /> <?php if( isset($client_picture_error) && $client_picture_error != '') { ? > <?php echo $client_picture_error; ?>

 <?php } ?> <?php } ?> <?php if( !isset($rc_swt_options['disable_picture_after']) ) { ?>  <?php echo apply_filters( 'rc_swt_label_upload_after', __('Prześlij swój obraz po:', 'rc_swt') ); ?> <input type="file" name="client_picture_after" id="client_picture_after" class="rc_swt_testimonials_form_input" /> <?php if( isset($client_picture_after_error) && $client_picture_after_error != '') { ? > <?php echo $client_picture_after_error; ?>

 <?php } ?> <?php } ?> Czy ktoś może zobaczyć, czego mi brakuje, aby to zadziałało? A może nie jest możliwe posiadanie dwóch pól do przesyłania obrazów na interfejsie? Próbowałem trybu debugowania i nie zauważyłem żadnych błędów z tym związanych. Drugi obraz nie zostanie przesłany. Mogę również wypełnić pole na desce rozdzielczej za pomocą metabox, ale to jest sprzeczne z celem. Pomoc jest bardzo ceniona! Matt


title: Proste, przyjazne dla SEO niestandardowe przepisanie adresu URL $_GET za pomocą htaccess

text: Mam ten adres URL: http://sitename.com/?game=runescape Czy można zmodyfikować plik htaccess lub przepisać adres URL za pomocą Wordpress, aby wyglądał następująco: http://sitename.com/game/runescape


title: Niestandardowy typ posta jako problem ze stroną główną

text: Napisałem wtyczkę, która wykorzystuje niestandardowe typy postów do tworzenia serii stron. Mam kod, który dodaje CPT do menu rozwijanego „Czytanie” i działa świetnie. Oto jest... add_filter( 'get_pages', 'add_wpwebinar_front' ); function add_wpwebinar_front( $pages ) { $my_wpwebinar_pages = new WP_Query( array( 'post_type' => 'wpwebinar') ); if ( $my_wpwebinar_pages->post_count > 0 ) { $pages = array_merge( $pages, $my_wpwebinar_pages->posts ); } return $pages; } Kod działa, ale jeśli wybierzesz niestandardowy typ posta jako stronę główną, przekieruje on do rzeczywistej strony CPT. Przykład... domain.com przekieruje do domain.com/slug/pagename Aby to naprawić, znalazłem ten kod, który dodałem... function enable_front_page_stacks( $query ){ global $post, $wp_query; if('' == $query->query_vars['post_type'] && 0 != $query->query_vars['page_id']) $query->set('post_type', 'wpwebinar'); } add_action( 'pre_get_posts', 'enable_front_page_stacks' ); Dzięki temu jako stronę główną pozostaje niestandardowy typ postu. Ale... mam kilka problemów. 1. Jeśli wybierzesz domyślną opcję pokazywania najnowszych postów, JEST OK. 2. Jeśli wybierzesz stronę Custom Post Type jako stronę główną, JEST OK. Problem polega na tym, że jako stronę główną wybierzesz normalną stronę. Dziedziczy szablon Custom Post Type i oczywiście nie pokazuje zawartości strony, ponieważ nie ma tam kodu. Jestem pewien, że poprawka jest prosta, ale nie mam pojęcia, co zmienić. Pomysły ktoś? Byłoby to bardzo mile widziane.


title: Dodawanie pojedynczego pola wprowadzania tekstu do niestandardowego widżetu Dashboard

text: Mam klienta, któremu chcę zapewnić jak największą kontrolę Dashboardu nad obszarem administracyjnym. Wiem, jak stworzyć niestandardowy widget pulpitu nawigacyjnego, który zawiera tylko tekst/html, ale nie mam pojęcia, jak utworzyć taki, który zawiera tylko jedno pole wprowadzania tekstu. Dodanie html formularza byłoby proste Widzę to, ale nie wiem: 1. Gdzie również przesłać dane formularza 2. Jak przekierować z powrotem do pulpitu nawigacyjnego po przesłaniu formularza 3. Jak pobrać wartość w moim szablony motywów bez uprawnień administracyjnych


title: filtruj get_children, aby zwrócić wszystkie typy MIME Z WYJĄTKIEM „x”

text: Jak napisano na puszce - próbuję stworzyć listę załączników do postów, która zawiera wszystko oprócz powiedzmy audio, które zamiast tego wrzucę do odtwarzacza. * Filtr musi być ogólny: „audio”, a nie „audio/mpeg”. (Z jakiegoś powodu `if ( $mime !== 'audio/mpeg' )` odfiltruje prawidłowe pliki mp3 –– dziwne.) Więc to nie działa: $children = get_children( array('post_parent' => $post->ID, 'post_status' => 'dziedziczy', 'post_type' => 'załącznik' ) ); if ( !empty( $children )){ foreach ( $children as $attachment_id => $attachment ) { $mime = get_post_mime_type($attachment); $url = wp_get_attachment_url($attachment->ID, false); if ( $mime !== 'audio/mpeg' ) { $content_attach .= ' ' . $tytuł . ' | '. $mim . ''; } } } echo apply_filters('treść', $content_attach ); Dalsza lista wszystkich typów mime audio, takich jak: `if($mime !== 'audio/mpeg' || $mime !== 'audio/ogg')` itp. nadal pominie te zwariowane pliki mp3. Działa: `$children = get_children( array('post_parent' => $post->ID, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'audio' ) );` który zwróci wszystkie dołączone typy audio za jednym razem - świetnie, że mój odtwarzacz może sobie z tym poradzić. Teraz muszę _pominąć_ wszystko, co _nie jest_ dźwiękiem i wymienić to. Czy ktoś ma jakieś pomysły? i jeszcze raz dziękuję za pomoc i doświadczenie. . .


title: Wordpress Przekierowujący działanie formularza na stronę główną

text: Dlaczego wordpress przekierowuje do strony głównej po przesłaniu formularza? Jak sprawić, by wordpress wywołał właściwą stronę w akcji formularza?


title: Zaktualizuj ustawienia wtyczki nazwa_opcji dla dużej aktualizacji wtyczki

text: Pracuję nad aktualizacją wtyczki i zmieniłem ustawienia nazwa_opcji i klucz. Chciałbym, aby stare opcje zostały przeniesione do nowej nazwa_opcji. Stara nazwa opcji to: plugin_options Nowa istota: plugin_settings_general Klucze również uległy zmianie, z "ga_accountId" na "ga_account_id". Spojrzałem na $wpdb i update_option, ale nie mogłem wypracować żadnej rzeczy, która zadziałała. Powinno to zadziałać, jeśli nie musiałem też zmieniać kluczy. // Pobierz całą tablicę $plugin_options = get_option( 'plugin_options' ); // Zaktualizuj całą tablicę update_option( 'plugin_name_settings_general', $plugin_options ); // Usuń starą tablicę delete_option( 'plugin_options' );


title: do_shortcode wewnątrz wywołania zwrotnego AJAX

text:
Mam funkcję zwrotną AJAX w moim pliku `functions.php`, która wyświetla posty w określonej kategorii. add_action( 'wp_ajax_ajaxified_function', 'ajaxified_function' ); add_action( 'wp_ajax_nopriv_ajaxified_function', 'ajaxified_function' ); function ajaxified_function() { $post = get_post($_POST['post_id']); $feat_image = get_the_post_thumbnail($post->ID); $desc_values = get_post_custom_values("oznaczenie",$post->ID); $title = current(explode(' ', get_the_title($post->ID))); if( is_array( $desc_values ) ) { foreach($desc_values as $key => $value ); } $email_values = get_post_custom_values("email",$post->ID); if( is_array( $email_values ) ) { foreach($email_values as $key => $email_value ); } echo '
'.$feat_image.'
'.$post->post_.'
'.$post->post_title.'

'.$value.'

Wyślij e-mailem '.$title.'

'.$post->post_content.'
'; echo '<skrypt> jQuery(document).ready(function(){ jQuery(.email_link").colorbox({inline:true, width:400, height:600, fixed:true, href:"#email_id_meet_the_team" } );}); </script>'; echo '

'; echo do_shortcode('[contact-form-7 id="698" title="Poznaj e-mail zespołu"]'); echo '

'; umierać(); } Kiedy używam tego, to tylko **echo** krótki kod zamiast pokazywać formularz kontaktowy. Pracuję teraz na lokalnym. Mam demo, które po prostu używa ajaxu, a nie colorboxa. Możesz zobaczyć link do e-maila w dziale **biografia**. Po kliknięciu tego linku chcę pokazać colorbox z formularzem kontaktowym.


title: Jak załadować wtyczkę podczas wykonywania wywołania Ajax?

text: Opublikowałem to pytanie: Jak używać skrótów na pasku bocznym widżetu podczas wykonywania połączenia ajax?, bez odpowiedzi. Teraz chcę zadać bardziej konkretne pytanie. Problem wydaje się być taki, że shortcode nie jest przetwarzany przez wtyczkę. `[audio src="audioFile.ogg"]` działa idealnie. Więc zgaduję, że mógłbym sprawić, by zadziałało, gdyby wtyczka była wcześniej załadowana. Ale nie wiem, jak to osiągnąć (może się mylę). Jakieś sugestie? Oto kod w `functions.php`: add_action( 'init', function() { ps_register_shortcode_ajax( 'ps_get_slider', '8' ); } ); function ps_register_shortcode_ajax( $callable, $action ) { if(isset($_POST['href'])) { $pageId = preg_match( '/^http:\/\/.+\/\?page_id=\d+$/ ', $_POST['href'] ) ? substr( strrchr( $_POST['href'], '=' ), 1 ) : '8' ; if ( empty( $pageId ) || $pageId != $action ) return; call_user_func( $callable ); } } function ps_get_slider() { //require_once('../wp-load.php'); Nic się nie zmienia apply_filters('ps_register_shortcode_ajax', 'slider_widget_init'); if ( dynamic_sidebar('Slider') ) : else : endif; //echo do_shortcode( '[promoslider post_type="news" height="300px" width="70%" numberposts="5" start_on="pierwszy" display_title="fancy" display_excerpt="fragment" pause_on_hover="pauza"] ' ); get_template_part( 'dom', 'ajax' ); umierać(); } Pasek boczny Slidera jest ładowany tylko na stronach home i-home-ajax (id=8). Działa bezpośrednio na stronie głównej, ale nie na stronie home-ajax.


title: Formularz skierowany do użytkownika, aby przesłać obraz na wordpress

text: Mam klienta, który kupił motyw Wordpress, który jest przeznaczony do publikowania ofert pracy, użytkownik może utworzyć konto, a następnie publikować oferty pracy, ale mój klient chce, aby został on przekonwertowany na publikowanie ofert kołowych (koła samochodowe). Do tej pory przekonwertowałem go całkiem nieźle, ale muszę umożliwić użytkownikowi przesłanie obrazu do aukcji. Lista jest po prostu postem, ale jest publikowana z formularza skierowanego do użytkownika, a nie z panelu administracyjnego. Chciałbym użyć `the_post_thumbnail()` jest możliwe, czy mogę pozwolić użytkownikowi na przesyłanie przez to bez wchodzenia do panelu administracyjnego?


title: Wyświetl kolejne 3 posty w oparciu o niestandardową taksonomię

text: Zastanawiam się, czy ktoś mógłby mi pomóc w osiągnięciu czegoś takiego: https://medium.com/ Thoughts-and-words/5ccef7b3e1fc z niestandardowymi typami postów? Mam niestandardowy typ postu o nazwie projekty i niestandardową taksonomię o nazwie kategoria projektu. Chciałbym pokazać kolejne 3 projekty w tej samej kategorii projektów na stronie pojedynczego projektu. Jeden pokaże tytuł i fragment, a pozostałe dwa pokażą tylko tytuły.


title: Importuj dane z dowolnego CSV do meta pól WPAlchemy

text: Stworzyłem **niestandardowy typ posta** z kilkoma **niestandardowymi polami** za pomocą WPAlchemy, a teraz muszę **zaimportować** sporo rzeczy z niektórych **plików CSV**. Używam `WPALCHEMY_MODE_EXTRACT`. Bawiąc się wtyczkami importu csv, wiem, że mogę poprawnie zaimportować pola w tabeli postmeta, ale problem polega na tym, że nie widzę ich zarówno z tyłu, jak i z przodu. Udało mi się wyizolować różnicę między wpisami wstawionymi ręcznie a wpisami importowanymi i jest to dodatkowe pole meta (`_myprefix_meta_fields`), które zawiera zserializowane rzeczy, których nie umiem wygenerować. Jakieś sugestie, jak rozwiązać problem i poprawnie zaimportować dane? **AKTUALIZACJA** : Wyszukując kod WPAlchemy (tutaj) wydaje się, że jedynym sposobem, aby to naprawić, jest uruchomienie skryptu, który dla każdego postu typu niestandardowego dodaje dodatkowe pole meta, czyli po prostu serializację tablicy zawierającej wszystkie pola metaboksu. Serializacja i dodawanie pola meta odbywa się za pomocą add_post_meta. Dodam sobie podstawowy skrypt jako odpowiedź, kiedy skończę importowanie danych.