title: Skąd jest ustawiony adres URL /blog/?

text: Mam dziwny problem podczas konfigurowania witryny. Wygląda na to, że adres URL /blog/ jest zarezerwowany lub jest już używany, tyle że nie jest tak daleko, jak mogę to stwierdzić. Ustawiłem nową stronę o nazwie „Blog” i ustawiłem permalink na „/blog/”. Następnie w sekcji „Ustawienia” => „Czytanie” ustawiłem stronę Postów na „Blog”. Następnie poszedłem o krok dalej i ustawiłem nowy szablon o nazwie 'tpl-blog.php' i przypisałem go do strony 'Blog'. Po tym wszystkim wprowadziłem trochę treści, przetestowałem i nie wyglądało to dobrze, żadnego mojego tekstu tam nie było, a tytuł był wyświetlany małymi literami. Przetestowałem trochę więcej i stwierdziłem, że używa pliku page.php zamiast mojego niestandardowego tpl-blog.php. Dzięki za wszelką pomoc! Levi


title: Jak wywołać wp_get_current_user() we wtyczce, gdy wtyczki są ładowane przed pluggable.php?

text: Bieżący wynik to „Błąd krytyczny PHP: wywołanie niezdefiniowanej funkcji wp_get_current_user()”, co ma sens, ale nie pomaga. Muszę użyć $current_user. Oto kod, którego obecnie używam: $wp->init(); do_action( 'początek' ); // Sprawdź stan witryny $file='http://xxxxxxxx.com/wp-admin/wp_includes/pluggable.php'; if ( is_multisite() ) { if ( true !== ( $file = ms_site_check() ) ) { require ( $ file ); umierać(); } unset($plik); } // Pobierz informacje o bieżącym użytkowniku $current_user = wp_get_current_user(); if (!($current_user instanceof WP_User)) return; echo $bieżący_użytkownik->login_użytkownika; funkcja paf_uname(){ return $current_user->user_login; }


Pracuję nad jednostronicowym motywem WordPress, w którym chcę uzyskać get_pages() zgodnie z niestandardową kolejnością menu. Przeszedłem przez odniesienie do get_pages(), które pozwala tylko na domyślne menu: get_pages('sort_order=asc&sort_column=menu_order'); Czy istnieje sposób na get_pages() zgodnie z **niestandardową kolejnością menu**?


title: Chcę wyświetlać niestandardowe widżety tekstowe dla każdego posta na pasku bocznym?

text: Idealnie szukam dwóch pól tekstowych dodanych do strony administracyjnej „Dodaj nowy post”, a dane z tych dwóch pól będą wyświetlane na pasku bocznym podczas przeglądania strony posta. Tak więc pasek boczny wyświetla dane należące do postu.... Dwa widżety dla każdego postu. Możliwy? Z góry dziękuję!


title: Wyświetlasz błędy oEmbed?

text: Czasami osadzenie elementu za pomocą oEmbed nie jest możliwe, na przykład gdy wideo YouTube ma wyłączone osadzanie. Usługa oEmbed zwróci „401 Unauthorized”, a kod nie zostanie przekonwertowany. Czy istnieje sposób, aby powiadomić o tym użytkownika? Obecny przepływ pracy jest nieintuicyjny (przynajmniej dla mnie) i wolałbym komunikat na stronie WordPressa, a jeszcze lepiej w edytorze, że obiekt nie może zostać osadzony.


title: Znaczniki kodów oEmbed w edytorze?

text: Czy istnieje sposób na nadanie kodom oEmbed specjalnych znaczników w edytorze wizualnym? W mojej wymarzonej implementacji wklejasz w edytorze adres URL z obsługą oEmbed, który następnie automatycznie zastępuje go miniaturą obiektu multimedialnego, który chcesz wstawić. Podstawowa implementacja przynajmniej podświetliłaby adres URL, aby użytkownik wiedział, że „coś specjalnego” może się tam wydarzyć (jeśli nie wystąpią żadne błędy). Czy istnieje wtyczka, która to robi? Sam mógłbym coś takiego stworzyć, ale potrzebowałbym kilku wskazówek, jak podłączyć się do edytora TinyMCE w najbardziej stylowy sposób WordPressa.


title: Jak mogę usunąć kanał RSS, który wtyczka WordPress dodaje do `wp_head()`?

text: Używam wtyczki, która dodaje kanał RSS do WordPressa. Nie chcę tego tam. W ustawieniach wtyczki nie ma opcji, aby ją wyłączyć. Jak mogę odczepić go od `wp_head()`, _or_ , gdzie rejestrujesz elementy `head` we wtyczce WordPressa, abym mógł go ręcznie usunąć? Dziękuję


title: Tworzysz stół w stylu administratora?

text: Jaki jest zalecany sposób tworzenia strony z tabelą, w stylu tabel pokazujących posty lub użytkowników w obszarze administracyjnym? Rozszerzam wtyczkę Cache Images i zawiera ona tabelę z domenami oraz szereg obrazów z tej domeny. Nie ma więc równoważnej istniejącej tabeli, na której mógłbym się oprzeć (w pierwszej wersji tego pytania pytałem o tabelę z postami, ale tam mógłbym (być może) rozszerzyć istniejącą tabelę postów). Czy powinienem po prostu oprzeć się na stronie przeglądu wpisów i zacząć od `<table class="widefat">`, czy są lepsze funkcje, które teraz to obsłużą? Czy znasz czysty, pusty przykład tabeli ze stronicowaniem, na którym mógłbym oprzeć swoją pracę?


title: Wywoływanie funkcji po utworzeniu nowego posta dla niestandardowego typu posta WordPress?

text: Załóżmy, że stworzyłem nowy post typu `'product'`. Czy istnieje sposób na wykonanie funkcji (utworzonej przez użytkownika) po utworzeniu nowego posta „produkt”?


title: Prawidłowe zapytania wyszukiwania i zastępowania dla zmiany adresów URL w bazie danych WordPress?

text: Opracowaliśmy witrynę na polu produkcyjnym, korzystając z tymczasowego adresu (http://adres IP). Teraz czas na transmisję na żywo. Kiedyś, wieki temu, z powodzeniem użyłem phpMyAdmina i przeprowadziłem wyszukiwanie/zamienianie, ale zastanawiam się, czy nadal jest to _"najlepsza"_ droga. Czy nadal będą działać dobrze? Strona jest w WordPress 3.0.1. zaktualizuj wp_options set option_value=replace(option_value,'STARY URL','NEW URL') gdzie opcja_value jak "%STARY URL%"; aktualizacja wp_posts SET guid=replace(guid, 'STARY URL','NOWY URL'); aktualizacja wp_posts SET post_excerpt=replace(post_excerpt, 'STARY URL', 'NOWY URL'); aktualizacja wp_posts SET post_content=replace(post_content, 'STARY URL', 'NOWY URL'); aktualizacja wp_postmeta SET meta_value=replace(meta_value, 'STARY URL', 'NOWY URL'); Przeczytałem tutaj wiele powiązanych postów, ale żadnego z faktycznymi zapytaniami. Myślałem, że **wyszukaj i zamień wtyczkę** brzmi obiecująco, ale jedyna dokumentacja, którą znalazłem, była w języku niemieckim, którego nie mogę przeczytać, więc jestem zbyt ostrożny, aby spróbować. A ten wątek o **przechodzeniu od programowania do produkcji** zawiera wiele informacji, ale: 1. wiele z nich jest ponad moją głową i 2. nie ma żadnych zapytań. TYIA, Mike


title: add_filter ( 'media_send_to_editor', ...) nie działa na wp 3.5

text: Mam problem z tą -prawdopodobnie- porzuconą wtyczką: <?php /* Nazwa wtyczki: RV Embed PDF Opis: Gdy prześlesz plik PDF i wstawisz do niego link za pomocą przycisku Dodaj multimedia, zostanie on automatycznie osadzony na stronie za pomocą Przeglądarka Dokumentów Google. Autor: Rong Vang Media Autor URI: http://www.rongvang.cz Wersja: 1.0 */ function rv_embedpdf($in){ $out = ""; if(preg_match("/href='(.*?\\.pdf)'/", $in, $matches)){ $out .= '<iframe src="http://docs.google.com/ gview?url='.$matches[1].'&embedded=true" style="szerokość:100%; wysokość:500px;" frameborder="0"></iframe>'; } $out .= $in; zwróć $out; } add_filter ( 'media_send_to_editor', 'rv_embedpdf' ); czy ktoś może mi pomóc, aby był kompatybilny z wp 3.5?


title: Jak nie śledzić komentarzy podzielonych na strony

text: Próbuję znaleźć sposób na dodanie `rel="nofollow"` do linków do stronicowania moich komentarzy. Czy ktoś może mi dać haczyk lub sposób na to?


title: Zezwalanie na więcej elementów w komentarzach poprzez functions.php

text: Chciałbym zezwolić na pewne elementy HTML w moich komentarzach i w przeszłości bezpośrednio edytowałem `kses.php`. Jednak ostatnio zostałem zhakowany i wymieniłem wszystkie podstawowe pliki Wordpress i czuję, że chciałbym uniknąć edycji tych plików. Czy można zezwolić na więcej elementów poprzez plik `functions.php`?


title: Niestandardowy typ posta — ta sama nazwa posta, inny typ posta

text: Mam 4 niestandardowe typy postów: * Usługi * Często zadawane pytania * Ceny * Przed i po Chcę mieć takie same nazwy postów w każdym z tych typów postów, na przykład: > Usługi > Skórka (example.com/Usługi/skórka) > Krem (example.com/Usługi/krem) > Ciało (example.com/Usługi/ciało) > > Często zadawane pytania > Skóra (example.com/FAQ/skin) > Krem (example.com/FAQ/krem) > Ciało ( example.com/FAQs/body) > > Ceny > Skóra (example.com/Prices/skin) > Krem (example.com/Prices/cream) > Body (example.com/Prices/body) > > Przed i po > Skóra (example.com/przed-i-po/skóra) > Krem (example.com/przed-i-po/krem) > Ciało (example.com/przed-i-po/ciało) Jak mogę to zrobić? W tej chwili, jeśli stworzę nowy post o tej samej nazwie, co obecny, doda "-2" lub "-3" na końcu slug postów: BAD: > example.com/services/body > > example .com/faqs/body-2 > > example.com/prices/body-3 > > example.com/before-and-after/body-4 add_action('init', 'create_post_type_html5'); // Dodaj naszą funkcję HTML5 Blank Custom Post Type create_post_type_html5() { register_taxonomy_for_object_type('category', 'html5-blank'); // Zarejestruj taksonomie dla kategorii register_taxonomy_for_object_type('post_tag', 'html5-blank'); register_post_type('html5-blank', // Zarejestruj niestandardowy typ posta array( 'labels' => array( 'name' => __('Usługi', 'html5blank'), // Zmień ich nazwę na 'singular_name' => __('Usługi', 'html5blank'), 'add_new' => __('Dodaj nowy', 'html5blank'), 'add_new_item' => __('Dodaj nowe usługi', 'html5blank'), 'edit' = > __('Edytuj', 'html5blank'), 'edit_item' => __('Usługi edycji', 'html5blank'), 'new_item' => __('Nowe usługi', 'html5blank'), 'view' = > __('Wyświetl usługi', 'html5blank'), 'view_item' => __('Wyświetl usługi', 'html5blank'), 'search_items' => __('Usługi wyszukiwania', 'html5blank'), 'not_found' => __('Nie znaleziono usług', 'html5blank'), 'not_found_in_trash' => __('Nie znaleziono usługi' w Koszu', 'html5blank') ), 'rewrite' => array('slug' = > 'service','with_front' => true), 'public' => true, 'hierarchical ' => true, // Pozwala postom zachowywać się jak strony hierarchii 'has_archive' => true, 'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail' ), // Przejdź do Dashboard Niestandardowy pusty wpis HTML5 dla obsługi 'can_export' => true, // Umożliwia eksport w Narzędzia > Eksport 'taxonomies' => array( 'post_tag', 'category' ) // Dodaj obsługę kategorii i tagów postów )); }


title: Tworzenie niestandardowej pętli publikowania typu postu

text: Chcę ponownie opublikować wszystkie wcześniej opublikowane produkty z niestandardowym typem posta. Załóżmy, że typ postu to „events” Myślałem o tym mniej więcej tak: $args = array( 'post_type' => 'events', 'post_status' => 'publish', // uzyskać tylko opublikowane posty?' posts_per_page' => -1 ); $posts = nowe WP_Query( $args ); if ( $posts -> have_posts() ) { while ( $posts -> have_posts() ) { wp_publish_post(POTRZEBA UZYSKAĆ ID) } } wp_reset_query(); Rzecz, której nie mogę wymyślić, jak uzyskać identyfikator w pętli lub jak uzyskać tylko opublikowane posty (zgadywałem) * _Edited *_ $args = array( 'post_type' => 'events', 'post_status' => 'opublikuj', // uzyskaj tylko opublikowane posty? 'posts_per_page' => -1 ); $posts = nowe WP_Query( $args ); if ( $posts->have_posts() ) { while ( $posts->have_posts() ) { $posts->the_post(); wp_publish_post($post->ID) } }


title: WP nie zezwala mi na publikowanie dokumentów Macintosh .pages na moim blogu

text: Jestem całkowicie zielony, jeśli chodzi o tworzenie stron internetowych, więc jeśli masz dla mnie odpowiedź, czy możesz to wyjaśnić w kategoriach laika. Mój problem: właśnie stworzyłem post na blogu za pomocą .pages, ten dokument zawiera ilustracje i wstępnie wybrany układ projektu, a także kilka stron treści. Myślę, że to tylko kwestia nierozpoznawania formatu przez WP. Kiedy przechodzę do postu i próbuję dodać dokument .pages z załadowanymi multimediami, pojawia się komunikat... > „Przepraszam, ten typ pliku jest niedozwolony ze względów bezpieczeństwa”. Kiedy po prostu kopiuję i wklejam każdą stronę osobno do posta, wygląda to dobrze, ale kiedy publikuję i aktualizuję post, materiał jest wyświetlany tylko jako niebieski kwadrat ze znakiem zapytania. Czytałem o podobnych problemach doświadczanych przez innych, ale dotyczyło to wielu witryn i nie wierzę, że moja strona internetowa jest wielowitrynowa. Zobacz www.suttonsez.com. Kiedy przechodzę do pulpitu i patrzę w Ustawienia, nie ma opcji dodawania rozszerzeń. Czy jest sposób na zrobienie tego, czego chcę?


title: Wyłącz blokowanie za pomocą taksonomii na stronie postu

text: Rozwijam event managera dla Wordpress. Mam post_type = 'event' i taksonomię 'event_place' I chcę usunąć blok z zaznaczeniem taksonomii na stronie postu, ponieważ użytkownik może to zrobić w niestandardowym metaboksie. ![tutaj wprowadź opis obrazu](http://i.stack.imgur.com/aBKBY.png)


title: WordPress nie używa plików szablonów po aktualizacji Permalink

text: Mam naprawdę dziwny problem, który właśnie pojawił się na stronie klienta. Zaktualizowałem strukturę permalinków z /%category%/%postname%/ do /%postname%/ i nagle moje strony nie respektują szablonów i domyślnie używają index.php. Co jeszcze jest dziwne, index.php próbuje wyświetlić najnowszy wpis na blogu witryny, a nie stronę, na której się aktualnie znajdujesz, na przykład /about-us/ nie używa template-about.php używa index.php z najnowsza treść posta na blogu. Usunąłem i przebudowałem plik htaccess, opróżniłem reguły przepisywania i nic się nie dzieje. Jeśli ustawię permalinki na Default(/?p=123), strona będzie działać dobrze. Czy ktoś ma jakieś pomysły? Jestem na końcu tego bardzo dużego projektu i nie mam pojęcia, co robić! -d


title: Importuj niestandardowe taksonomie

text: Mam listę taksonomii niestandardowych. Mam do dodania ponad 1000 taksonomii. Nie mogę znaleźć wtyczki do importowania niestandardowych taksonomii. Czy istnieje sposób na wstawienie bezpośrednio do bazy danych MySQL? Jeśli tak, to jak mogę napisać instrukcję insert, aby wstawić taksonomie. Pozdrawiam Alex


title: Jak mogę otrzymać identyfikator obrazu za pomocą pudełka z mediami?

text: Poniższy kod pozwala mi pobrać ciąg obrazu po naciśnięciu przycisku „Wstaw do posta”, ale jaki byłby prawidłowy sposób pobrania identyfikatora obrazu? Więc mogę pobrać wszystkie informacje przez `wp_get_attachment_image_src`? jQuery(document).ready(function() { var form_field; var upload_field_ID = ''; jQuery( '.upload_image_button' ).click( function() { jQuery( 'html').addClass( 'Obraz' ); upload_field_ID = jQuery(this).prev('input'); form_field = upload_field_ID.attr( 'name' ); tb_show( '', 'media-upload.php?type=image&TB_iframe=true' ); return false; }); okno .original_send_to_editor = window.send_to_editor; window.send_to_editor = function( html ) { if (form_field) { var image_url = jQuery( 'img', html ).attr( 'src' ); upload_field_ID.val( image_url move() ); tb_url ;jQuery('html').removeClass('Obraz');} else { window.original_send_to_editor(html); } } });


title: Indeks pokazujący kod źródłowy

text: Nagle wordpress pokazuje kod źródłowy po kliknięciu adresu URL i otrzymuję to> Kod to tylko wtyczka offline witryny, którą mam, więc mogę ustawić witrynę> offline Problem polega na tym, że nie analizuje kodu do html /php ale pokaż go jako zwykły kod źródłowy...


title: Ustawić język z adresu URL?

text: Użyłem wtyczki mlanguage do strony wielojęzycznej. Jak mogę przekazać parametry w adresie URL? Przykłady: www.example.com/?lang=bm www.example.com/?lang=en


title: Jak zmienić nazwę kategorii tylko na pasku menu?

text: Dziwię się, że o to nie pytano wcześniej, ale nie mogłem znaleźć tego przez wyszukiwanie. Chciałbym zrobić: Pełna nazwa kategorii -> Tekst na pasku menu Wskazówki dotyczące ćwiczeń -> Wskazówki Recenzje sprzętu do ćwiczeń -> Recenzje Wiadomości branżowe -> Wiadomości Pasek menu wygląda więc tak: `Wskazówki | Recenzje | Wiadomości` Ale gdy jesteś w rzeczywistej kategorii, pokazuje pełny tytuł. Potrzebuję pola „Nazwa nawigacji” na ekranie konfiguracji kategorii. Czy jest na to sposób, na przykład za pomocą wtyczki?


title: Wyświetlaj niestandardowe typy postów według kolejności zagnieżdżonej niestandardowej taksonomii

text:
Jak mówi tytuł, mam niestandardowe typy postów i niestandardową taksonomię dla tego typu. W taksonomii mam terminy na 3 poziomach, takie jak: * -> Termin 1 * --> Termin 1a * --> Termin 1b * -> Termin 2 * --> Termin 2a * --> Termin 2b * --- > Semestr 2b-1 * ---> Semestr 2b-2 Teraz, kiedy odwiedzam stronę Semestru 2, pokazuje wszystkie posty z tego okresu. Ale jak zrobić te posty jako zagnieżdżoną listę odpowiadającą tym poziomom? A także pokazując tytuł dla każdego. Lista wyglądałaby więc mniej więcej tak:

Termin 1:

Wpis 1

Wpis 2

 Termin 2:

Po 3

Termin 3:

Po 4

Po 5

Wpis 6

 Jestem trochę zagubiony, ponieważ zapytanie zostało już wykonane i wszystkie potrzebne posty są zwracane, więc prawdopodobnie nie powinienem dzwonić ponownie. Czy mogę sformatować tę listę, korzystając z informacji z zapytania, czy też muszę pobrać wszystkie terminy z taksonomii, a następnie zrobić dla każdego znalezienia dzieci i odpowiednich postów? I oczywiście nie chcę powielać postów na każdym poziomie.


title: Widżet losowego widgetu wordpress

text: planuję losowy widżet dla widżetów, który używa jquery do zanikania w każdym widżecie od góry (w sumie 12 wyświetlanych po 3 na raz). Tworzenie i animacja widżetów, z którymi mogę sobie poradzić, ale nie potrafię wybrać losowej kolejności i wyświetlić 3 na raz. jak mogę to osiągnąć? Jakakolwiek pomoc w wyświetlaniu losowych danych, a następnie pobieraniu kolejnych losowych danych byłaby niesamowita. Dziękuję


title: Niestandardowe ikony dla list kategorii niestandardowych typów postów

text: Potrzebuję prostego sposobu przypisywania niestandardowej ikony za każdym razem, gdy pojawia się kategoria. Używam niestandardowych typów postów i taksonomii z widokami i typami (wtyczkami). Na przykład mam niestandardowy typ wpisu właściwości > i kategorie komercyjne/mieszkalne/hotele (każdy potrzebuje ikony). Może przypisanie do klasy jakiegoś sposobu na każdą z nich byłoby dobrym sposobem... Myślę, że byłoby to bardzo przydatne dla wielu ludzi, więc naprawdę doceniłbym wszelkie myśli/sugestie!


title: nonces w niestandardowej wtyczce oop

text: Jak używać metody `check_admin_referer` z oop? Jeśli użyję w następujący sposób, funkcja nie może zostać wywołana: class MyClass{ function __construct(){ if( isset($_POST['my_nonce_field']) && check_admin_referer('my_nonce_action', 'my_nonce_field')){ $this-> element_aktualizacji(); } } } $test = new MojaKlasa(); Powyższe prowadzi do następującego komunikatu o błędzie: Wywołaj niezdefiniowaną funkcję check_admin_referer()


title: Pobrać adresy URL załączników z posta?

text: Użyłem następującego kodu, aby pobrać obrazy dołączone do postu $current_id = get_the_ID(); $rows = $wpdb->get_results("wybierz guid z $wpdb->posts gdzie post_parent = $current_id"); foreach ($rows as $row) { ?> <a href="<?php echo $row->guid; ?>" data-titan-lightbox="on" data-titan-group="<?php the_ID( ) ?>" style="wyświetl: brak"><img src="<?php echo $row->guid; ?>" alt="Podpis" class="Miniatura miniatury" width="228" height="160 "> <?php ale ten kod podaje tylko ścieżkę obrazów z folderem zawierającym obrazy. Jak mogę uzyskać tylko obrazy z tej pętli?


title: Ścieżka bezwzględna w witrynie Wordpress Network

text: Ta strona jest częścią sieci Wordpress. W CSS motywu chciałbym odwołać się do niektórych plików czcionek za pomocą @font-face. Czcionki znajdują się w katalogu motywu. Jeśli użyję takiej ścieżki: > http://brrinkley.doig.com.au/wp-content/themes/brrinkley/myriadpro- > boldcond.ttf , plik nie zostanie znaleziony. Prawdziwa ścieżka to > http://www.doig.com.au/wp-content/themes/brrinkley/myriadpro-boldcond.ttf , ale użycie tej ścieżki w CSS nie działa (zobacz tę odpowiedź). Mam więc problem z tym, że prawdziwa ścieżka nie działa w CSS i nie można znaleźć ścieżki sieciowej Wordpress.


title: Nie znaleziono niestandardowego jquery Wordpress

text: Mam niestandardowy plik jquery, oto kod: /* Custom JS */ jQuery(document).ready(function(){ jQuery("#top-menu li:first-child a").addClass('selected') ; }); A tutaj mój kod do załadowania pliku js w functions.php add_action('wp_enqueue_scripts', 'load_custom_scripts'); funkcja load_custom_scripts(){ wp_enqueue_script('custom_script', THEMEROOT.'/js/custom.js', array('jquery'), true); } Ale kiedy sprawdzam za pomocą firebuga, nie znaleziono mojego js. Mam nadzieję, że ktoś powie mi, co jest nie tak w moim kodzie? ![tutaj wpisz opis obrazu](http://i.stack.imgur.com/iqGdQ.jpg)


title: Oś czasu posta (stronnica z datą, a nie numerami)

text: Jestem całkiem zagubiony... Mam nadzieję, że ktoś poprowadzi mnie na właściwe tory! Staram się osiągnąć efekt osi czasu postu, dzieląc posty na strony (1 na stronę) i zamiast wyświetlać strony jako ponumerowane (tj. 1, 2, 3 itd.), chcę wyświetlać linki jako datę każdego posta, tak: NAJNOWSZY << | **3 marca** | **15 lutego** | **22 stycznia** | **17 grudnia** | >> NAJSTARSZE Jak dotąd przyjrzałem się wbudowanym funkcjom Wordpressa 'get_pagination' i 'paginate_links', ale naprawdę mam problemy! Jakakolwiek pomoc byłaby bardzo mile widziana. Dziękuję Ci!


title: Jak zmienić kolejność pól w comment_form()

text:
Używam niestandardowego filtra do zmiany pól, ale nie wiem, jak zmienić **kolejność** pól w formularzu komentarza. Pożądana kolejność: * pole komentarza (pierwszy/górny) * nazwa * email * strona internetowa To jest kod, którego aktualnie używam: function alter_comment_form_fields($fields){ $fields['comments'] = 'Test'; $fields['autor'] = '
' . '' . __( 'Pańskie nazwisko, proszę' ) . ' ' . ( $req ? '*' : '' ). '<input id="autor" nazwa="autor" type="tekst" placeholder="Jan Kowalski" value="' .esc_attr( $komentarz['komentarz_autor']) .'" size="30"' . $aria_req . ' />
'; $fields['email'] = 'następny'; //usuwa pole e-mail //$fields['url'] = ''; //usuwa pole strony internetowej return $fields; } add_filter('comment_form_default_fields','alter_comment_form_fields');


title: Polecany obraz tylko dla pierwszego posta

text:
Obecnie mam problemy z wyświetlaniem polecanego obrazu tylko w pierwszym poście. Obecnie obraz pokazuje tylko, czy post jest jedynym postem lub czy post jest przyklejonym postem. (Zdaję sobie sprawę, że nie jest to preferowany kod do wyświetlania polecanego obrazu, ale był to jedyny kod, jaki mogłem wymyślić, mając szablon html5). AFAIK nie powinien jednak kolidować z tym kodem. Mam nadzieję, że może ktoś mógłby pomóc. Oto kod, który aktualnie posiadam: <?php $count = 1; ?> <?php while (have_posts()): the_post(); ?> <id artykułu="<?php echo $post->nazwa_postu; ?>" class="post<?php sticky_class(); ?>" itemscope itemtype="http://schema.org/Article"> < ?php if ($count == 1): ?> <?php if (has_post_thumbnail($post->ID)): ?> <?php $image = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'blog- Miniaturka'); ?> <a class="banner" href="<?php the_permalink(); ?>"><img src="<?php echo $obraz[0]; ?>" width="<?php echo $obraz [1]; ?>" height="<?php echo $image[2]; ?>" alt="<?php the_title(); ?>" itemprop="obraz"> <?php endif ; ?> <?php endif; $liczba++; ?>
<a href="<?php the_permalink(); ?>" title="<?php printf(esc_attr__('%s', 'schema'), the_title_attribute( 'echo=0')); ?>" rel="zakładka" itemprop="url"><?php the_title(); ?>
  <stopka> <?php schema_posted_on(); ?>  <?php if (is_archive() || is_search()): ?> <?php the_excerpt(); ?> <?php else: ?> <?php the_content(__('Kontynuuj czytanie →', 'schemat')); ?> <?php wp_link_pages(array('before' => '
' .__('Strony:', 'schema'), 'after' => '
' )); ?> <?php endif; ?> <?php edit_post_link(__('Edytuj', 'schemat'), '
', '
'); ?> </artykuł>


title: Powiadomienie e-mail przez WP_Mail o opublikowanym niestandardowym typie postu

text: Próbowałem otrzymać powiadomienie e-mail, które zostanie uruchomione, gdy zostanie opublikowany nowy niestandardowy typ wpisu (w tym przypadku „zdarzenie”). Spróbowałem kilku rzeczy i zdecydowałem się na ten prosty przykład, który, jak sądzę, _powinien_ działać dobrze. function admin_event_notification() { $message = "Test"; wp_mail( 'jonathan@sabramedia.com', 'Nowe wydarzenie', $wiadomość ); } add_action( 'new_event', 'admin_event_notification', 10, 3 ); Jakieś pomysły czego mi brakuje? Gdy to zadziała, następnym krokiem jest dostęp do $post, aby uzyskać tytuł i permalinki itp. Myślę, że mam to pokryte, ale wszelkie pomysły są mile widziane.


title: Jak zezwolić określonym użytkownikom na tworzenie określonego typu posta?

text: Oto krótkie podsumowanie konfiguracji mojej witryny: Mam stosunkowo prostą witrynę intranetową. W tej chwili wykorzystuję posty jako sposób dostarczania wiadomości użytkownikom. Korzystam również ze stron. Chcę tylko, aby niektórzy użytkownicy mogli to robić (powiedzmy „Edytorzy”). To, co chciałbym zrobić, to utworzyć sekcję społecznościową witryny, w której wszyscy użytkownicy będą mogli publikować posty (sprzedać rzeczy itp.). Zastanawiam się, jaki jest najlepszy sposób na to? Mógłbym użyć kategorii, aby ułatwić pokazywanie tylko tego typu postów. Ale nie chcę, aby użytkownicy mogli tworzyć dowolne posty. Chcę tylko, aby mogli publikować w społeczności. Jeśli ktoś publikuje wiadomości, chcę, aby miał wyższy poziom bezpieczeństwa. Jeśli myślę o tym w niewłaściwy sposób, chciałbym usłyszeć inne pomysły! **Edit** : Oto mój obecny niestandardowy kod pocztowy: function createCommunityPostType() { $args = array( 'public' => true, 'label' => 'Społeczność' ); register_post_type('społeczność', $args ); } add_action('init', 'createCommunityPostType');


title: wp_insert_comment i bezpieczeństwo

text: ** Używam wp_insert_comment, aby zaoferować wewnętrzny, lepszy interfejs komentarzy warunkowych ajax. wszystko działa świetnie. moje jedyne pytanie brzmi.** Jakie środki bezpieczeństwa powinienem podjąć, aby upewnić się, że zostawię dziury w zabezpieczeniach? komentarze są przesyłane przez ajax, więc w pliku php odbierającym dane używam $_POST do zbierania danych. Jak traktujesz te dane wejściowe, aby były jak najbardziej odporne na kule i ** Wiem, jak zabezpieczyć formularze, więc zasadniczo pytam: ** Czy wp_insert_comment działa (po przesłaniu) przez jakiekolwiek inne wbudowane funkcje wordpress?


title: Widżet do obliczania czasu od określonej daty

text: Próbuję stworzyć widżet, który będzie wyświetlał ilość czasu, która minęła od określonej daty, jednak otrzymuję komunikat: „funkcja WP_Widget::widget() musi być nadpisana w podklasie”. Po raz pierwszy piszę widget, a moja wiedza na temat php jest brutalnie ograniczona. Z góry dziękujemy za pomoc i wskazówki.


title: Skrypt usuwaj z kolejki warunkowo

text: Myślałem o tym: na przykład dequeue lub enqueue scripts z IE. Mówią, że możemy użyć `global $is_IE;`, ale jest to błędne po prostu dlatego, że nie jest zgodne z buforowaniem. W dzisiejszych czasach cache jest wszędzie! Czy ktoś ma na to pomysł? Mam na myśli, że jeśli chcę trochę stylów w IE8, mogę to zrobić: add_action('wp_head', '_load_ie_styles'); funkcja _load_ie_styles() { globalne $wp_styles; wp_register_style('ie8', get_stylesheet_directory_uri().'/css/style-ie8.css'); $wp_styles->add_data( 'ie8', 'warunkowe', 'jeśli IE 8'); wp_enqueue_style( 'tj8' ); }      Ok świetnie ! Może jeśli chcę czegoś, aby uniknąć IE, mogę to zrobić (nie testowałem): add_action( 'wp_head', '_load_ie_styles' ); funkcja _load_ie_styles() { globalne $wp_styles; wp_register_style( 'nie-tj', get_stylesheet_directory_uri().'/css/style-not-ie.css' ); $wp_styles->add_data( 'nie-tj', 'warunkowe', 'jeśli !IE'); wp_enqueue_style( 'nie-tj' ); } Ale jak to zrobić za pomocą skryptów? Jak mogę odkolejkować skrypty warunkowo (IE)? Mam nadzieję, że wszystko jasne. Czy ktoś myślał o tym?


title: Zaktualizuj klasę ciała na podstawie menu

text: Próbuję dodać klasę do tagu body na podstawie tego, czy bieżące elementy menu mają dzieci, czy są dziećmi. Niestandardowe menu zostało dodane przez `wp_nav_menu`. Podłączyłem się do `wp_nav_menu_objects` przez filtr i pomyślnie wykrywam, czy bieżący aktywny element menu jest przodkiem, czy dzieckiem: function has_submenu( $menu_items ) { $current_id = 0; foreach( $menu_items as $menu_item ) { // Pobierz identyfikator bieżącego elementu menu if( $menu_item->current ) { $current_id = $menu_item->ID; } // jeśli bieżący element ma dziecko if( $menu_item->menu_item_parent != 0 && $menu_item->menu_item_parent == $current_id ) { $body_class = 'has-submenu'; przerwanie; } // jeśli bieżąca pozycja ma przodka if( $menu_item->current_item_ancestor ) { $body_class = 'is-submenu'; przerwanie; } } return $menu_items; } add_filter( 'wp_nav_menu_objects', 'has_submenu', 10, 2 ); Teraz problem, który mam, polega na tym, jak następnie filtrować „body_class”, aby dodać klasę? Stworzyłem zmienną o nazwie $body_class, jednak nie jestem pewien, czy mogę przekazać ją do funkcji przechwytującej `body_class`. Czy jest to zmienna globalna? Stworzyć klasę do tego wszystkiego? Z góry dziękuję!


title: Wyświetl zapytanie o posty z funkcją IF

text:
Piszę szablon, aby wyświetlić moje niestandardowe typy postów na liście. Ale chcę, aby post był pokazywany tylko wtedy, gdy ma wartość dla jednego z moich niestandardowych pól. Wyjaśnię: Mój niestandardowy typ postu to "Członkowie wydziału", a pole niestandardowe to "nagrody" Strona wyświetli wszystkich członków wydziału, którzy otrzymali nagrody i jakie są tam nagrody. W tej chwili po prostu publikuje. Wszyscy członkowie wydziału myśleli, że funkcja JEŻELI jest dostępna, więc moja lista „Nagrody:” jest wyświetlana tylko wtedy, gdy istnieje wartość. jak mogę zastosować tę funkcję do wszystkich postów? <?php/*Nazwa szablonu: Nagrody i wyróżnienia*/?> <?php get_header(); ?>
 <?php query_posts( 'post_type=mtt_page'); ?> <?php if ( have_posts() ) while ( have_posts() ): the_post(); ?> <div id="post-<?php the_ID(); ?>" <?php post_class('strona'); ?>> <artykuł>
<?php the_title(); ?>
 > <?php if ( has_post_thumbnail() ) { /* ładuje polecaną miniaturę posta, wymaga Wordpress 3.0+ */ echo '
'; the_post_thumbnail(); echo '
'; } ?>
 <?php the_content(); ?> /*To jest pole niestandardowe*/ <?php $awards = types_render_field("awards", array("raw"=>"true","separator"=>"
", 'show_name' => 'PRAWDA')); if( !empty( $awards ) ) { echo "Nagrody i wyróżnienia:
".$awards."
";} ?> <?php wp_link_pages('before=
&after=
'); ?>

 <?php endwhile; ?>


title: Szerokość ThickBox nie może być zmieniona w admin

text: Próbuję zrobić wyskakujące okienko w obszarze administracyjnym (na ekranie edycji postu) i nie mogę powiększyć mojego grubego pudełka niż 670px (szerokość: 670px). Oto mój kod, który pokazuje grube pole: tb_show( ed.getLang('m7.popup_title'), '#TB_inline?width=800&height=600&inlineId=mygallery-form' ); (działa po kliknięciu przycisku tinyMCE) i otrzymuję div z id="TB_window" <div id="TB_window" style="width: 670px; height: 216px; margin-left: -335px; top: 48px; margin- top: 0px; widoczność: widoczna;"> (kod pochodzi z przeglądarki google) Więc jeśli ręcznie zmienię szerokość, a następnie zmienię rozmiar przeglądarki, da to 670px z powrotem do szerokości.. Czy można to jakoś zmienić tak, aby Thickbox wyświetlał całą zawartość, która ma 800px szeroki ? tworzy insede #TB_window div z id="TB_ajaxContent" o szerokości 800px


title: Jak nie umieszczać elementów podtaksonomii w taksonomii nadrzędnej?

text: Co próbuję zrobić: przygotuj skrypt, który przejdzie przez każdą taksonomię niestandardowego typu postu, a następnie wypisz posty, które są z tą taksonomią. Kod: <?php $taxos = get_categories( 'taxonomy='.$taxonomy.'&post_type='.$type.'&orderby=term_group' ); ?> <?php if($taxos) : foreach($taxos jako $taxoOnglet) : ?> <?php $ongletQuery = new WP_Query(array( 'post_type' => $type, $taxonomy => $taxoOnglet->slug , 'showposts' => -1, 'orderby' => 'menu_order', 'order' => 'ASC', )); ?> [...]pętla do wyświetlania postów[...] <?php endif; ?> <?php wp_reset_query(); ?> Otrzymuję wszystkie moje posty z tym zapytaniem w porządku, ale jest problem. Taksonomie nadrzędne wymieniają posty ich dzieci, nawet jeśli post jest przypisany tylko do dzieci. Co daje mi coś takiego jak ta TAKSONOMIA RODZICÓW Post A Post B DZIECKO A Post A DZIEC B Post B Próbuję więc znaleźć sposób na usunięcie postów A i B z taksonomii nadrzędnej, aby pojawiły się tylko w są przypisane. Czy można to zrobić za pomocą WP_Query z WP?


title: Uzyskaj listę kategorii oddzielonych przecinkami w pętli

text: Chcę uzyskać listę kategorii wpisu w pętli. Normalnie użyłbym the_category(', '); Ale to wyświetla link, a ja chcę tylko nazwę kategorii. Jakieś pomysły?


title: Problemy z pobieraniem pliku za pomocą wp_remote_get()

text: Używam wp_remote_get() do pobrania pliku zdalnego z następującym adresem URL: http://feeds.paidonresults.net/1.0?affiliateid=34069&feedid=M742&template=CSV&CSVSeperator=comma&field_names=ProductID,ProductName,ProductPrice,SummaryDescription,ProductDescription,Affili ,ImageURL100by100,ImageURL200by200,ProductAddedDate,Category,MerchantName Używając http://web-sniffer.net/, nagłówki są następujące: Połącz z 80.249.99.4 na porcie 80... ok GET /1.0?affiliateid=34069&feedid=M742&template=CSV&CSVSeperator =comma&field_names=IDProduktu%2CNazwaProduktu%2CCenaProduktu%2CSummaryDescription%2CProduktOpis%2CAFiliateURL%2CObrazURL100by100%2CObrazURL200by200%2CProdukt Data dodania%2CKategoria%2CNazwa sprzedawcy HTTP/1.1[CRLF]Host: feeds.LF-Apłacony[res] Web-sniffer/1.0.37 (+http://web-sniffer.net/)[CRLF] Accept-Encoding: gzip[CRLF] Accept-Charset: ISO-8859-1,UTF-8;q=0.7,* ;q=0.7[CRLF] Kontrola pamięci podręcznej: nie- cache[CRLF] Accept-Language: de,en;q=0.7,en-us;q=0.3[CRLF] Referer: http://web-sniffer.net/[CRLF] [CRLF] Co jest świetne. Jednak używając wp_remote_get() otrzymuję następujące informacje: Array ( [nagłówki] => Array ( [data] => Pon, 07 Maj 2012 19:12:56 GMT [serwer] => Apache/2.2.22 (Unix) [p3p] => policyref="http://www.paidonresults.com/w3c/p3p.xml",CP="CAO DSP COR LAW DEVa TAIa NASZ BUS UNI ADMa CURa PHY ONL PUR COM NAV DEM STA" [połączenie] => zamknij [content-type] => text/html ) [body] => Błąd krytyczny [odpowiedź] => Tablica ( [kod] => 200 [wiadomość] => OK ) [cookies] => Tablica ( ) [ filename] => ) Wiem, że jest problem z wp_remote_get() i zdalnym przekierowaniem, ale użyłem file_get_contents() i funkcji zbudowanej w tym celu, ale nadal otrzymuję tę samą odpowiedź na błąd krytyczny ciała Czy ktoś wie sposób na obejście tego?


title: Pobrać obrazy z biblioteki multimediów na komputer w trybie BULK?

text: Wszystko, czego chcę, to pobrać wszystkie obrazy z biblioteki multimediów na mój komputer. Nie chcę ich używać w innej witrynie. Wrzuciłem je z karty aparatu podczas podróży, a potem zostało skradzione. To są teraz jedyne kopie i chciałbym je mieć na swoim komputerze teraz, gdy jestem w domu. Nie wiem jak dobrze używać PHP. Wydaje się, że najbardziej logicznym rozwiązaniem jest opcja „Pobierz”. Jedyną obecnie wyświetlaną opcją jest „Usuń na stałe”. Czuję, że pobieranie treści multimedialnych z witryny jest opcją, która powinna zostać udostępniona od początku WP. Czy mogę to uzyskać przez FTP? Z tego co wyczytałem WP nie pozwala na FTP. Czy ktoś może mi dać prosty przewodnik po wykorzystaniu skryptu PHP do zbierania plików?


title: Związek między dwiema taksonomiami a niestandardowym typem postu

text: dla projektu mam produkty CPT z dwiema taksonomiami: kategoria i marka. Chciałbym zbudować nawigację z kategorii do produktu pod marką. * strona 1 : wymień terminy kategorii * strona 2 : wymień termin marki mający wybrany termin kategorii * strona 3 : wymień produkty pod marką i kategorią * strona 4 : wyświetl produkt Oczywiście strony 1 i 4 są łatwe do zrobić, ale nie wiem, jak pobrać terminy na stronie 2 i produkty na stronie 3. Jestem pewien, że jest na to sposób. Dowolny pomysł ? Dziękuję. Cyril **UPDATE 1** Znalazłem sposób na wyświetlenie poprawnych marek na stronie 2 : <?php $term = get_term_by('slug',get_query_var('term'),'product_category'); $q1 = " SELECT DISTINCT p1.ID FROM $wpdb->posts p1 INNER JOIN $wpdb->term_relationships tr1 ON (p1.ID = tr1.object_id) INNER JOIN $wpdb->term_taxonomy tt1 ON (tr1.term_taxonomy1._id = ) term_taxonomy_id) GDZIE tt1.term_id = '$term->term_id' "; $q2 = " SELECT tt2.term_id FROM $wpdb->posts p2 INNER JOIN $wpdb->term_relationships tr2 ON (p2.ID = tr2.object_id) INNER JOIN $wpdb->term_taxonomy tt2 ON (tr2.term_taxonomy_id = tt2.termid_ta ) GDZIE p2.ID IN ($q1) "; $q3 = " SELECT tt3.* FROM $wpdb->posts p3 INNER JOIN $wpdb->term_relationships tr3 ON (p3.ID = tr3.object_id) INNER JOIN $wpdb->term_taxonomy tt3 ON (tr3.term_taxonomy_termid_taxtt3. ) INNER JOIN $wpdb->terms t3 ON t3.term_id = tt3.term_id WHERE 1=1 AND tt3.term_id IN ($q2) AND tt3.taxonomy = 'product_brand' ORDER BY t3.name ASC "; $marki = $wpdb->get_results($q3); ?> Teraz muszę znać kategorię wybraną w pliku taxonomy-brand.php, jakieś sugestie ? **AKTUALIZACJA 2** Dzięki temu wątkowi : Przepisanie adresu URL taksonomii typu post niestandardowy, mam teraz poprawną nawigację ze strony głównej do strony produktu. Wystarczy przefiltrować wyniki na stronie marki.


title: jak przekierować do niestandardowej strony odzyskiwania hasła

text:
Mam nową stronę i używam z nią bbpress beta-3, stworzyłem niestandardowe strony logowania/rejestracji/utraconego hasła z niestandardowymi szablonami dostarczonymi z bbpress i nie mogę znaleźć filtra/haka/ akcja, która "przechwytuje" wywołania `wp-login.php`. Mój największy problem jest ze stroną `lost-password`, chcę przekierować z powiadomieniem, mogę złapać błąd, ale nie mogę złapać zdarzenia `sent password`. Używam teraz w function.php: function get_password_retrieve_errors(){ wp_redirect( site_url('lost-password').'?getpass=failed' ); } add_filter('lostpassword_redirect', 'get_password_retrieve_errors', 1); oraz w formularzu-user-lost-pass.php: <?php if ( $_GET['getpass'] == 'failed' ) { ?>

Nieprawidłowy nazwa użytkownika lub adres e-mail, spróbuj ponownie.

 <?php } ?> 1. Czy jest na to sposób? 2. Czy istnieje globalny obiekt $error, do którego zawsze mogę się odwołać? 3. Czy istnieje globalny obiekt $notifications, do którego zawsze mogę się odwołać? Dziękuję!


title: Usuń międzynarodowe znaki ze ślimaka - Prawie gotowe - Bitowa pomoc

text: Chcę usunąć niektóre znaki z ślimaka, takie jak „¿”, których używamy w języku hiszpańskim do otwierania pytania. Jeśli przejdę do wp-includes/formatting.php i w funkcji sanitize_title_with_dashes($title) linia 820 wp32 dodaję to $title = str_replace('¿', '', $title); tuż przed $title = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', '---$1---', $title); I działa poprawnie. Więc kiedy piszę w tytule "Qué tal?" ślimak to "que-tal" Teraz, jak to zrobić za pomocą funkcji, abym mógł go używać przez functions.php lub za pomocą wtyczki? Robię to, ale nie działa funkcja limpiar_slug($slug) { $slug = str_replace('¿', '', $slug); zwróć $slug; } add_filter('sanitize_title_with_dashs', 'limpiar_slug'); Jakieś sugestie??? Z góry dziękuję


title: Jak usunąć UL w wp_nav_menu?

text:
Szukam na tej stronie i znalazłem wiele odpowiedzi na to pytanie. Większość z nich nie pracuje nad moim tematem. Oto jedno rozwiązanie, które znalazłem i działa zgodnie z moimi potrzebami. function wp_nav_menu_no_ul() { $options = array( 'echo' => false, 'container' => false, 'theme_location' => 'primary' ); $menu = wp_nav_menu($opcje); echo preg_replace(tablica( '#^
]*>#', '#
$#' ), '', $menu); } Ten kod usunie `ul` na początku i na końcu `wp_nav_menu()`. Więc w moim motywie po prostu piszę
 <?php wp_nav_menu_no_ul(); ?>
 Ale problem pojawia się ponownie, gdy nie dodam ani nie aktywuję żadnego menu przez administratora. `http://domain.com/wp-admin/nav-menus.php` Pytanie: Jak usunąć `<div><ul>**</ul></div>` niezależnie od tego, czy menu jest aktywne, czy nie. Daj mi znać * * * W końcu udało mi się :) `functions.php` function wp_nav_menu_no_ul() { $options = array( 'echo' => false, 'container' => false, 'theme_location' => 'primary' , 'fallback_cb'=> 'default_page_menu' ); $menu = wp_nav_menu($opcje); echo preg_replace(tablica( '#^
]*>#', '#
$#' ), '', $menu); } function default_page_menu() { wp_list_pages('title_li='); } `header.php`
 <?php wp_nav_menu_no_ul(); ?>


title: Jak sprawić, by WordPress używał nowych ustawień ścieżki przesyłania w konfiguracji wielostanowiskowej

text: Mam witrynę skonfigurowaną dla WordPress multisite. Strona główna działa, ale subdomeny nie działają tak, jak bym chciał. Oto ustawienia witryny głównej: Ścieżka przesyłania: media/images/national Ścieżka adresu URL przesyłania: http://images.mojadomena.com/national URL przesyłania pliku: http://www.mojadomena.com/media/images/national Te ustawienia działają i mogę przesyłać obrazy do określonego folderu. Jednak gdy próbuję użyć podobnych ustawień dla którejkolwiek z subdomen, WordPress ignoruje moje ustawienia i używa ustawień domyślnych, którymi są: Ścieżka wysyłania: wp-content/blogs.dir/4/files Ścieżka adresu URL wysyłania: (pusta) Fileupload URL: http:// nazwa_miasta.moja_domena.com/files Chcę, aby wszystkie moje pliki multimedialne trafiały do folderu multimediów, a nie do folderu wp-content/blogs.dir. Jak mogę sprawić, by WordPress używał ustawień, które umieszczam w Upload Path, Upload Url Path i Fileupload Url zamiast domyślnych ustawień własnych? Ostatnia uwaga: dzieje się tak również przy świeżej instalacji.


title: Problemy z „Kalendarzem wydarzeń” w WP 3.2

text: Po aktualizacji do Wordpress 3.2, funkcja pokazywania/ukrywania obszaru tworzenia wydarzeń w „Kalendarzu wydarzeń” jest odwrócona – gdy „Wydarzenie całodniowe?” pole wyboru jest zaznaczone, pojawiają się pola czasu. Gdy nie jest zaznaczone, pola czasu znikają. To jest _odwrotne_ zachowanie tego, co powinno się wydarzyć. Podejrzewam, że to problem z Jquery. Czy ktoś jeszcze odkrył ten problem? ![Wydarzenie całodniowe niezaznaczone](http://i.stack.imgur.com/8XOu5.png) ![Wydarzenie całodniowe zaznaczone](http://i.stack.imgur.com/MgZ4f.png)


title: Niestandardowy typ wpisu z polami wejściowymi do oddzielenia tabeli w bazie danych.

text: W tej chwili używam niestandardowego typu postu o nazwie „lokalizacje”. Chciałbym móc umieścić pola wejściowe w niestandardowym typie postu, który przechowywałby informacje takie jak (adres, typ, numer telefonu itp.) w oddzielna tabela zwana „markerami” Tak więc, kiedy tworzony jest nowy wpis, utworzy nowy wpis w znacznikach tabeli z następujących pól wejściowych / będzie można go aktualizować lub usuwać, gdy wpis zostanie zmieniony lub usunięty. Nie jestem pewien, od czego zacząć, aby połączyć je ze sobą, aby działały w taki sposób, wiem, jak zrobić plik insert.php, aby dodać nowe lokalizacje i utworzyć bazę danych, ale nie z wordpressem w taki sposób. Przepraszam, ale jestem całkiem nowy w SQL i PHP.


title: Wybieranie wszystkich postów z dzieci określonej taksonomii rodzicielskiej

text: Stworzyłem niestandardowy typ postu (minerały) z niestandardową taksonomią (lokalizacją), która obsługuje hierarchie. To, co próbuję zrobić, to stworzyć zwrot zgodnie z nadrzędną lokalizacją typu postu mineralnego. > Na przykład ktoś klika Europę, a wyniki pokazują wszystkie minerały > ze wszystkich wymienionych krajów w Europie. Teraz taksonomia niestandardowej lokalizacji jest zorganizowana tak, aby wszystkie kraje były zagnieżdżone na odpowiednim kontynencie, ale tylko kraj (NIE kontynent) jest wybierany dla postu. Więc moim wyzwaniem jest posortowanie wszystkich istniejących dzieci żądanego rodzica i zwrócenie postów, które spełniają te kryteria. (Mam również kilka innych niestandardowych parametrów meta do sprawdzenia, ale można je łatwo filtrować, gdy już to zrozumiem.) Aby wykonać ten wybór, używam klasy $wpdb na początku strony szablonu. Zrobiłem już coś podobnego dla innych taksonomii, które były oparte na cenie i rozmiarze tego samego „mineralnego” niestandardowego typu postu, ale jest to trochę bardziej złożone. Oto, co wydaje mi się, że muszę najpierw zrobić: SELECT wp_term_taxonomy.term_taxonomy_id WHERE wp_term_taxonomy.parent = $continent_id AND wp_term_taxnomy.count > 0; Przypiszę je do tablicy liczbowej, a następnie powtórzę to samo zapytanie ponownie, aby sprawdzić, czy którykolwiek z wybranych `term_taxonomy_id` jest przypisany jako `wp_term_taxonomy.parent` dla innych terminów. Na koniec będę miał tablicę term_taxonomy_id, za pomocą której będę przeszukiwać tabelę wp_term_relationships. Moje pytanie brzmi, jak użyć tej wygenerowanej tablicy w zapytaniu MYSQL. Oto co mam do tej pory: SELECT wp_posts . * Z wp_posts, wp_term_relationships GDZIE wp_posts.ID = wp_term_relationships.object_id ORAZ wp_term_relationships.term_taxonomy_id = (COŚ Z TERMINOWEGO TABLICY PODATKOWEJ IDS) ORAZ wp_posts.posteral. Może robię to wszystko źle i ktoś może zasugerować inne podejście. Dzięki Brent


title: Połączyć 2 różne niestandardowe slugi postów w jeden permalink?

text: Potrzebujesz pomocy przy przepisaniu tego adresu URL. Mam ustawione 2 niestandardowe posty: „firma” i „praca”. Mam stronę dla jednej firmy i stronę z jednym stanowiskiem, które działają dobrze. Firma może mieć wiele miejsc pracy, a ja zarządzam relacjami między miejscami pracy a firmą za pomocą post meta. Adres URL pojedynczej firmy to `http://..../company/abc-intl`, a adres URL pojedynczego zadania to `http://..../job/photoshop-designer`. Chcę, aby adres URL pojedynczego zadania zawierał informacje o firmie, do której należy/jest powiązany. Więc dla powyższego przykładu powinien to być `http://..../company/abc-intl/job/photoshop-designer`. Próbowałem dużo z „add_rewrite_rule”, „add_rewrite_tag”, ale nie działało. Proszę jakieś pomysły, jak osiągnąć ten adres URL?


title: Ukryj bezpośrednio przeglądanie treści dla niestandardowego typu postu

text: Używam wielu niestandardowych typów postów do tworzenia pasków bocznych, stopek itp. i chciałbym ukryć bezpośrednie wyświetlanie tych typów postów. czy to możliwe?


title: Niestandardowa strona wyników wyszukiwania nie wyświetla fragmentu

text:
Mam niestandardową stronę content-searchresults.php. Jednak z jakiegoś powodu nie pokazuje fragmentu, ale inne poprawki, które wprowadzam, są przeciągane, więc używa tego szablonu. Poniżej mój kod. <id artykułu="post-<?php the_ID(); ?>" <?php post_class(); ?>> <?php if ( has_post_thumbnail() && ! post_password_required() && !is_single() ) : ?> <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>" > <?php the_post_thumbnail('full', array('class' => 'img-responsive')); ?>  <?php endif; ?>
  <?php if ( in_array( 'kategoria', get_object_taxonomies( get_post_type() ) ) && CrippsTheme_categorized_blog() ) : ?>
 <?php echo get_the_category_list( _x( ', ', 'Używane między elementami listy, po przecinku jest spacja.', 'CrippsTheme') ); ?>
 <?php endif; if ( is_single() ) : the_title( '
', '
' ); else : the_title( '
', '
' ) ; endif; ?>

 <?php the_excerpt(); ?>

 <a class="czytaj-więcej" href="<?php the_permalink(); ?>" title=" <?php the_title_attribute(); ?>" > Czytaj więcej


title: Niestandardowy fragment zmiany typu postu więcej i długość fragmentu

text: Napisałem trochę kodu, aby uzyskać niestandardowe `excerpt_length` i `excerpt_more`. excerpt_length działa zarówno dla niestandardowego typu posta, jak i ogólnego posta. Ale nie wiem, dlaczego `excerpt_more` nie działa dla niestandardowych typów postów. Poniżej mój kod. class Fragment { // Domyślna długość (wg WordPress) public static $length = 55; // Możesz więc wywołać: doctoplus_excerpt('short'); public static $types = array( 'ten'=>10, 'few' => 15, 'short' => 25, 'regular' => 55, 'long' => 100 ); //Domyślnie bardziej publiczne statyczne $more = '...'; //Możesz więc wywołać doctoplus_excerpt('short','Czytaj więcej'); public static $moreTypes = array( 1 => 'Czytaj więcej', 2 => 'Więcej', 3 => 'Wyświetl więcej' ); /** * Ustawia długość fragmentu, * następnie dodaje filtr WP * I automatycznie wywołuje the_excerpt(); * * @param string $nowa_długość * @return void * @author Girija */ public static function length($nowa_długość = 55) { Fragment::$długość = $nowa_długość; add_filter('długość_wypisu', 'Wyciąg::nowa_długość', 999); Fragment::wyjście(); } // Informuje WP o nowej długości publicznej funkcji statycznej new_length() { if( isset(Wyciąg::$types[Wyciąg::$length]) ) return Wyciąg::$types[Wyciąg::$length]; w przeciwnym razie zwróć Fragment::$długość; } publiczna funkcja statyczna more($new_more = 'Czytaj więcej') { Fragment::$more = $new_more; add_filter('excerpt_more', 'Excerpt::new_more', 999); } //Powiedz WP o niestandardowej, bardziej publicznej funkcji statycznej new_more() { global $post; if(isset(Excerpt::$moreTypes[Excerpt::$more])) { return ' ID) . '">'. __(Wyciąg::$moreTypes[Wyciąg::$more], 'doctoplus') .''; } else { return Fragment::$more; } } // Echo fragmentu public static function output() { the_excerpt(); } } // Alias funkcji klasy doctoplus_excerpt($length = 55, $more = "...") { Fragment::length($długość); Fragment::więcej($więcej); }      Czy ktoś może mi pomóc? Naprawdę tego potrzebuję. Z góry dziękuję.


title: Problem z dodawaniem wartości do filtra „post_updated_messages”

text: Mam problem z dodaniem filtra do „post_updated_messages”, którego nie do końca rozumiem. Napisałem taką funkcję; function acc_course_updated_messages( $wiadomości ) { $post = get_post(); $post_type = get_post_type( $post ); $post_type_object = get_post_type_object( $post_type ); $singular = 'Kurs'; $messages['kurs'] = array( 0 => '', // Nieużywane. Wiadomości zaczynają się od indeksu 1. 1 => __( $singular . ' updated.', TEXTDOMAIN ), 2 => __( 'Pole niestandardowe updated.', TEXTDOMAIN ), 3 => __( 'Niestandardowe pole usunięte.', TEXTDOMAIN ), 4 => __( $singular . ' updated.', TEXTDOMAIN ), /* tłumacze: %s: data i godzina wersja */ 5 => isset( $_GET['rewizja'] ) ?sprintf( __( $singular . ' przywrócono do wersji z %s', TEXTDOMAIN ), wp_post_revision_title((int) $_GET['rewizja'], false ) ) : false, 6 => __( $singular . 'opublikowane.', TEXTDOMAIN ), 7 => __( $pojedyncze . 'zapisano.', TEXTDOMAIN ), 8 => __( $pojedyncze. 'przesłano.', TEXTDOMAIN ), 9 => sprintf( __( $singular . ' zaplanowane na: %1$s.', TEXTDOMAIN ), // tłumacze: Format daty w polu publikowania, zobacz http://php. data/netto data_i18 n( __( 'M j, Y @ G:i', TEXTDOMAIN ), strtotime( $post->post_date ) ) ), 10 => __( $singular . ' wersja robocza zaktualizowana', TEXTDOMAIN ), ); if ( $post_type_object->publicly_queryable ) { $permalink = get_permalink( $post->ID ); $view_link = sprintf( ' %s', esc_url( $permalink ), __( 'Widok ' . $singular, TEXTDOMAIN ) ); $wiadomości[ $post_type ][1] .= $view_link; $wiadomości[ $post_type ][6] .= $view_link; $wiadomości[ $post_type ][9] .= $view_link; $preview_permalink = add_query_arg( 'podgląd', 'prawda', $permalink ); $preview_link = sprintf( ' %s', esc_url( $preview_permalink ), __( 'Podgląd ' . $singular, TEXTDOMAIN ) ); $wiadomości[ $post_type ][8] .= $link_podglądu; $wiadomości[ $post_type ][10] .= $link_podglądu; } return $wiadomości; } add_filter( 'post_updated_messages', 'acc_course_updated_messages' ); Mam dwie takie funkcje w dwóch osobnych plikach – inaczej nazwanych. Większość z nich działa dobrze, z wyjątkiem sytuacji, gdy dochodzimy do dodania $view_link do tablicy $messages. Jeśli pozostanę przy wartości $messages[ $post_type ][x], wartość zostanie połączona z wartością $messages[ $post_type ][x] poprzedniego typu postu. Więc kończę z; Zobacz kursy Zobacz profile Oprócz kilku niezdefiniowanych błędów indeksu i niezdefiniowanych offsetów. Jeśli jednak zmienię wartość w każdym pliku na; $messages['the_name_of_the_post_type'][x] Wszystko działa dobrze. Czuję, że ma to coś wspólnego z zakresem, ale powtórzenie wartości $post_type daje poprawny typ postu. Jakieś pomysły?


title: wp_editor z przesyłaniem obrazu

text: Chciałbym mieć edytor tekstu wordpress na mojej stronie, w którym użytkownicy mogą dodawać posty i dodawać obrazy do postu. Używam wp_editor w poniższym kodzie. Jeśli jestem zalogowany jako administrator i wchodzę na działającą witrynę, widzę pole tekstowe i przycisk przesyłania multimediów, ale nie mam zwykłych przycisków tekstowych nad polem tekstowym. Jeśli wyloguję się z WP i wejdę na stronę, nie mam przycisku przesyłania multimediów. Jak dołączyć przyciski tekstowe nad edytorem tekstu? Jak włączyć przycisk Media Uplaod, aby użytkownicy mogli dodawać obrazy do postów? <?php if(isset($_POST['new_post']) == '1'){ $post_title = $_POST['post_title']; $post_category = $_POST['kot']; $post_content = $_POST['Tekst']; $new_post = array( 'ID' => '', 'post_author' => $user->ID, 'post_category' => array($post_category), 'post_content' => $post_content, 'post_title' => $post_title , 'post_status' => 'opublikuj' ); $post_id = wp_insert_post($nowy_post); $post = get_post($post_id); wp_redirect($post->guid); } ?> <form method='post' action="" class="idea_form"> Tytuł pomysłu <input type="text" name="post_title" id="title "> Pomysł <?php $content ='Prześlij pomysł'; $editor_id = 'myEditor'; $settings = array( 'teeny' => true, 'quicktags' => true, 'tinymce' => true, 'media_buttons' => true, 'wpautop' => true, 'textarea_name' => 'theText', ' editor_class' => 'my_TextBox', 'drag_drop_upload' => prawda ); wp_editor($zawartość, $edytor, $ustawienia); ?> Kategoria <?php wp_dropdown_categories('orderby=name&hide_empty=0&exclude=1&hierarchical=1'); ?> <input type="hidden" name="new_post" value="1"> <input type="submit" value="submit Idea" class="submit"> </form>


title: Jak dodać filmy na suwaku mojej strony głównej?

text:
Jak poleciłbyś dodanie filmów do pokazu slajdów na stronie głównej mojej witryny, oto kod php, który tworzy pokaz slajdów: <?php global $gpp; ?>

 <?php $slideshow_image_1','gpp_slideshow_image_2','gpp_slideshow_image_3'); $i=0; foreach ($slides as $slide) { if($gpp[$slide]<>"") { echo '

',"\n"; } } ?>


title: Rekomendacja wtyczki dynamicznej tabeli

text: Czy ktoś może polecić wtyczkę, za pomocą której mogę dodać tabelę do strony? Widziałem takie, które używają danych statycznych -- kodujesz na stałe liczby w tabeli. Chcę pobrać dane z niestandardowej tabeli db i umieścić je w tabeli. Spojrzałem na WP Table Reloaded, ale nie jestem pewien, czy można go używać z danymi dynamicznymi. Jakieś sugestie? Dziękuję Ci.


title: get_post_meta już nie działa

text:
Próbuję użyć get_post_meta, aby zwrócić wartość z meta postu, działała całkowicie dobrze, a następnie nagle przestała działać. Próbowałem i sprawdziłem wszystko i nie wydaje mi się, aby znów działało - kod, którego używam, jest taki jak poniżej - bez względu na to, co robię, nie mogę już zwrócić wartości meta dla pola meta. Kod jest dodawany do functions.php. Dosłownie przestało działać, wcześniej pobierało poprawne dane, teraz nie mogę pobrać żadnych metadanych. function last() { $args = array( 'posts_per_page' => 1); $last_5_posts_query = nowe WP_Query( $args ); while($last_5_posts_query->have_posts()) : $last_5_posts_query->the_post(); $link = pobierz_permalink(); $tytuł = pobierz_tytuł(); $title1 = get_post_meta(get_the_ID(), 'Tytuł 1', prawda); $title2 = get_post_meta(get_the_ID(), 'Tytuł 2', prawda); $more = 'Czytaj więcej...'; $content .= '
'; $content .= '
' .$title1. '
'; $content .= '
' .$title2. '
'; $treść .= '
'; koniec; zwróć $treść; }      Jakieś pomysły? Nazwy mięsa „Tytuł 1” i „Tytuł 2” nadal istnieją. Całkowicie bez pomysłów.


title: Multisite — pobierz tę samą opcję motywu ze wszystkich witryn sieci

text: Używam wielu witryn z każdą podwitryną przy użyciu tego samego motywu niestandardowego. Używam opcji NHP do przesyłania logo i zmian informacji o stronie kontaktowej w tym motywie. Chciałbym dodać stronę z listą witryn do witryny głównej (która używa innego motywu) i wyświetlać logo każdej podwitryny obok jej nazwy na liście. Uzyskanie listy stron było w porządku - żadnych problemów, ale za życia nie mogę wymyślić, jak sprawić, by logo się wyświetlało. Dane są przechowywane w zserializowanej tablicy w każdej tabeli opcji witryn - z nazwą opcji 'nhp_opts'. Dane wyglądają tak: a:5:{s:8:"last_tab";s:1:"0";i:19;s:59:"http://_PATH_TO_LOGO.png";i:20; s:34:"Test ulica,Testowanie,Test firmy";i:21;s:16:"(000) 123 456789";s:10:"multi_text"; a:4:{i:0;s:21:"Pon - Pt 9.30 - 6.00";i:1;s:18:"Sob - 10.00 - 6.00"; i:2;s:18:"Nd - 12.00 - 5.00";i:3;s:22:"Wakacje - Zamknięte";}} a kod, który ułożyłem, to: <?php global $wpdb; $logos = $wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->options WHERE nazwa_opcji = nhp_opts ")); foreach($logo jako $logo){ $dane = $logo; $dane = unserialize($dane); echo $dane; }?> Wszystko, co dostaję, to Array() - powtórzone kilka razy. Nie jestem za bardzo zaznajomiony z pracą bezpośrednio z bazą danych - więc nie jestem zbytnio zaskoczony, że to nie zadziałało! Spędziłem teraz kilka dni, zastanawiając się nad tym - każda pomoc byłaby bardzo wdzięczna! Dziękuję!


title: znajdowanie hierarchii menu > wp_get_nav_menu_items

text: Cześć Buduję menu przy użyciu kodu wymienionego tutaj. http://codex.wordpress.org/Function_Reference/wp_get_nav_menu_items Czy istnieje sposób na pozbycie się hierarchii menu. Ponieważ nie mogę tego debugować, trudno mi zobaczyć, co faktycznie zwraca wp_get_nav_menu_items. $menu_items = wp_get_nav_menu_items($menu->term_id); lub <?php $items = wp_get_nav_menu_items($menu, $args = array()); ?> Czy istnieje listing opisujący obiekty zwrócone przez funkcje wordpress? Każda pomoc jest bardzo ceniona.


title: the_excerpt Czytaj więcej Filtr

text: Obecnie wywołuję the_excerpt w tradycyjny sposób: <?php the_excerpt(); ?> Ale dodaję filtr w functions.php dla niestandardowej wiadomości "czytaj więcej". // Zmiana fragmentu więcej function new_excerpt_more($post) { return ' ID) . '">' . 'Czytaj więcej' . ''; } add_filter('excerpt_more', 'new_excerpt_more'); Oto problem; Chciałbym również wywołać the_excerpt wewnątrz postów bez wyświetlania żadnego linku typu read more, pozostawiając bez wpływu the_exerpt używanego w rzeczywistych fragmentach.


title: Dostosuj zapytanie kategorii w widżecie

text: Chciałbym wykluczyć kategorię z widżetu paska bocznego kategorii. Jeśli rozumiem, jak to działa, kod sidebar.php nie jest używany, ponieważ widżet wyświetla kategorie. (coś podobnego zostało omówione w tym temacie pomocy: http://wordpress.org/support/topic/problem-trying-to-hide-a- category-in-the-sidebar ). Jak mogę zmodyfikować zapytanie używane przez widżet; czy istnieje inny sposób na wykluczenie określonych kategorii z listy kategorii?


title: Jak ustawić różne pliki cookie dla zalogowanych użytkowników z uprawnieniami administratora i zalogowanych użytkowników bez uprawnień administratora?

text: Chciałbym identyfikować użytkowników z uprawnieniami administratora oraz użytkowników niebędących administratorami (ale zalogowanych) za pomocą plików cookie. Potrzebuję tej funkcji, ponieważ używam Hyper Cache (który używa plików cookie do identyfikowania tych, którzy wysyłają strony w pamięci podręcznej): Chciałbym udostępniać strony z pamięci podręcznej wszystkim niezalogowanym użytkownikom i wszystkim zalogowanym użytkownikom, ale niebędącym administratorem. Zalogowani administratorzy nie otrzymają stron w pamięci podręcznej.


title: problemy z wyłączeniem kategorii

text: Robiłem to już wcześniej, ale z jakiegoś powodu to nie działa i nie mogę zrozumieć, dlaczego. Jedyne, co próbuję zrobić, to wykluczyć niektóre kategorie ze strony bloga. Myślałem, że to prosta sprawa. Mam otwarty plik index.php i przed moją pętlą zrobiłem to query_posts($guery_string. '&cat=-6') if (have_posts)......reszta pętli tutaj. Próbowałem nawet dodać globalny $query_string; na górze, ale nic, co zrobię, nie usunie kategorii 6. Czy ta metoda nie działa już w najnowszej wersji wordpress?


title: Konwertuj komentarze na niestandardowy typ postu

text: Obecnie używam WordPressa jako strony z pytaniami i odpowiedziami, gdzie użytkownicy mogą się rejestrować, zadawać pytania i udzielać odpowiedzi. Używam motywu AskIt z ElegantThemes, który używa domyślnych typów postów WordPress (posty, strony, komentarze itp.). Obecnie zarejestrowanych jest około 300 użytkowników, ponad 350 pytań i 1000 odpowiedzi/komentarzy. Nowy motyw, do którego chcę przeprowadzić migrację (ForumEngine), dodaje/wykorzystuje niestandardowe typy postów dla pytań (zamiast obecnych postów) i odpowiedzi (zamiast bieżących komentarzy). Ponadto sekcja „blog”, która współistnieje z niestandardowymi typami postów, używa domyślnych typów postów WP (posty, komentarze). Udało mi się przekonwertować domyślny typ postu na niestandardowy typ posta (pytania) za pomocą wtyczki. Mój problem polega na tym, że nie wiem, jak mogę przekonwertować komentarze na niestandardowy typ posta (odpowiedzi), a ponieważ komentarze nie są typami postów, najwyraźniej ten może być trudny. Kiedy przechodzę na stronę edycji przekonwertowanego posta CPT, widzę komentarze na dole, ale nie są one wyświetlane w interfejsie. Tak więc nadal są powiązane z każdym postem, ale nie mogli dowiedzieć się, jak przekonwertować je na CPT. Czy możesz mi pomóc dowiedzieć się, jak mogę to zrobić? _Zrobiłem już dalsze badania i poprosiłem twórców motywu o pomoc, ale to wykracza poza ich zakres wsparcia._


title: Czy pamięć podręczna katalogu wtyczek WordPress może opóźnić przesyłanie obrazów?

text: Zaktualizowałem moją wtyczkę i widzę zaktualizowany tekst na stronie wtyczki, ale nie widzę żadnych zrzutów ekranu ani obrazu nagłówka. Czy jest możliwe, że pamięć podręczna przeniesie później pliki obrazów? A może zrobiłem coś źle składniowo, aby się nie wyświetlały? FYI Uruchomiłem mój plik readme przez walidator plików readme WordPress.


title: Jak mogę bezpiecznie zastąpić 7 stylów formularza kontaktowego?

text: Gdzie umieścić style css, aby zastąpić domyślne style formularza kontaktowego 7, aby moje zmiany nie zostały nadpisane przy każdej aktualizacji tej wtyczki?


title: Jak używać terminu taksonomii jako folderu permalink

text: Szukałem i nie znalazłem jeszcze sposobu, aby to zrobić. Próbuję utworzyć niestandardowy typ postu, który będzie wyświetlał strukturę permalink, która używa terminu taksonomii jako nazwy folderu. Oto przykład tego, co próbuję osiągnąć. ## taksonomia niestandardowa `page_type` Przykładowe terminy: * artykuł * wideo ## niestandardowy typ postu `custom_page` Przykładowe strony: * stolarka * jakość płyt kartonowo-gipsowych * prace betonowe ## Pożądana struktura permalink * http://site.com/%page_type% /%custom_page% * http://site.com/video/quality-drywall Być może nie jest to możliwe.


title: Jak zapobiec blokowaniu przez aktualizacje wtyczek zmian wprowadzonych przez użytkownika?

text: Jak mogę zapobiec blokowaniu przez aktualizacje moich wtyczek edycji i dodawania plików przez użytkownika w określonym podkatalogu mojej wtyczki? Napisałem wtyczkę do podświetlania składni, która korzysta z GeSHi. Podfolderem wtyczki jest sam GeSHi. Wielu użytkowników będzie chciało dostosować / edytować pliki językowe w GeSHi. Oto struktura katalogów: * wp-contente/plugins/my-plugin/ * kilka podkatalogów itp. * wp-content/plugins/my-plugin/geshi/geshi/ * użytkownicy będą dodawać pliki do tego katalogu * będą także edytuj pliki w tym katalogu * kiedy pobierają nowe aktualizacje Nie chcę usuwać ich edycji Jaki jest najlepszy sposób rozwiązania tego? Dziękuję! * * * Oto, o czym myślałem, ale nie wiem, jak to zaimplementować: 1. Na zaczepie akcji aktualizacji wtyczki (?) utwórz tymczasową kopię plików, które chcę zachować. 2. Pobierz nową wersję, rozpakuj i zainstaluj jak zwykle 3. Skopiuj zachowane pliki z kopii tymczasowej do nowej wersji 4. Usuń kopię tymczasową Idealnie byłoby to zrobione z plikami, ale w najgorszym przypadku mógłbym zapisać dane w DB. Problem polega na tym, że nie widzę zaczepów do aktualizacji wtyczek. Zajrzałem tu i tu.


title: Czy istnieje maksymalna liczba autorów bloga?

text: Tworzę blog WP, na którym będą prezentowane prace wielu artystów i chciałbym, aby przy każdym poście prezentował się biografię artysty. Ponieważ artysta może mieć wiele postów na blogu, nie chcę wstawiać informacji biografii bezpośrednio do posta i zamiast tego używać niestandardowej funkcji, aby to pokazać. Dlatego zastanawiałem się nad wykorzystaniem metadanych autora do przechowywania informacji o artyście. W ten sposób pojawiają się 2 pytania: 1. czy istnieje sztywny limit liczby autorów (lub powód, dla którego nie ma wielu autorów) 2. czy jest powód, aby nie robić tego w ten sposób? (lub lepszy sposób na zrobienie tego)


title: Dziennik czynności autora

text: Czy jest miejsce, w którym zapisywane są akcje takie jak tworzenie/usuwanie posta, tworzenie/usuwanie strony, modyfikacja itp.? Czy to jest przechowywane w dziennikach Apache? Jeśli to nie zostanie zapisane, czy jest sposób (wtyczka?), aby to zrobić?


title: Czy istnieje wtyczka, która ułatwi wyświetlanie treści strony internetowej (stron statycznych, a nie bloga) w dwóch językach?

text: Szukam najłatwiejszego sposobu na wyświetlenie treści jednej strony internetowej w dwóch różnych językach, nie potrzebuję tłumaczenia, mam własne tłumaczenie. Chcę tylko wyświetlić te same strony, ale w jednym zestawie po angielsku, a drugim po hiszpańsku. Czy ktoś mógłby mi pomóc, jak to osiągnąć? Czy istnieje wtyczka, która pozwoli mi po prostu przepisać treść i użyć tych samych zdjęć, układu itp.?


title: Jak zmusić użytkowników „zapamiętaj mnie” do ponownego logowania?

text: Moje pytanie brzmi, jak zmusić użytkowników, którzy są automatycznie zalogowani, ponieważ wcześniej zaznaczyli opcję „zapamiętaj mnie”, aby ponownie się zalogowali? To może być coś z plikami cookie, ale czy jest coś, co mogę zmienić/zmodyfikować, aby to zrobić? Dziękuję Ci. **AKTUALIZACJA** Generalnie przy użyciu wtyczki cookie jQuery kod sprawdzający obecność cookie w systemie użytkownika wygląda tak. $(document).ready(function(){ if(!$.cookie('nazwa-cookie')){ $.cookie('nazwa-cookie', 'true', { wygasa: 2}) ;... } Czy w Wordpressie jest jakiś podobny do obsługi tego?


title: Zniknął pasek administratora WP

text: Pasek administratora nagle zniknął z przedniej strony mojej witryny. Jest obecny i działa dobrze na zapleczu. Pomyślałem, że może to być spowodowane jakąś wtyczką, więc dezaktywowałem je po kolei i sprawdziłem. Teraz wszystkie wtyczki są dezaktywowane i nadal brakuje paska administratora ... Mój motyw ma `wp_footer()` w footer.php. Czego mi brakuje?


title: Ręcznie zainstalowana wtyczka nie wyświetla się

text: Zainstalowałem wtyczkę o nazwie hide-title, rozpakowując ją i kopiując pliki do wtyczek reż. Ale nie pojawia się na liście wtyczek. Sprawdziłem następujące elementy: * główny plik php wtyczki na pierwszy rzut oka wygląda dobrze, ma wymagany nagłówek * nie ma problemu z podwójnym zagnieżdżeniem, takiego jak „wtyczki/ukryj-tytuł/ukryj-tytuł/...” * I' próbowałem chmod -R 777 wp-content * Wtyczka jest zgodna z moją wersją wordpress * Nie pracuję w złym katalogu - próbowałem na przykład zmienić nazwę motywu dwadzieściaten na dwadzieściaten_ i to znalazło odzwierciedlenie w desce rozdzielczej. być bardziej ogólnym problemem, ponieważ próbowałem również zainstalować motyw i dostałem ten sam problem. Nie chcę instalować rzeczy za pośrednictwem interfejsu użytkownika pulpitu nawigacyjnego, ponieważ miałem z tym problemy z FTP/uprawnieniami i zrezygnowałem z tego.


title: shortcode - muszę wrzucić wiadomość lub załadować inną stronę

text: Wyświetlam formularz po stronie publicznej za pomocą shortcode.Skrót jest zawarty w poście add_new, znajdującym się pod adresem `http://localhost/wordpress/add_new/`. Po pomyślnym zapisaniu danych formularza potrzebuję, aby strona 1) zmieniała lokalizację strony i wyświetlała komunikat o pomyślnym zakończeniu lub wyświetlała komunikat o pomyślnym zakończeniu na stronie add_new. To jest mój krótki kod: add_shortcode( 'show_INT_form', function() { $int_class = new int_class; if ( isset( $_REQUEST['int_prefix'] ) && isset( $_REQUEST['int_suffix'] ) ) { // ?? ??Obszar X // Co mam tu zrobić? // ???? } else { $ret = $int_class->public_form();// funkcja ładująca formularz na stronę } return $ret; } ); Jak mogę sprawić, by strona add_new załadowała inną stronę? Widziałem przykładowy kod, który po prostu powtarza `<meta http-equiv='refresh' content='0;url=page_to_load' />` w **Obszar X** znajdującym się w komentarzach w powyższym kodzie. Próbowałem tego i działa, ale czy to właściwa procedura? Nie próbowałem innych metod, ponieważ nie wiem, jak obejść zakres funkcji i klasy. Jak mogę wywołać nowy detektor zdarzeń (taki jak `add_action( 'send_headers' )` ) poza moją funkcją add_shortcode i przekazać mu argument, taki jak komunikat 'sukces' lub 'błąd'?


title: jak sprawić, by arkusz stylów pojawił się w edytorze motywów?

text: Mam arkusz stylów w moim motywie w podkatalogu css katalogu motywu (`css/style.css`). Pytanie brzmi, jak sprawić, by ten plik .css pojawił się w edytorze motywów administratora WordPress. (Wiem, że korzystanie z edytora internetowego to zły pomysł i nigdy go nie używam, ale klient specjalnie o to poprosił). Uwaga: jedynym plikiem css, który pojawia się domyślnie w moim edytorze motywów, jest „style.css” głównego katalogu motywu, ale nie tego potrzebuję.


title: Wyszukiwanie nie działa z 'relation' => 'LUB'

text: **Rekordy w bazie danych:** 5 **Problem:** Ten kod zajmuje dużo czasu na przeszukanie 5 rekordów i kończy się rozłączaniem bez powodzenia. Jeśli zmienię `'relation' => 'OR'` na `'relation' => 'AND'` to zadziała, ale nie tego szukam w tym scenariuszu. **_Czy wszystko w porządku w moim kodzie?_** <?php $args = array( 'post_type' => 'shipping-schedules', 'posts_per_page' => 5, 'post_status' => 'publish', 'paged' => $paged, 'meta_query' => array( 'relation' => 'LUB', array( 'key' => 'schedules_port', 'value' => $sfrom, 'compare' => 'LIKE' ), array( 'key' => 'schedules_port', 'value' => $sto, 'compare' => 'LIKE' ), array( 'key' => 'schedules_vessel', 'value' => $svessel, 'compare ' => 'LIKE' ), array( 'key' => 'schedules_voyage', 'value' => $svoyage, 'compare' => 'LIKE' ), array( 'key' => 'schedules_arrival', 'value ' => $sdate_arrival, 'co mpare' => '>=', 'type' => 'NUMERYCZNE' ), array( 'key' => 'schedules_departure', 'value' => $sdate_departure, 'compare' => '<=', 'type ' => 'NUMERYCZNE' ) ) ); ?>


title: the_widget() wewnątrz functions.php

text: Ustawiam kilka opcji w backendzie za pomocą functions.php i robię: $w = the_widget('My_Custom_Widget'); ale nie otrzymuję żadnych danych wyjściowych. Jednak robienie <?php the_widget('My_Custom_Widget'); ?> na dowolnym szablonie strony działa dobrze. W jaki sposób mogę to zrobić?


title: Tagi dla całej witryny i interfejs API przejściowy

text:
Prowadzę kilka sieci wielostanowiskowych i używam przydatnej wtyczki o nazwie WordPress MU Sitewide Tags Pages. Wtyczka bardzo mi się podoba, ale martwię się o wydajność, zwłaszcza, że moje sieci generują więcej jednoczesnych użytkowników i powiększają się pod względem liczby podstron. Chciałbym użyć API Transients, aby zwiększyć wydajność wtyczki, ale pomimo moich najlepszych badań nie znalazłem żadnego użytecznego kierunku, od czego zacząć. Zastanawiam się, czy sama wtyczka wymagałaby dostosowania, czy też pętla w moim motywie wymagałaby dostosowania. Używam standardowej pętli. Czy bardziej sensowne byłoby buforowanie tej pętli lub buforowanie niestandardowej zmiennej WP_Query? Wiem, że wtyczka ma ponad 500 linii, ale pomyślałem, że warto rozpocząć rozmowę o tym, jak najlepiej zastosować API Transients do wtyczki. Oto wtyczka: <?php /* Nazwa wtyczki: WordPress MU Tagi całej witryny URI strony: http://ocaoimh.ie/wordpress-mu-sitewide-tags/ Wersja: 0.4.2Autor: Donncha O Caoimh URI autora: http://ocaoimh.ie/ */ /* Copyright 2008 Donncha O Caoimh (http://ocaoimh.ie/) Z wkładem Rona Rennicka (http://wpmututorials.com/) , Thomas Schneider (http://www.im-web-gefunden.de/) i inni. */ function swt_add_pages() { globalna $wpmu_version, $wp_version; if ( version_compare( $wp_version, '3.0.9', '<=' ) && version_compare( $wp_version, '3.0', '>=' ) && is_multisite() && is_super_admin() ) { add_submenu_page( 'ms-admin. php”, „Tagi całej witryny”, „Tagi całej witryny”, „opcje_zarządzania”, „tagi całej witryny”, „swt_manager” ); } elseif ( isset( $wpmu_version ) && is_site_admin() ) { add_submenu_page( 'wpmu-admin.php', 'Tagi dla całej witryny', 'Tagi dla całej witryny', 'manage_options', 'sitewidetags', 'swt_manager' ); } } add_action('admin_menu', 'swt_add_pages'); function swt_network_add_pages() { add_submenu_page( 'settings.php', 'Tagi dla całej witryny', 'W całym serwisieTagi”, „manage_options”, „sitewidetags”, „swt_manager” ); } add_action('network_admin_menu', 'swt_network_add_pages'); function swt_text_domain() { load_muplugin_textdomain( 'wpmu-sitewide-tags', MUPLUGINDIR . '/języki' ); } add_action( 'init', 'swt_text_domain' ); function swt_manager() { echo '
'; if( !empty( $_REQUEST['updated'] ) && '1' == $_REQUEST['updated'] ) echo '

' . __( 'Zaktualizowano ustawienia.', 'wpmu-mu-sitewide-tags' ) . '

'; echo '
' . __( 'Tagi globalne', 'wpmu-sitewide-tags' ) . '
'; echo '<form name="global_tags" action="" method="post">'; echo '<input type="ukryty" name="akcja" value="sitewidetags" />'; wp_nonce_field('tagi całej witryny'); if( get_sitewide_tags_option( 'tags_blog_public' ) === null ) add_site_option( 'sitewide_tags_blog', array( 'tags_blog_public' => 1)); $tags_blog_enable = get_sitewide_tags_option( 'tags_blog_enabled' ); ?>

 <?php _e('Tagi Blog','wpmu-sitewide-tags') ?>	  <etykieta><nazwa wejściowa="tags_blog_enabled" type="pole wyboru" id="tags_blog_enabled" value="1" <?php if( $tags_blog_enable == 1 ) { echo "checked='zaznaczone'" ; } ?> /> <?php _e("Włączone","wpmu-sitewide-tags"); ?>
 <?php if( !$tags_blog_enable ) { echo "

<input class= 'button-primary' type='prześlij' value='" . __( 'Ustawienia aktualizacji', 'wpmu-mu-sitewide-tags' ) . "' />
 </form>
"; zwróć fałsz; } $tags_blog_public = get_sitewide_tags_option( 'tags_blog_public' ); $tags_blog_pages = get_sitewide_tags_option( 'tags_blog_pages'); $tags_blog_thumbs = get_sitewide_tags_option( 'tags_blog_thumbs' ); $tags_blog_pub_check = get_sitewide_tags_option( 'tags_blog_pub_check' ); $tags_blog_postmeta = get_sitewide_tags_option( 'tags_blog_postmeta' ); ?>
? wpmu-sitewide-tags"); ?>

<input name="tags_blog" type="text" id="tags_blog" style="szerokość: 35%" value="<?php echo esc_attr( get_sitewide_tags_option( 'tags_blog ', 'tags' ) ); ?>" size="45" />
 <?php _e('Nazwa bloga bloga, w którym będą znajdować się Twoje globalne tagi i posty. Blog będzie być utworzony. ','wpmu-sitewide-tags') ?>

<input name="tags_blog_main_blog" type="checkbox" id="tags_blog_main_blog" value="1" <?php if( get_sitewide_tags_option( 'tags_blog_main_blog', 0 ) == 1 ) { echo "sprawdzone='sprawdzone'"; } ?> /> <?php _e( "Opublikuj na głównym blogu","wpmu-sitewide-tags" ); ?>
 <?php _e('Twórz posty na swoim głównym blogu. Wszystkie posty pojawią się na pierwszej stronie Twojej witryny. Pamiętaj, aby dodać pętlę postów do home.php w katalogu motywu, jeśli istnieje.','wpmu-sitewide-tags') ?>

 <?php _e('Max Posts','wpmu-sitewide-tags') ?>	  <input name="tags_max_posts" type="text" id="tags_max_posts"style="szerokość : 15%" value="<?php echo intval( get_sitewide_tags_option( 'tags_max_posts', 5000 ) ); ?>" size="5" />
 <?php _e('Maksymalna liczba postów przechowywanych w blog tagów.','wpmu-sitewide-tags') ?>

 <?php _e('Dołącz strony', 'wpmu-sitewide-tags') ?>	 <etykieta><input name="tags_blog_pages" type="checkbox" id="tags_blog_pages" value="1" <?php if( $tags_blog_pages == 1 ) { echo "checked='checked'"; } ?> /> <?php _e("Włączone","wpmu-sitewide-tags"); ?>

 <?php _e('Dołącz miniatury postów',' wpmu-sitewide-tags') ?>	  <input name="tags_blog_thumbs" type="checkbox" id="tags_blog_thumbs" value="1" <?php if( $tags_blog_thumbs == 1 ) { echo "sprawdzone='sprawdzone'"; } ?> /> <?php _e("Włączone","wpmu-sitewide-tags"); ?>

 <?php _e('Prywatność','wpmu- sitewide-tags') ?>	  <etykieta><input type='radio' name='tags_blog_public' value='1' <?php echo ( $tags_blog_public == 1 ? 'checked="checked"' : '' ) ?> /> <?php _e('Tagi stron mogą być indeksowane przez wyszukiwarki.','wpmu-sitewide-tags')?>
  <input type='radio' name='tags_blog_public' value='0' <?php echo ( $tags_blog_public == 0 ? 'checked="checked"' : '' ) ?> /> <?php _e('Tagi strony nie będą indeksowane przez wyszukiwarki.','wpmu-sitewide-tags')?>
 <?php _e('Czy strony z tagami będą widoczne dla Google i innych wyszukiwarek?', 'wpmu-sitewide-tags'); if( $tags_blog_public == 1 ) { ?> <input name="tags_blog_pub_check" type="hidden" value="0" /> <?php } else { ?>

 <?php _e('Blogi niepubliczne','wpmu-sitewide-tags') ?>	  <input name="tags_blog_pub_check " type="pole wyboru" id="tags_blog_pub_check" value="1" <?php if( $tags_blog_pub_check == 1 ) { echo "sprawdzone='sprawdzone'"; } ?> /> <?php _e("Włączone","wpmu-sitewide-tags"); ?>
 <?php _e('Dołącz posty z blogów nieindeksowanych przez wyszukiwarki.','wpmu-sitewide-tags'); } ?>
 <ty zakres="wiersz"><?php _e('Post Meta') ?>	  <textarea name="tags_blog_postmeta" id ="tags_blog_postmeta" cols='40' rows='5'><?php echo $tags_blog_postmeta == '' ? '' : @implode( "\n", $tags_blog_postmeta ); ?></textarea>
 <?php _e('Jeśli chcesz skopiować niestandardowe pola z postami. Jedno niestandardowe pole w wierszu.') ?>

<input class='button-primary' type='submit' value='<?php _e( 'Aktualizuj ustawienia', 'wpmu-mu-sitewide-tags') ?>' />
 </form> <?php echo '<form name="global_tags" action="" method="GET">'; echo "<input type='ukryta' nazwa='strona' value='sitewidetags' />"; echo "<typ wejścia='ukryta' nazwa='akcja' wartość='zapełnianie blogów' />"; wp_nonce_field('tagi całej witryny'); ?>

 <ty zakres="row"><?php _e('Wypełnij posty','wpmu-sitewide-tags') ?>	  <?php printf( __( 'Identyfikator bloga: %s LUB', 'wpmu-sitewide-tags' ), '<input name="populate_blog" type="text" id="populate_blog" style="szerokość: 15%" value="" size="5" />' ); ?>
 <input name="populate_all_blogs" type="checkbox" id="populate_all_blogs" value="1" /> <?php _e( 'Wszystkie blogi', 'wpmu-sitewide-tags' ); ?>
 <?php _e( 'Dodaj posty z bloga wymienionego powyżej lub wszystkich blogów do bloga z tagami w całej witrynie. Ta strona zostanie ponownie załadowana podczas kopiowania postów i może zająć dużo czasu, aby zakończyć.', 'wpmu- sitewide-tags' ) ?>
 <?php _e( 'Uwaga: W zależności od zasobów serwera może być konieczne wyłączenie innych wtyczek podczas korzystania z funkcji wypełniania.', 'wpmu- sitewide-tags' ) ?>

<input class='button-primary' type='submit' wartość ='<?php _e( 'Poplate Posts', 'wpmu-mu-sitewide-tags' ) ?>' />
 </form>
 <?php } function sitewide_tags_update_options() { global $ wpdb, $bieżąca_witryna, $bieżąca_użytkownik, $wp_wersja; $valid_nonce = isset($_REQUEST['_wpnonce']) ? wp_verify_nonce($_REQUEST['_wpnonce'], 'sitewidetags') : false; if (!$valid_nonce) zwraca false; if ( $_GET[ 'action' ] == 'populateblogs' ) { $id = isset( $_GET[ 'populate_blog'] ) ? (int)$_GET[ 'wypełnij_blog' ] : 0; $c = isset( $_GET[ 'c'] ) ? (int)$_GET[ 'c'] : 0; // liczba blogów$p = isset( $_GET[ 'p'] ) ? (int)$_GET[ 'p' ] : 0; // liczba postów $all = isset( $_GET[ 'all' ] ) ? (int)$_GET[ 'wszystkie' ] : 0; // wszystkie blogi if ( $id == 0 && isset( $_GET[ 'populate_all_blogs' ] ) ) // wszystkie blogi. $wszystkie = 1; $tags_blog_id = get_sitewide_tags_option( 'tags_blog_id' ); if( !$tags_blog_id ) zwraca false; if( $all ) $blogs = $wpdb->get_col( $wpdb->prepare( "SELECT blog_id FROM $wpdb->blogs ORDER BY blog_id DESC LIMIT %d,5", $c ) ); w przeciwnym razie $blogs = array( $id ); foreach( $blogi jako $blog ) { if( $blog != $tags_blog_id ) { $szczegóły = get_blog_details( $blog ); $url = add_query_arg( array( 'p' => $p, 'action' => 'sitewidetags-wypełnij', 'key' => md5( serialize( $details ) ) ), $details->siteurl ); $p = 0; $post_count = 0; $ wynik = wp_remote_get ( $ adres ); if( isset( $result['body'] ) ) $post_count = (int)$result['body']; if( $post_count ) { $p = $post_count; przerwanie; } } $c++; } if( !empty( $blogs ) && ( $all || $p ) ) { if ( version_compare( $wp_version, '3.0.9', '<=' ) && version_compare( $wp_version, '3.0', '> =' ) ) $url = admin_url( 'ms-admin.php' ); else $url = network_admin_url( 'settings.php' ); wp_redirect( wp_nonce_url( $url , 'sitewidetags' ) . "&page=sitewidetags&action=populateblogs&c=$c&p=$p&all=$all" ); umierać(); } wp_die( 'Zakończono importowanie postów do tagów blogów!' ); } if( !$_POST[ 'tags_blog_enabled' ] ) {if( get_sitewide_tags_option( 'tags_blog_enabled' ) != $_POST[ 'tags_blog_enabled' ] ) update_sitewide_tags_option( 'tags_blog_enabled', 0, true ); wp_redirect( add_query_arg( array( 'zaktualizowane' => '1') ) ); Wyjście; } update_sitewide_tags_option( 'tags_blog_enabled', 1 ); if( ( isset( $_POST[ 'tags_blog' ] ) || isset( $_POST[ 'tags_blog_main_blog' ] ) ) && isset( $_POST[ 'tags_blog_public' ] ) ) { if( $_POST[ 'tags_log'blog_main_b 1 ) { if( $bieżąca_witryna->id_blogu ) $id = $bieżąca_witryna->id_blogu; else $id = $wpdb->get_var( "SELECT blog_id FROM {$wpdb->blogi} WHERE domena = '{$bieżąca_witryna->domena}' AND path = '{$bieżąca_witryna->ścieżka}'" ); if( $id ) { update_sitewide_tags_option( 'tags_blog_id', $id ); update_sitewide_tags_option( 'tags_blog_main_blog', 1 ); } else { update_sitewide_tags_option( 'tags_blog_main_blog', 0 ); } } else { update_sitewide_tags_option( 'tags_blog_main_blog', 0 ); $tags_blog = $_POST[ 'tags_blog']; update_sitewide_tags_option( 'tags_blog', $tags_blog ); if( stała( 'VHOST' ) == 'tak' ) { $domena = $tags_blog . '.' . $bieżąca_witryna->domena; $ścieżka = $bieżąca_witryna->ścieżka; } else { $domena = $bieżąca_witryna->domena; $path = trailingslashit( $bieżąca_witryna->ścieżka . $tags_blog); } $tags_blog_id = $wpdb->get_var( "SELECT blog_id FROM {$wpdb->blogs} WHERE domena = '$domena' AND ścieżka = '$ścieżka'" ); if( $tags_blog_id ) { update_sitewide_tags_option( 'tags_blog_id', $tags_blog_id ); } else { $wpdb->ukryj_błędy();$id = wpmu_create_blog( $domain, $path, __( 'Global Posts','wpmu-sitewide-tags' ), $current_user->id , array( "public" => $_POST[ 'tags_blog_public'] ), $ aktualna_witryna->id); update_sitewide_tags_option( 'tags_blog_id', $id ); $wpdb->show_errors(); } } $tags_blog_public = (int)$_POST[ 'tags_blog_public']; update_sitewide_tags_option( 'tags_blog_public', $tags_blog_public ); update_blog_option( $tags_blog_id, 'blog_public', $tags_blog_public ); update_blog_status( $tags_blog_id, 'publiczny', $tags_blog_public); } if( isset( $_POST[ 'tags_max_posts' ] ) ) update_sitewide_tags_option( 'tags_max_posts', (int)$_POST[ 'tags_max_posts' ] ); if( get_sitewide_tags_option( 'tags_blog_pages' ) != $_POST[ 'tags_blog_pages' ] ) update_sitewide_tags_option( 'tags_blog_pages', (int)$_POST[ 'tags_blog_pages' ] );if( get_sitewide_tags_option( 'tags_blog_thumbs' ) != $_POST[ 'tags_blog_thumbs' ] ) update_sitewide_tags_option( 'tags_blog_thumbs', (int)$_POST[ 'tags_blog_thumbs'] ] if( get_sitewide_tags_option( 'tags_blog_pub_check' ) != $_POST[ 'tags_blog_pub_check' ] ) { if( $tags_blog_public == 0 ) update_sitewide_tags_option( 'tags_blog_check', 'pub_OST)$_sP; else update_sitewide_tags_option( 'tags_blog_pub_check', 0 ); } if( $_POST['tags_blog_postmeta'] != '' ) { $meta_keys = split( "\n", stripslashes( $_POST[ 'tags_blog_postmeta']) ); foreach( (tablica) $meta_keys as $key ) { $keys[] = trim( $key ); } update_sitewide_tags_option( "tags_blog_postmeta", $klucze ); } else { update_sitewide_tags_option( "tags_blog_postmeta", '' ); } // wymuś zapis w przypadku zmian saved update_sitewide_tags_option(prawda); wp_redirect( add_query_arg( array( 'zaktualizowane' => '1') ) ); Wyjście; } if ( !empty( $_GET[ 'strona' ] ) && $_GET[ 'strona' ] == 'sitewidetags' ) add_action( 'admin_init', 'sitewide_tags_update_options' ); /* uruchom funkcję wypełniania w kontekście lokalnego bloga, ponieważ get_permalink nie generuje poprawnych permalinków podczas przełączania */ function sitewide_tags_populate_posts() { global $wpdb; $valid_key = isset( $_REQUEST['key'] ) ? $_REQUEST['klucz'] == md5(serialize(get_blog_details( $wpdb->blogid) ) ) : false; if (!$valid_key) zwraca false; $tags_blog_id = get_sitewide_tags_option( 'tags_blog_id' ); $tags_blog_enabled = get_sitewide_tags_option( 'tags_blog_enabled' ); if( !$tags_blog_enabled || !$tags_blog_id || $tags_blog_id == $wpdb->blogid ) exit( '0' ); $posts_zrobione = 0; $p = isset( $_GET[ 'p' ] ) ? (int)$_GET[ 'p' ] : 0; // liczba postów while ( $posts_done < 300 ) { $posts = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_status = 'publish' LIMIT %d, 50", $ p + $posts_zrobione ) ); if ( pusty( $posts ) ) exit( '0' ); foreach ( $posts as $post ) { if ( $post != 1 && $post != 2 ) sitewide_tags_post( $post, get_post( $post ) ); } $posts_done += 50; } wyjście( $posts_done ); } if ( !empty( $_GET[ 'akcja' ] ) && $_GET[ 'akcja' ] == 'sitewidetags-wypełnij' ) add_action( 'init', 'sitewide_tags_populate_posts' ); funkcja sitewide_tags_post( $post_id, $post ) { global $wpdb; if( !get_sitewide_tags_option( 'tags_blog_enabled' ) ) return; // wp_insert_category() include_once(ABSPATH . 'wp-admin/includes/admin.php'); $tags_blog_id = get_sitewide_tags_option( 'tags_blog_id' ); if( !$tags_blog_id || $wpdb->blogid == $tags_blog_id ) return; $allowed_post_types = apply_filters( 'sitewide_tags_allowed_post_types', array( 'post' => true ) ); if ( !$allowed_post_types[$post->post_type] ) return; $post_blog_id = $wpdb->blogid; $blog_status = get_blog_status($post_blog_id, "publiczny"); if ( $blog_status != 1 && ( $blog_status != 0 || get_sitewide_tags_option( 'tags_blog_public') == 1 || get_sitewide_tags_option( 'tags_blog_pub_check') == 0 ) ) return; $post->post_category = wp_get_post_categories ($post_id ); $koty = tablica(); foreach( $post->post_category as $c ) { $cat = get_category( $c ); $cats[] = array( 'name' => esc_html( $cat->name ), 'slug' => esc_html( $cat->slug ) ); } $post->tags_input = implode( ', ', wp_get_post_tags( $post_id, array('fields' => 'imiona')) ) ); $post->guid = $post_blog_id . '.' . $post_id; $global_meta = tablica(); $global_meta['permalink'] = get_permalink( $post_id ); $global_meta['blogid'] = $org_blog_id = $wpdb->blogid; // org_blog_id $meta_keys = apply_filters( 'sitewide_tags_meta_keys', get_sitewide_tags_option( 'tags_blog_postmeta', array() ) ); if( is_array( $meta_keys ) && !empty( $meta_keys ) ) { foreach( $meta_keys as $key ) $global_meta[$key] = get_post_meta( $post->ID, $key, true ); } unset( $meta_keys ); if( get_sitewide_tags_option( 'tags_blog_thumbs' ) && ( $thumb_id = get_post_meta( $post->ID, '_thumbnail_id', true )) ) { $thumb_size = apply_filters( 'sitewide_tags_thumb_size', ' $global_meta['thumbnail_html'] = wp_get_attachment_image ($thumb_id, $thumb_size ); } // niestandardowe taksonomie $taxonomies = apply_filters( 'sitewide_tags_custom_taxonomies', array() ); if( !empty( $taxonomies ) && $post->post_status == 'publish' ) { $registered_tax = array_diff( get_taxonomies(), array( 'post_tag', 'category', 'link_category', 'nav_menu' ) ); $custom_tax = array_intersect( $taksonomie, $zarejestrowany_podatek ); $wejście_podatkowe = tablica(); foreach( $custom_tax as $tax ) { $terms = wp_get_object_terms( $post_id, $tax, array( 'fields' => 'names') ); if( pusty( $terms ) ) kontynuuj; if( is_taxonomy_hierarchical( $tax ) ) $tax_input[$tax] = $warunki; else $tax_input[$tax] = implode( ',', $terms ); } if( !empty( $tax_input ) ) $post->tax_input = $tax_input; } switch_to_blog( $tags_blog_id ); if( is_array( $koty ) && !empty( $koty ) && $post->post_status == 'opublikuj' ) {foreach( $cats as $t => $d ) { $term = get_term_by( 'slug', $d['slug'], 'category' ); if( $term && $term->parent == 0 ) { $category_id[] = $term->term_id; kontynuować; } /* Tutaj wstawiamy kategorię, jeśli to konieczne */ wp_insert_category( array('cat_name' => $d['name'], 'category_description' => $d['name'], 'category_nicename' => $ d['slug'], 'category_parent' => '') ); /* Teraz pobierz identyfikator kategorii, który ma być użyty w poście */ $category_id[] = $wpdb->get_var( "SELECT term_id FROM ". $wpdb->get_blog_prefix( $tags_blog_id) . "terms WHERE slug = '" . $d['slug'] ."'" ); } } $global_post = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->posts} WHERE guid IN (%s,%s)", $post->guid, esc_url( $post ->przewodnik ) ) ); if( $post->post_status != 'opublikuj' && is_object( $global_post ) ) {wp_delete_post ($global_post->ID ); } else { if( $global_post->ID != '' ) { $post->ID = $global_post->ID; // edycja starego posta foreach( array_keys( $global_meta ) as $key ) delete_post_meta( $global_post->ID, $key ); } else { unset( $post->ID ); // nowy post } } if( $post->post_status == 'opublikuj' ) { $post->ping_status = 'zamknięty'; $post->comment_status = 'zamknięty'; /* Użyj identyfikatora kategorii we wpisie */ $post->post_category = $category_id; $p = wp_insert_post ($post ); foreach( $global_meta as $klucz => $wartość ) if( $wartość ) add_post_meta( $p, $klucz, $wartość ); } restore_current_blog(); } add_action('save_post', 'sitewide_tags_post', 10, 2); funkcja sitewide_tags_post_delete( $post_id ) {/* * co powinniśmy zrobić, jeśli post zostanie usunięty, a funkcja tagów blogu jest wyłączona? * trzeba sprawdzić, czy mamy post na blogu z tagami, a jeśli tak - usunąć to */ global $wpdb; $tags_blog_id = get_sitewide_tags_option( 'tags_blog_id' ); if( null === $tags_blog_id ) return; if ( $wpdb->blogid == $tags_blog_id ) return; $post_blog_id = $wpdb->blogid; switch_to_blog( $tags_blog_id ); $guid = "{$post_blog_id}.{$post_id}"; $global_post_id = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE guid IN (%s,%s)", $guid, esc_url( $guid )) ); if( null !== $global_post_id ) wp_delete_post( $global_post_id ); restore_current_blog(); } add_action( 'trash_post', 'sitewide_tags_post_delete' ); add_action( 'delete_post', 'sitewide_tags_post_delete' ); /** * usuń wszystkie posty z danego bloga ($blog_id != 0) * - używane, gdy blog jest usunięty lub oznaczony jako dezaktywowany, spam, archiwum, dojrzały * - działa również, gdy blog jest przełączany na niepubliczny blog (nazywany przez * sitewide_tags_public_blog_update), więcej szczegółów na temat sitewide_tags_public_blog_update * usuwa niektóre posty po osiągnięciu limitu ($blog_id == 0) * - wywołane innymi akcjami, ale bez podanego blog_id * - liczba postów do usunięcia w $max_to_del * * @param $blog_id */ function sitewide_tags_remove_posts($blog_id = 0 ) { globalny $wpdb; $tags_blog_id = get_sitewide_tags_option( 'tags_blog_id' ); $max_do_del = 10; if( !$tags_blog_id ) return; /* akcje na blogu tagów */ if ( ($blog_id == 0) && ($wpdb->blogid == $tags_blog_id) ) return; if ( $tags_blog_id == $blog_id ) return; switch_to_blog( $tags_blog_id ); if ( $blog_id != 0 ) { $posts= $wpdb->get_col( "SELECT ID FROM {$wpdb->posts} WHERE guid LIKE '" . $blog_id . ".%' OR guid LIKE '" . esc_url( $blog_id) . ".%'" ); if( is_array( $posts ) && !empty( $posts ) ) { foreach( $posts as $p_id ) { wp_delete_post( $p_id ); } } } else { /* usuń wszystkie posty przekraczające maksymalny limit */ if( mt_rand( 0, 10 )) { $allowed_post_types = apply_filters( 'sitewide_tags_allowed_post_types', array( 'post' => true ) ); if( is_array( $allowed_post_types ) && !empty( $allowed_post_types ) ) { $post_types = array(); foreach( $allowed_post_types as $k => $v ) { if( $v ) { $post_types[] = $k; } } if( is_array( $post_types ) && !empty( $post_types ) ) { if( count( $post_types ) > 1 )$where = "IN ('" . join( "','", $post_types ). "') "; w przeciwnym razie $where = "= '" . $post_types[0] . "' "; } else { $where = "= 'post'"; } $posts = $wpdb->get_results( "SELECT ID, guid FROM {$wpdb->posts} WHERE post_status='publish' AND post_type {$where} ORDER BY ID DESC limit" . get_sitewide_tags_option( 'tags_max_posts', 5000) . ", " . $max_to_del ); if( is_array( $posty ) && !empty( $posty ) ) { foreach( $posty jako $p ) { if( preg_match('|^.*\.([0-9]+)$|', $p ->guid, $matches) && intval( $matches[1]) > 0) wp_delete_post($p->ID); } } } } } restore_current_blog(); } /* zakończ działania bloga ($blog_id != 0) */ add_action('delete_blog', 'sitewide_tags_remove_posts', 10, 1); add_action('archive_blog', 'sitewide_tags_remove_posts', 10, 1); add_action('deactivate_blog', 'sitewide_tags_remove_posts', 10, 1); add_action('make_spam_blog', 'sitewide_tags_remove_posts', 10, 1); add_action('mature_blog', 'sitewide_tags_remove_posts', 10, 1); /* akcje pojedynczego posta ($blog_id == 0) */ add_action("transition_post_status", 'sitewide_tags_remove_posts'); /** * wywoływana jako akcja, jeśli stan publiczny bloga zostanie zmieniony * - jeśli blog stanie się niepubliczny - wszystkie posty w blogu tagów zostaną usunięte * - błąd 1.5.1: update_option_blog_public jest wyzwalany tylko wtedy, gdy publiczny stan * został zmieniony z backendu - z edycji bloga jako siteadmin akcja nie jest * uruchomiona i stan backendu blogów nie uległ zmianie * * @param int $stary - stary stan publiczny * @param int $nowy - nowy stan, publiczny == 1, niepubliczny == 0 */ funkcja sitewide_tags_public_blog_update ($stary, $nowy) { globalny $wpdb; $tags_blog_id = get_sitewide_tags_option( 'tags_blog_id' ); if( !$tags_blog_id ) return; /* tagi blog */ if ( $tags_blog_id == $wpdb->blogid ) return; if ($new == 0 ) { sitewide_tags_remove_posts($wpdb->blogid); } } add_action('update_option_blog_public', 'sitewide_tags_public_blog_update', 10, 2); funkcja sitewide_tags_post_link ($link, $post) { globalny $wpdb; $tags_blog_id = get_sitewide_tags_option( 'tags_blog_id' ); if( !$tags_blog_id ) return $link; if( $wpdb->blogid == $tags_blog_id ) { if( is_numeric( $post ) ) $url = get_post_meta( $post, 'permalink', true ); else $url = get_post_meta( $post->ID, "permalink", true ); if( $url ) zwraca $url; } return $link; } add_filter( 'post_link', 'sitewide_tags_post_link', 10, 2 ); add_filter( 'page_link', 'sitewide_tags_post_link', 10, 2 ); function sitewide_tags_pages_filter( $post_types ) { if( get_sitewide_tags_option( 'tags_blog_pages' ) ) $post_types = array_merge( $post_types, array( 'page' => true ) ); zwróć $post_types; } add_filter( 'sitewide_tags_allowed_post_types', 'sitewide_tags_pages_filter' ); funkcja sitewide_tags_thumbnail_link ($html, $post_id) { global $wpdb; $tags_blog_id = get_sitewide_tags_option( 'tags_blog_id' ); if( !$tags_blog_id ) return $html; if( $wpdb->blogid == $tags_blog_id ) { $thumb = get_post_meta( $post_id, 'thumbnail_html', true ); if( $kciuk ) zwraca $kciuk; } return $html; } add_filter('post_thumbnail_html', 'sitewide_tags_thumbnail_link', 10, 2); funkcja dostać_sitewide_tags_option( $klucz, $default = false ) { static $tags_options = '1'; if( $tags_options == '1' ) { $tags_options = get_site_option('sitewide_tags_blog'); } if( is_array( $tags_options ) ) { if( $key == 'all' ) return $tags_options; elseif( isset( $tags_options[$klucz] ) ) return $tags_options[$klucz]; } return get_site_option($klucz, $domyślnie); } function update_sitewide_tags_option( $klucz, $wartość = '', $flush = false ) { static $tags_options = '1'; if( $tags_options == '1' ) { // nie zapisuj, chyba że coś się zmieniło if( $key === true ) return; $tags_options = get_site_option('sitewide_tags_blog'); } if( !$tags_options ) { $tags_options = array(); } if( $klucz !== prawda) $tags_options[$klucz] = $wartość; if( $flush || $klucz === prawda) return update_site_option( 'sitewide_tags_blog', $tags_options ); } ?>


title: Konfliktowe sesje użytkownika PHP w Wordpress

text: Używam następującej funkcji do programowego logowania użytkowników za pośrednictwem interfejsu użytkownika: function auto_login() { $username = $_POST['user']; if ( !is_user_logged_in() ) { $user = get_userdatabylogin( $username ); $user_id = $user->ID; wp_set_current_user ( $ user_id, $ user_login ); wp_set_auth_cookie ($user_id ); do_action( 'wp_login', $user_login ); } } add_action('wp_ajax_auto_login', 'auto_login'); add_action ('wp_ajax_nopriv_auto_login', 'auto_login'); Jednak jeden dziwny problem, na który natknąłem się, to następujący scenariusz: 1. Użytkownik 1 loguje się na PC 1 2. E-mail użytkownika 1 jest wyświetlany jako zalogowany na PC 1 3. Użytkownik 2 loguje się na PC 2 4. E-mail użytkownika 1 jest wyświetlany jako zalogowany na PC 2 Myślę, że może to być spowodowane konfliktami sesji, ale nie jestem pewien. Szukałem tego przez kilka dni w Google, ale tak naprawdę nie pojawiło się nic, co by mi pomogło. Więc moje pytanie brzmi, jak rozwiązać ten problem sprzecznych sesji? Dziękuję