title: Multisite dla głównego w podkatalogu, subdomenie i podfolderach (EN/ES)

text: Mam domenę `<http://my-site.com>` i chcę ją zrestrukturyzować, miałem kiedyś Drupala dla portalu i liczne instalacje WordPressa w różnych subdomenach. Hosting, który posiadam, pozwala mi tylko na dostęp do cpanel (ograniczony) i ftp. To, co chcę zrobić, to pojedyncza instalacja WordPress multisite dla domeny głównej, subdomen i podwitryn, tj.: <http://my-site.com> <http://blog1.my-site.com> <http: //blog2.my-site.com> <http://blog2.my-site.com/blog3> lub <http://blog3.blog2.my-site.com> <http://blog2.my- site.com/blog4> lub <http://blog4.blog2.my-site.com> Wszystkie te witryny powinny być od siebie niezależne (chociaż mają wspólne motywy i wtyczki). Jaki byłby najłatwiejszy sposób na zrobienie tego? Z tego co szukałem w internecie znalazłem jak zrobić subdomeny, ale zrobienie instalacji multisites daje mi tylko opcję podfolderów, co nie pomaga. Z drugiej strony, czy można to zrobić bez instalowania Wordpressa na moim katalogu głównym? Służy po prostu do porządkowania plików. Czyli: <http://my-site.com> <- URL dostępu </www/site/> <- katalog instalacyjny (/www jest katalogiem głównym) Tak jak wcześniej, w katalogu głównym miałem `/www /index.html` co przekierowało do `/www/site/index.php`. Będąc tym ostatnim katalogiem Drupala. Ten system nie pomaga, ponieważ wchodzi w nieskończoną pętlę przekierowań.


title: Uporządkuj przesłane pliki multimedialne

text: Mam bloga ze wszystkimi multimediami przechowywanymi w folderze o nazwie **przesyłanie** (organizacja multimediów była wyłączona), aktywowałem go, aby uporządkować nowe przesyłane pliki według daty. **Ale jak mogę uporządkować stare pliki?** Chcę tego, ponieważ muszę przenieść witrynę do witryny Wordpress MU i muszę mieć uporządkowane pliki.


title: Potrzebuję porady, jak uporządkować kategorie zgodnie z moim układem

text: Szukam porady, jak uporządkować kategorie tak, aby pasowały do mojej struktury strony: ![Struktura strony](http://i.stack.imgur.com/UWbw5.jpg) Najważniejszym punktem jest pojedynczy post i drugorzędne pola z podświetleniem będą prawdopodobnie zawierać slajdy pokazujące więcej niż jeden post, a siatka na dole będzie zawierała cztery posty. Nie wiem, jak mogę to kategoryzować i nadal utrzymywać dobrą strukturę kategorii, czy używanie taksonomii jest wyborem, czy nie. A może tagi... jestem trochę zagubiony. Jeśli to się liczy, rozszerzam motyw Starkers. Dziękuję Ci. EDYCJA: Dla jasności, oto link do wersji html: http://rgbinterativa.com/promundo


title: kiedy dane wyjściowe get_user_count zamieniają się w tablicę?

text: **pytanie** KIEDY liczba całkowita wyjściowa get_user_count() zamienia się w tablicę? **background** Funkcja get_user_count() w ms-functions.php zwraca liczbę całkowitą (wywołuje get_site_option('user_count') Funkcja wp_version_check() w update.php przechowuje tę liczbę w $user_count w wierszu 55. Bezpośrednio po tym w wiersz 73 wywołuje tę liczbę całkowitą z $user_count['total_users'] **powód pytania** Na moich stronach administratora sieci pojawia się błąd: _`Ostrzeżenie: Niedozwolone przesunięcie ciągu znaków 'total_users' w /opt/htdocs/html/wp - include/update.php on line 75`_ Więc muszę zrozumieć, gdzie muszę szukać (prawdopodobnie coś, co gdzieś zrobiłem) zobacz też: http://wordpress.org/support/topic/illegal-string-offset- total_users ?odpowiedzi=14#post-2893756


Czy Galeria NextGEN może być używana do wyświetlania listy przekazanych do niej obrazów? Czy istnieje inna wtyczka, która może to zrobić? Jestem trochę nowy w WordPressie. Napisałem kod php, który wyświetla zestaw obrazów na pasku bocznym. (Zestaw obrazów jest przechowywany w meta dla pojedynczego posta pokazanego na stronie.) Kiedy użytkownik kliknie dowolny obraz na pasku bocznym, czy mogę poprosić NextGEN, aby wyświetlał obrazy zaczynając od klikniętego, tak jakby użytkownik kliknął obraz w galerii wyświetlanej przy użyciu [nggallery id=x]. Dziękuję. Mojo


title: Dlaczego get_users nagle zwraca duplikaty?

text: Trudno mi to rozgryźć. Uruchamiam proste zapytanie użytkowników: $args = array( 'role' => 'custom_role', 'orderby' => 'ID', 'order' => 'DESC', 'number' => 3 ); $users = get_users( $args ); A wynikowa tablica ma zduplikowane wpisy : Array ( [0] => obiekt stdClass ( [ID] => 11433 [user_login] => peterpanpan [user_pass] => $P$B1SJOYhvsDRBGLU4hpr4zsdffJdDD.Y0 [user_nicename] => peterpanpan [user_email] => **********@gmail.com [user_url] => [user_registered] => 2011-11-29 14:20:46 [user_activation_key] => [user_status] => 0 [display_name] => Piotruś Pan ) [1] => obiekt stdClass ( [ID] => 11433 [login_użytkownika] => peterpanpan [hasło_użytkownika] => $P$B1SJOYhvsDRBGLU4hpr4zsdffJdDD.Y0 [nazwa_użytkownika] => peterpan [adres_użytkownika] => *** *******@gmail.com [user_url] => [user_registered] => 2011-11-29 14:20:46 [user_activation_key] => [status_użytkownika] => 0 [nazwa_wyświetlana] => Piotruś Pan ) [2] => obiekt stdClass ( [ID] => 10663 [login_użytkownika] => dmartin [hasło_użytkownika] => $P$BLFk4yteiCQnVbyXMbMy4jOpBbytw3/ [nazwa_użytkownika] = > enfont [user_email] => **********@yahoo.fr [user_url] => [user_registered] => 2011-11-09 14:03:49 [user_activation_key] => [user_status] = > 0 [display_name] => Deanmartin ) ) W tym przykładzie $users[0] i $users[1] są dokładnie takie same. W bazie nie ma duplikatów. Zaczęło się to ostatnio dziać, a jedyną rzeczą, która została dodana, była wtyczka W3 Total Cache (ale dlaczego miałaby powodować takie zachowanie?). Próbowałem go dezaktywować, ale duplikaty pozostają. Czy ktoś ma pojęcie o tym, co może się tu dziać?


title: Załaduj posty z zewnętrznego źródła, jeśli nie zostały znalezione w bazie danych

text: Chcę zmodyfikować WordPressa, aby żądał zawartości z funkcji, jeśli zawartość nie została znaleziona w bazie danych. Chcę edytować sekcję kodu, który żąda i zwraca zawartość posta z bazy danych, aby: jeśli nie znajdzie zawartości w bazie danych, wywoła i pobierze zawartość z mojej funkcji, zamiast zwracać null/not found . Nie jestem pewien, gdzie jest ta sekcja kodu ani jak ją zmienić. Mogę napisać zestaw funkcji, które zwracają tytuł/treść/wyciąg/tagi/itd..., gdy podam identyfikator posta, którego nie znaleziono w bazie danych. Pomóż mi znaleźć, kto/gdzie wprowadzić tę edycję.


title: Aktualny hak klasy na wygenerowanej liście

text:
Chcę nadać styl bieżącego stanu za pomocą CSS, aby wskazać aktualnie przeglądaną stronę, ale posty kategorii listy nie generują haka klasy. Wystarczyłoby coś podobnego do rozwiązania zamieszczonego tutaj. Jak lub gdzie mam zmodyfikować wtyczkę lub poprosić o dodanie funkcji? Dziękuję. AKTUALIZACJA: Używam eStore 2.9 z kombinacją List-Category-Posts i Dynamic Widgets. Wszystkie działają zgodnie z oczekiwaniami, ale ani List-Category-Posts, ani żadna podobna wtyczka nie pozwala mi wyświetlać postów w kategorii ORAZ generować klasę .current, z którą mogę stylizować. Więc zostałem z próbą zhakowania (prawdopodobnie) wtyczki, aby dać mi aktualny hook klasy. I nie, to nie jest domowy pasek boczny. Wolałbym, aby opcja >Menu w CP działała jak magia. Podsumowując, co chcę osiągnąć: wtyczka list-category-post generuje listę linków dla danej kategorii, na przykład:
Nazwa kategorii

Jabłka

Pomarańcze

Gruszki

 Chcę mieć klasę .current dołączoną do li lub tag aktualnie przeglądanej strony na wspomnianej liście:
Nazwa kategorii

Jabłka

Pomarańcze

Gruszki


title: która tabela została zaktualizowana po wylogowaniu?

text: Pracuję nad wordpressem, w którym po kliknięciu przycisku wylogowania użytkownik zostanie wylogowany za pomocą `<?php wp_logout(); Funkcja ?>` kiedy postępowałem zgodnie z wytycznymi na stronie wordpress dowiedziałem się, że faktycznie usuwa wszystkie ciasteczka, ale co z sesją i bazą danych, która tabela jest aktualizowana, właściwie używam buddypress, aby zobaczyć aktualnie aktywnych użytkowników mam ten kod do zniszczenia ciasteczka. funkcja wp_clear_auth_cookie() { do_action('clear_auth_cookie'); setcookie(AUTH_COOKIE, ' ', time() - 31536000, ADMIN_COOKIE_PATH, COOKIE_DOMAIN); setcookie(SECURE_AUTH_COOKIE, ' ', time() - 31536000, ADMIN_COOKIE_PATH, COOKIE_DOMAIN); setcookie(AUTH_COOKIE, ' ', time() - 31536000, PLUGINS_COOKIE_PATH, COOKIE_DOMAIN); setcookie(SECURE_AUTH_COOKIE, ' ', time() - 31536000, PLUGINS_COOKIE_PATH, COOKIE_DOMAIN); setcookie(LOGGED_IN_COOKIE, ' ', time() - 31536000, COOKIEPATH, COOKIE_DOMAIN); setcookie(LOGGED_IN_COOKIE, ' ', time() - 31536000, SITECOOKIEPATH, COOKIE_DOMAIN); // Stare ciasteczka setcookie(AUTH_COOKIE, ' ', time() - 31536000, COOKIEPATH, COOKIE_DOMAIN); setcookie(AUTH_COOKIE, ' ', time() - 31536000, SITECOOKIEPATH, COOKIE_DOMAIN); setcookie(SECURE_AUTH_COOKIE, ' ', time() - 31536000, COOKIEPATH, COOKIE_DOMAIN); setcookie(SECURE_AUTH_COOKIE, ' ', time() - 31536000, SITECOOKIEPATH, COOKIE_DOMAIN); // Nawet starsze ciasteczka setcookie(USER_COOKIE, ' ', time() - 31536000, COOKIEPATH, COOKIE_DOMAIN); setcookie(PASS_COOKIE, ' ', time() - 31536000, COOKIEPATH, COOKIE_DOMAIN); setcookie(USER_COOKIE, ' ', time() - 31536000, SITECOOKIEPATH, COOKIE_DOMAIN); setcookie(PASS_COOKIE, ' ', time() - 31536000, SITECOOKIEPATH, COOKIE_DOMAIN); } proszę o pomoc, dzięki


title: Udostępnianie społecznościowe / powiedz znajomemu wtyczkę, ale określ, który adres URL chcesz udostępnić

text: podczas gdy istnieje wiele wtyczek społecznościowych / e-mail do znajomych, szukam takiej, która pozwoli mi umieścić ją tylko na 1 stronie i co najważniejsze, pozwoli mi określić, który adres URL (niekoniecznie adres URL strony formularza/przycisków są włączone) Chciałbym polecić. do wyjaśnienia: strona, na której pracuję, sprzedaje kurs online. po zakupie strona z podziękowaniami będzie miała opcję poinformowania znajomych o kursie. więc nie chcę udostępniać tej "strony z podziękowaniami", chciałbym, aby użytkownik udostępnił stronę domową/sprzedażową. czy istnieje wtyczka, która to robi, czy muszę toczyć własną? a jeśli to drugie, od czego mam zacząć?


title: Nie można zainstalować standardowych wtyczek w lokalnej instalacji MAMP

text: Próbowałem zainstalować dwie standardowe wtyczki (wp-touch był jednym). Mam lokalną instalację pod OS 10.6 i MAMP, która poza tym wydaje się działać dobrze. Wybrałem plik zip, ale otrzymuję komunikat o błędzie: Przesłany plik nie może zostać przeniesiony do /Applications/MAMP/htdocs/blog/wp-content/uploads/2012/06. Katalog nie istniał, więc go utworzyłem. Zmieniłem też wszystkie katalogi na odczyt/zapis. Nadal mam ten sam problem. Jestem dziewicą unix i nowicjuszem w macach, więc proszę, bądź dla mnie delikatny.


title: Jak mogę umożliwić użytkownikom otwieranie witryny innym odwiedzającym?

text: Jestem trochę nowy w wordpressie i php i staram się stworzyć witrynę, w której użytkownicy mają możliwość zmiany wyglądu strony indeksu dla innych odwiedzających. Być może można to zrobić za pomocą dostępu do wtyczki do obsługi zaplecza, ale chcę, aby było to prostsze niż dla użytkownika. Zasadniczo wystarczy się zalogować, a następnie nacisnąć przycisk, aby otworzyć witrynę. Jaki byłby najlepszy sposób, aby to osiągnąć? * * * **[Aktualizacja]** > `#` Nazwa wtyczki 'Nazwa' => 'Tryb konserwacji', > `#` Autor wtyczki 'Autor' => 'Michael Wohrer', > `#` URI autoryzacji 'AuthorURI' => 'http://sw-guide.de/', > `#` URI wtyczki 'PluginURI' => 'http://sw->guide.de/wordpress/plugins/maintenance-mode/' , > `#` Wsparcie URI: Np. Forum WP lub wtyczek, tagi wordpress.org itp. > 'SupportURI' => 'http://wordpress.org/tags/maintenance-mode', > '#' Nazwa opcji dla tabeli bazy danych opcji 'OptionName' => > 'tryb_konserwacji_wtyczki',


title: the_tags wyświetlają się tylko po zalogowaniu?

text: Próbuję dowiedzieć się, dlaczego the_tags(); gdy używane w pętli wyświetlają się tylko wtedy, gdy jestem zalogowany do serwisu. Nigdy wcześniej nie spotkałem się z takim problemem podczas tworzenia motywów. mój kod jest teraz na pastebin: http://pastebin.com/cSJy5kyH Jak powiedziałem, tagi pojawiają się po zalogowaniu, ale tylko wtedy. Czy brakuje mi pozwolenia lub jakiegoś ustawienia, które pojawiło się w WordPress 3.2.1?


title: Jak wyświetlić html w shortcode?

text:
Jak wyświetlać lub przetwarzać kod HTML w opakowanym shortcode? `[myshortcode]<div class="map"></div>[/myshortcode]` mój krótki kod to function myshortcode_sc($atts, $content = null) { extract( shortcode_atts( array( 'col' => 'left ', ), $atty ) ); $output = '
' . do_shortcode($zawartość) . '
'; zwróć $wyjście; } add_shortcode("mojshortcode", "myshortcode_sc"); czy istnieje inna funkcja po powrocie, która pozwala na przetwarzanie kodu HTML przez $output, a nie tylko wyświetlanie go jako tekstu?


title: Dodawanie kodu do pliku funkcji

text:
Chciałbym przenieść moje duże funkcje php z plików indeksu lub szablonów do pliku function.php. Czy to byłoby coś takiego? funkcja grab_code(???) { ??? .= '
jakiś kod HTML-PHP, który pokombinowałem
'; zwrócić ????; } add_filter('???', 'grab_code'); Następnie w plikach szablonów dodałbym? echo grab_code(???); Znalazłem tutaj odpowiedzi, które wyglądają blisko tego, o co pytam, ale wydają się specyficzne dla funkcji. Dziękuję.


title: Prześlij post za pomocą shortcode i init

text: Próbuję znaleźć najlepszy sposób na zwrócenie błędów na stronę po przesłaniu formularza za pomocą shortcode. Dodaję funkcję do `init` taką jak - add_action( 'init', 'contact_form_process_post' ); function contact_form_process_post() { if( isset( $_POST['unique_hidden_field'] ) ) { // przetwórz tutaj dane $_POST $errors = new WP_Error(); if( empty( $_POST['full_name'] ) ) { $errors->add( 'invalid', __( 'Pełna nazwa nie może być pusta' ) ); } if( count( $errors->get_error_messages() ) == 0 ) { wp_redirect( 'jakiś_url '); Wyjście(); } else { // Zwróć tutaj błędy } } } Działa to dobrze, jeśli nie ma błędów (tzn. wszystkie pola są prawidłowe), ale jeśli niektóre pola są puste, powinno powrócić do formularza z tymi błędami. Jeśli są prawidłowe, przekierowuje na stronę potwierdzenia. Problem polega na zwracaniu błędów z `init` do treści/krótkiego kodu. Mogę to zrobić następującymi sposobami - 1. Przekieruj z powrotem do strony ustawiając błędy w adresie URL (zmienne zapytania) 2. Globalizuj zmienną dla błędów i użyj jej w skróconym kodzie 3. Filtruj `the_content` i dodaj błędy 4 Przechowuj błędy w sesji Wolałbym, aby adres URL pozostał taki sam, więc opcja pierwsza jest wyłączona. Opcja druga działa, ale wydaje się nieco „brudna”, wraz z opcją 3, która nie jest świetna. Opcja 4 może działać, chociaż WordPress nie używa sesji. Będzie to używane wraz z walidacją JS (lub gdy JS jest wyłączony). Może brakuje mi oczywistego sposobu na zrobienie tego? Jakieś sugestie? Dziękuję!


title: Pobierz imię i nazwisko na haku rejestr_użytkownika

text: Stworzyłem wtyczkę do zapisywania informacji o użytkowniku. Użyłem haka akcji `user_register`, ale nie otrzymuję wartości `first_name` i `last_name`. Co jest nie tak w moim kodzie? add_action('user_register','user_sf_lead'); funkcja user_sf_lead($user_id){ $user_info = get_userdata($user_id); $fields = array ( 'Name' => $user_info->ID, 'First_Name__c' => $user_info->first_name, 'Email__c' => $user_info->user_email, 'Last_Name__c' => $user_info->last_name, ' User_Name__c' => $user_info->user_login, ); ...... } Wypróbowałem wszystkie możliwe metody używane do uzyskania informacji o użytkowniku. Wartość jest zawsze pusta.


title: Funkcja dodawania obrazów nie działa zgodnie z oczekiwaniami

text:
![panel administracyjny struktury](http://i.stack.imgur.com/NPg8t.png) Osiągnąłem tę strukturę w panelu administracyjnym wordpress. Używam wordpress opcji api do zapisywania i pobierania danych z option.php. Wszystko, co chcę zrobić, to po każdym kliknięciu przycisku dodawania więcej zdjęć powinien pojawić się jeszcze jeden obraz przeglądania, abym mógł przesłać tyle zdjęć, ile chcę, a następnie wszystkie te zdjęcia powinny być przechowywane w tablicy w option.php po kliknięciu zapisz zmiany . (nagłówek banera działa poprawnie. Mogę przesłać 1 obraz i pobrać go, ale chcę to zrobić dla wielu obrazów). Wszelkie sugestie, jak to działa, to mój kod add_action('admin_menu','register_menu'); function register_menu() { add_options_page('ustawienie suwaka', 'ustawienie suwaka', 'zarządzanie_opcjami', __FILE__, 'strona_opcji_kompilacji'); } function build_options_page() {?>

Opcje mojego motywu

Przejmij kontrolę nad swoim motywem, nadpisując ustawienia domyślne własnymi preferencjami.
 <form method="post" action="options.php" enctype="multipart/form-data" > <?php settings_fields('plugin_options'); ?> <?php do_settings_sections(__FILE__); ?>
 <input name="Prześlij" type="prześlij" class="button-primary" value="<?php esc_attr_e('Zapisz zmiany'); ?>" />
</form>
<?php } add_action('admin_init', 'register_and_build_fields'); function register_and_build_fields() { register_setting('plugin_options', 'plugin_options', 'validate_setting'); add_settings_section('main_section', 'Główne ustawienia', 'section_cb', __FILE__); add_settings_field('banner_heading', 'Nagłówek banera:', 'banner_heading_setting', __FILE__, 'main_section'); add_settings_field('logo[]', 'Logo:', 'logo_setting', __FILE__, 'main_section'); // LOGO add_settings_field('add_image', 'add image :', 'add_images', __FILE__, 'main_section'); // LOGO } function validate_setting($plugin_options) { $keys = array_keys($_FILES); $i = 0; foreach ( $_FILES as $image ) { // jeśli plik został przesłany if ($image['size']) { // jeśli jest to obraz if ( preg_match('/(jpg|jpeg|png|gif)$ /', $image['type']) ) { $override = array('test_form' => false); // zapisz plik i przechowuj tablicę zawierającą jego lokalizację w $file $file = wp_handle_upload( $image, $override ); $plugin_options[$klucze[$i]] = $plik['url']; } else { // Nie obraz. $options = get_option('plugin_options'); $plugin_options[$klucze[$i]] = $opcje[$logo]; // Zgiń i poinformuj użytkownika, że popełnił błąd. wp_die('Nie przesłano obrazu.'); } } // W przeciwnym razie użytkownik nie przesłał pliku. // Zachowaj obraz, który jest już w pliku. else { $options = get_option('plugin_options'); $plugin_options[$klucze[$i]] = $opcje[$klucze[$i]]; } $i++; } return $plugin_options; } function section_cb() { } // Funkcja nagłówka baneru banner_heading_setting() { $options = get_option('plugin_options'); echo "<nazwa wejściowa='opcje_wtyczki[nagłówek_bannera]' type='tekst' wartość='{$opcje['nagłówek_bannera']}' />"; } globalny $multi_file_upload; function add_images() { $add_more="dodaj więcej obrazów"; echo $dodaj_więcej; } function logo_setting() { $multi_file_upload.= '<input type="file" name="logo" />'; echo "$multi_file_upload"; }


title: Ogranicz posty wyświetlane do 2 konkretnych postów

text: Używam motywu Twenty Twelve. Stworzyłem stronę podstawową. To, co chcę zrobić, to trzymać na stronie tylko 2 posty (które wybiorę) przez cały czas. Patrząc na kod myślę, że jest to sekcja, która wymaga edycji: <?php /* Uruchom pętlę */ ?> <?php while ( have_posts() ): the_post(); ?> <?php get_template_part( 'zawartość', get_post_format() ); ?> <?php koniec; ?> <?php dwadzieściatwelve_content_nav( 'nav-poniżej' ); ?> <?php else : ?> Jak zmienić ten kod, aby ograniczyć tylko 2 wybrane przeze mnie posty?


title: Czy mimo to można przepisać woocommerce-template.php?

text: Próbuję dokonać pewnych dostosowań w pliku woocommerce-template.php, ale obawiam się, że zostanie on nadpisany przy następnej aktualizacji. Zastanawiam się, czy istnieje sposób na przepisanie funkcji z functions.php innym, który ładuje mój niestandardowy plik. To jest funkcja obecna w woocommerce: public function include_template_functions() { include_once( 'woocommerce-template.php' ); } Zastanawiam się, czy istnieje sposób, aby to nadpisać lub w jakikolwiek inny sposób, aby to zrobić.


title: Dodaj następne i poprzednie linki do postów na stronach takich jak kategoria, tagi lub strony archiwum

text:
Próbuję znaleźć rozwiązanie dla uzyskania następnych stron dla kategorii lub strony z tagami w WordPress, próbowałem z `next_posts_link` i `previous_posts_link` na tych stronach, ale to nie działa. Te same funkcje działają dla mnie na stronie z listą postów Poniżej znajduje się mój kod
 <?php next_posts_link( 'Następne wpisy',3); ?> <?php previous_posts_link( 'poprzednie wpisy'); ?>

 <?php if(have_posts()) : $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'stronicowane' ) : 1; $args = array( 'post_type' => 'post', 'posts_per_page' => 3, 'paged' => $paged ); $pętla = nowe WP_Query( $args ); $i = '1'; while ( $loop->have_posts() ): $loop->the_post(); ?> <?php if($i=='1' || $i%3 =='1') { echo '
';} else { echo '
';} ?>
<?php the_time('M'); ?><?php the_time('j'); ?>

 <?php $url = get_the_post_thumbnail($post_id, 'blog_thumb'); echo $url; ?>

<a href="<?php the_permalink(); ?>"><?php the_title(); ?>

<?php the_excerpt(); ?><a href="<?php the_permalink(); ?>">[...]

 <?php $categories = get_the_category(); foreach($categories as $category) { echo 'term_id ).'" class="button" title="' .esc_attr( sprintf( __( "Wyświetl wszystkie posty w %s" ), $category->imię ) ). '">'.$category->cat_name.''; }?>

 <?php $i++; koniec; else: get_template_part( 'treść', 'brak' ); endif; wp_reset_postdata(); ?>


title: Bezpieczna walidacja wp_editor w opcjach motywu

text: Więc właśnie znalazłem ten świetny wątek WPSE dotyczący bezpieczeństwa motywów/wtyczek. Odpowiadał na większość moich pytań, ale został stworzony przed zbudowaniem nowej funkcji `wp_editor()`. Mam dwa edytory TinyMCE w moich opcjach motywu i zastanawiam się, czy muszę użyć `esc_html()` lub `esc_textarea()` w wywołaniu zwrotnym walidacji przed zapisaniem opcji motywu. Wydaje mi się, że TinyMCE zajmuje się wieloma rzeczami (jak również zabezpieczeniami API Settings), ale wciąż nie ma zbyt wiele dokumentacji na temat `wp_editor()`. Wszelkie zasoby i odpowiedzi są mile widziane.


title: Czy zepsuje moją witrynę, jeśli usunę wszystkie przejściowe rekordy w tabeli wp_options?

text: Moja witryna ma obecnie skandaliczne ponad 500 000 rekordów przejściowych w tabeli wp_options. Powoduje to częste awarie tabeli, a także moją witrynę. Myślałem, że wszystkie przejściowe zapisy wygasną po pewnym czasie. Nie jestem pewien, które wtyczki są odpowiedzialne, a co poszło nie tak. Jednak nie chcę, aby moja witryna często się zawieszała w ten sposób. Liczba rekordów w tabeli `wp_options` wzrosła rażąco do 200k+ kilka tygodni temu, a teraz 500k+. Czy mam usuwać tylko rekordy `%transient_timeout%` - w tej chwili ponad 200k? Każda pomoc byłaby bardzo mile widziana. **Aktualizacje 16 lipca 2012** Właściwie podjąłem ryzyko (najpierw wykonałem kopię zapasową mojej witryny), usuwając wszystkie tymczasowe rekordy, a baza danych mojej witryny nie uległa awarii od tego czasu :) Jeszcze raz dziękuję wszystkim!


title: Czy WP zawsze wykonuje przekierowanie 301?

text: Wynajęliśmy specjalistę SEO do naszej witryny, który mówi, że musimy wprowadzić pewne zmiany w strukturze witryny, zanim rozpocznie pracę. Po pierwsze, obecnie większość stron ma przekierowanie 301. Na przykład: * `mysite.com/2010/12/02/postname/?p=5500` jest przekierowywany na `mysite.com/2010/12/02/postname/` * niektóre posty są przekierowywane z `mysite.com/ 2010/12/02/postname/?=12786` do `mysite.com/2010/12/02/inother-postname/` * niektóre posty mają przekierowanie z `www.mysite.com/2010/12/02/postname/ Mysite/?p=32123` na `www.mysite.com/2010/12/02/another-postname` Chciałbym wiedzieć: 1. Dlaczego tak się dzieje? 2. Czy to normalne zachowanie WP? 3. Jak mogę to zmienić? 4. Czy naprawdę ważne jest, aby tego uniknąć dla dobrego SEO?


title: Rozszerz wyszukiwanie WordPress, aby uwzględnić wyszukiwanie użytkowników

text: Istnieje wiele wtyczek WordPress, które usprawniają wyszukiwanie w WordPressie, ale jeszcze nie znalazłem wtyczki, która doda wyszukiwanie użytkowników. Szukaj Wszystko kiedyś miało tę funkcjonalność, ale zostało usunięte po przejściu WP do wersji 2.8. Podejrzewam, że było to spowodowane sposobem, w jaki WP zmienił sposób przechowywania autorów. Powodem, dla którego szukam wyszukiwania użytkowników, jest to, że wszyscy użytkownicy na stronie WP to członkowie personelu z własnym profilem. Mamy stronę autora, która zawiera listę wszystkich pracowników według nazwiska, oddzieloną 20 członkami na stronie. Jeśli znasz tylko imię członka personelu, znalezienie tego członka jest bardzo trudne. Chcę rozszerzyć wyszukiwanie WP, abyś mógł po prostu wpisać imię i wyświetlić odpowiedni członek. Ta strona jest intranetem, więc korzystanie z zewnętrznej wyszukiwarki nie wchodzi w rachubę. Chcę tylko jasno powiedzieć, że chcę szukać użytkowników, a nie postów według autora. Jak mogę dodać wyszukiwanie członków personelu?


title: Sygnatura czasowa Unix dla komentarza do posta

text: Czy istnieje jakaś funkcja/fragment kodu do pobrania uniksowej sygnatury czasowej komentarza do posta? Domyślna funkcja WordPress `comment_time();` zwraca czas posta w formacie 12 godzin (nieprzydatne).


title: Problem z nawigacją na stronie głównej po aktualizacji do 3.4

text: Zaktualizowałem WordPressa do wersji 3.4 i mam problemy z wyświetlaniem innej ilości postów na pierwszej stronie niż na pozostałych. Pierwsza strona nadal wyświetla 5 postów, ale kiedy przechodzę do /page/2/ otrzymuję błąd 404. Mam paginację na niestandardowych stronach typu post i stronach autora i działa dobrze. Dzieje się tak tylko na stronie głównej z kombinacją wszystkich typów postów razem. Oto mój kod, który może pomóc: // Aby dodać niestandardowe typy postów do kanału if ( ( is_front_page() && false == $query->query_vars['suppress_filters'] ) || is_feed() ){ $paged = ( get_query_var('stronicowane')) ? get_query_var('stronicowane') : 1; query_posts( array('post_type'=>array('post', 'gaming', 'rozrywka', 'tech', 'breakroom', 'podcasts', 'off-grid'),'paged'=>$paged ) ); } // inna ilość postów na pierwszej stronie niż na innych stronach $temp = $wp_query; $stronicowany = (get_query_var('stronicowany')) ? get_query_var('stronicowane') : 1; $wp_query = null; $wp_query = nowe WP_Query(); $wp_query->query(array( 'post_type' => array('post', 'gaming', 'rozrywka', 'tech', 'breakroom', 'podcasts', 'off-grid'), 'post_status' = > 'publish', 'paged' => $paged, 'posts_per_page' => 10, 'caller_get_posts'=> 1. )); $max_pierwsza_strona = 5; // Pokaż tyle postów na stronie głównej $args = $wp_query->query; $posts_per_page = get_query_var('posts_per_page'); $posts_to_skip = $posts_per_page - $max_first_page; if ($paged == 1) { $max_posts = $max_first_page; $firstPageCheck = "tak"; } else { $max_posts = $posts_per_page; $args['offset'] = (($paged - 1) * $max_posts)- $posts_to_skip; $firstPageCheck = "nie"; } query_posts($args); if ($wp_query->max_num_pages < ceil(($wp_query->found_posts + $posts_to_skip)/$posts_per_page)) ++$wp_query->max_num_pages; $licznik = 0; if ($firstPageCheck == "yes") { // strona główna tutaj } else { // wszystkie inne strony }


title: Możliwość dodania innego ustawienia do ustawienia „Wyświetlanie strony przedniej” dla niestandardowego typu postu

text: Pozwólcie, że przygotuję scenę: mam CPT, który będzie działał w instalacji wielostanowiskowej, a niektóre strony będą w innym języku. Na przykład mój CPT to `Case Studies`, użyłbym struktury URL takiej jak: `/case-studies/%post_id%/%postname%/` ale jeśli język witryny jest inny, to `case-studies` już nim nie są. W ustawieniach WP możesz ustawić stronę jako stronę postów. To zasadniczo ustawia "front" struktury permalinka. To, co chcę zrobić, to dodać dodatkowe menu rozwijane dla mojego CPT, które pozwala ustawić stronę główną dla postów tego CPT. Tak więc, jeśli język jest inny, struktura permalinka może pasować do tego języka. ![Dodaj ustawienie tutaj](http://i.stack.imgur.com/csDJb.png) Czy można więc rozszerzyć ustawienia za pomocą interfejsu API ustawień w lokalizacji pokazanej na powyższym obrazku? Jeśli tak, to jak mam to zrobić? Jeśli nie, to gdzie byłoby odpowiednie miejsce na umieszczenie mojego ustawienia CPT? (Punkty bonusowe, jeśli możesz dostarczyć próbki kodu)


title: Formatowanie tablicy nawiasów klamrowych z bazy danych WP, aby uzyskać bardziej czytelne dane wyjściowe

text: Np. kiedy chcę edytować coś w mojej bazie danych WP, dosłownie boli mnie głowa. Ponieważ widzę coś takiego: a:92:{s:47:"category/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$";s:52:"index. php?category_name=$matches[1]&feed=$matches[2]";s:42:"kategoria/(.+?)/(feed|rdf|rss|rss2|atom)/?$";s:52 :"index.php?category_name=$matches[1]&feed=$matches[2]";s:35:"kategoria/(.+?)/strona/?([0-9]{1,})/ ?$";s:53:"index.php?category_name=$matches[1]&paged=$matches[2]";s:17:"kategoria/(.+?)/?$";s:35: "index.php?category_name=$matches[1]";s:44:"tag/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$";s:42 :"index.php?ta-9]{1,})/?$";s:50:"index.php?attachment=$matches[1]&cpage=$matches[2]";} Chyba trochę rodzaj tablicy, ale mój edytor tekstu nie może tego sformatować do czegoś takiego: Tablica ( [a] => jabłko [b] => banan [c] => Tablica ( [0] => x [1] => y [ 2] => z ) ) jak to zrobić z danymi przechowywanymi w bazie danych PW? Czy jest do tego jakieś narzędzie online, a może jakiś plugin do Sublime Text 2 lub N++?


title: Dekonstruuj zserializowaną tablicę danych z wp_options

text: Próbuję zdekonstruować (i odtworzyć) zserializowaną wartość opcji w wp_options o nazwie „my_options” Jak zbudować tablicę, aby odtworzyć tę opcję, która obecnie istnieje dla „my_options”? update_option('my_options', ?) Po aktualizacji tabela wp-options będzie przechowywać tę wartość dla 'my_options': a:3:{s:12:"my_widget-1";a:2:{ itd...


title: Klient używa Softaculous do aktualizacji wersji WordPressa. Jak uaktualnić z pulpitu WordPress?

text: Mój klient używa Softaculous do aktualizacji oprogramowania. Próbowałem zaktualizować z pulpitu WordPress, ale mi to nie pozwoliło. Czy muszę jakoś "odinstalować" Softaculous, żeby to zadziałało?


title: Jak skonfigurować WordPressa do obsługi 75 000 stron?

text: Mam dużą witrynę, która korzysta z WordPressa. Do tej pory mamy 75 000 stron w witrynie i działa ona dobrze na interfejsie użytkownika. Problem polega na tym, że jeśli ktoś z naszego zespołu dotknie edytora stron (wp-admin/edit.php?post_type=page), Apache zjada całą pamięć na serwerze. Próbowałem wyłączyć wszystkie wtyczki, ale to nie zadziałało. Próbowałem też debugować na naszym serwerze na żywo, który ma 4GB pudełko… nadal pochłania całą pamięć i dochodzi do przeładowania. Na tej instalacji mamy również 20 000 postów. Nie ma problemu z ładowaniem ich w wp-admin. Może powinniśmy przenieść wszystkie strony do postów - spowoduje to jednak problem ze strukturą permalinków. Czy brakuje mi specjalnych ustawień lub konfiguracji dla dużej witryny WP?


title: Filtruj „Twoje najnowsze posty”

text: Na stronie Ustawienia czytania kliknąłem **_Twoje najnowsze posty_** pod **_Wyświetlana strona przednia_**. Zastanawiam się, jak mogę filtrować zapytanie, które wyświetla te posty, zanim dotrze do pętli. Próbowałem użyć filtru **pre_get_posts**, ale wydaje się, że nie ma dostępu do tego zapytania. Czy mimo to można modyfikować posty wyświetlane na stronie głównej/głównej poprzez edycję functions.php i nie grzebanie w plikach szablonów?


title: Uzyskaj identyfikator strony z zaplecza

text: Jak mogę uzyskać identyfikator strony z zaplecza administracyjnego? Zapisuję dane w metaboksie typu postu „Strona” i muszę zwrócić te dane na stronie w innym obszarze. Ale $post->ID oczywiście nie działa... Co zadziała? Dziękuję


title: Nieadministracyjne „zmiany” strony wpływające na kod na stronie

text: To trochę dziwny problem. Mamy witrynę członkowską i zauważyłem, że niektóre obrazy inline:block zostały pomieszane na niektórych stronach. Po przyjrzeniu się problemowi zauważyłem w sekcji zmian na każdej stronie, że użytkownicy w jakiś sposób nieumyślnie poprawiali strony. Jedyna różnica między oryginalną a nową stroną polegałaby na tym, że każdy wbudowany tag blokowy został usunięty z elementów div, co zaburzyło nasz układ. Oczywiście użytkownicy nie włamują się i nie usuwają tagów z naszego układu, więc musi się to dziać przez przypadek. Jakieś pomysły? Wydaje się to być przypadkowe.


title: Czy istnieje skrót do zmiany zbiorczych obrazów BMP na obrazy JPG w witrynie?

text: Obrazy w postach WordPress, jak rozumiem, są przesyłane ręcznie. Są one domyślnie przesyłane do folderu `uploads`. Mój klient poinformował, że na jednej ze swoich stron przesłał wszystkie zdjęcia w formacie BMP. Teraz zdał sobie sprawę z konsekwencji swojego błędu. Chce teraz zrobić je w formacie JPG. A tam jest 40-60 zdjęć. Za pomocą edytora zdjęć mogę zmienić zdjęcia w folderze przesyłania z BMP na JPG. Ale problemem jest baza danych. Widziałem, że w tabeli `_postmeta` obrazy są przechowywane z **meta_key** `_wp_attached_file` z **meta_value** jak `2011/01/canola2.jpg`. Ten sam obrazek znajduje się również w tabeli `_posts` ze szczegółową ścieżką jako **guid** , **post_type** `attachment` i **post_mime_type** `image/jpeg`. Podobnie może się stać z obrazami BMP. Tak więc, wraz ze zmianami formatu pliku obrazu w folderze `uploads`, jak mogę zbiorczo edytować bazę danych, aby były dostępne tylko z niewielką zmianą ich formatu w bazie danych? Jakieś zapytanie SQL? A może muszę dokonać dużej zmiany ręcznie, pojedynczo?


title: home.php się nie ładuje

text: Mam problem polegający na tym, że home.php się nie ładuje, więc wordpress nalega na używanie index.php do wyświetlania postów na blogu. Stworzyłem home.php kopiując całą zawartość index.php do home.php. Czy istnieje sposób, aby zmusić wordpress do załadowania określonego szablonu lub jaki jest proces związany z rozwiązaniem takiej sytuacji? (Używam motywu roots.io, jeśli to robi jakąś różnicę.)


title: Jak zmienić znacznik utworzony przez element menu tylko na wybranych elementach?

text: Jak dodać pole wyboru do elementu menu w zapleczu WordPressa z napisem „Uczyń z tego kontener Mega Menu”? Moim zdaniem powinno to wyglądać mniej więcej tak (wersja robocza Photoshopa): ![tu wpisz opis obrazka](http://i.stack.imgur.com/V3A2t.png) A gdy pole jest zaznaczone zamiast dodawać kolejny standardowy ul > li element DOM zamiast tego dodawany jest kontener div? Nie mam pojęcia, jak do tego podejść. Planowałem użyć walkera do zmiany DOM dla menu, ale jak "aktywować" walker tylko dla niektórych menu - w tym przypadku menu, które wybieram za pomocą tego pola wyboru jako mega menu?


title: Kod PHP do wyświetlania adresu URL terminu i nazwy postu pod niestandardowym typem postu

text:
Przedstawiam post w mojej stopce (poza pętlą) z niestandardowego typu postu i używam do tego wtyczki Advanced Custom Fields. Oto kod, którego używam:
Polecany film
 <?php query_posts(array( 'posts_per_page' => 1, 'post_type' => 'movies', 'orderby' => 'post_date', ' meta_key' => 'featured_movie', 'meta_compare' => '=', 'meta_value' => 1, 'paged' => $paged ) ); ?> <?php if ( have_posts() ) while ( have_posts() ): the_post(); ?>

<?php the_post_thumbnail('pełna-miniatura');?>

 "< ?php the_content(); ?>"
 <?php endwhile; ?> <?php wp_reset_query(); ?> Chociaż robi to dokładnie to, czego potrzebuję, potrzebuję również kodu, który wyświetla i łączy z terminami, które są powiązane z dowolnym postem, który jest w tej chwili prezentowany. Jednak kod, który mam, prosi mnie o określenie taksonomii i nie sądzę, aby to była droga, ponieważ jest to zbyt ograniczające i chcę mieć możliwość pobierania z każdego postu w niestandardowym typie postu „filmy” niezależnie od tego, jakie taksonomie i warunki mieć. Kod, który mam teraz to <?php // Pobierz warunki dla postu $terms = get_the_terms( $post->ID , 'genre' ); // Zapętl każdy element, ponieważ jest to tablica if ( $terms != null ){ foreach( $terms as $term ) { $term_link = get_term_link( $term, 'genre' ); // Wydrukuj metodę nazwy z $term, która jest OBJECT echo '
' . $term->nazwa . '
'; // Pozbądź się innych danych przechowywanych w obiekcie, ponieważ nie są one potrzebne unset($term); } }? inna taksonomia, jaką mam, jak „oceny” lub „data wydania”. Jasne, że mógłbym umieścić każdą z moich taksonomii w kodzie, aby upewnić się, że wszystkie są uwzględnione, ale musi być prostszy sposób. Co więcej, w jaki sposób mogę się upewnić, że każdy termin związany z postem jest wyświetlany.


title: Wyświetlaj kod HTML tylko wtedy, gdy pole niestandardowe ma wartość

text:
Pracuję z wtyczką o nazwie Advanced Custom Fields. Szukam pomocy z kodem dla mojego niestandardowego szablonu typu post, który wyświetla niektóre dane pola repeatera. Mam kod HTML owijający każde podpole. Czasami nie będzie żadnej wartości dla jednego lub kilku podpól. _Jak NIE wyświetlać kodu HTML, który otacza pola podrzędne, jeśli nie ma wartości dla pola podrzędnego?_ W poniższym kodzie tag SPAN pól podrzędnych „measurement” i „amount” powinien być UKRYTY, jeśli nie ma wartości istnieje dla podpola. Mój kod wygląda następująco: <?php if(get_field('ingredients-list')) { echo '
'; while(has_sub_field('ingredients-list')) { echo '
 ' . get_sub_field('ilość') . '  ' . get_sub_field('pomiar') . ' ' . „ ”. get_sub_field('ingredient_name') .' ' . get_sub_field('notatki') . '
'; } echo '
'; } ?>


title: Powtarzalne pola meta nie są zapisywane

text:
Potrzebuję pomocy od społeczności, ponieważ jestem nowy w tworzeniu wtyczek WordPress. Lubię tworzyć wtyczki do WordPressa, w których potrzebuję powtarzalnych pól. Ale ilekroć zapisuję post, pola nie są zapisywane. Przesyłam plik do Dropbox, aby każdy mógł sprawdzić kod. Oto link - https://dl.dropboxusercontent.com/u/34202357/latest-news.zip A oto kod, jeśli ktoś nie chce pobierać zip **latest-news.php** define( 'WP_DEBUG', prawda); define('WP_DEBUG_LOG', prawda); define('WP_DEBUG_DISPLAY', fałsz); if ( WP_DEBUG ) { zdefiniuj ( 'CLRDR_LN_VERSION', '1.3.5-'.time() ); } else { zdefiniuj ( 'CLRDR_LN_VERSION', '1.3.5' ); } zdefiniuj ( 'CLRDR_LN_DIR', katalog_wtyczki_ścieżka(__FILE__) ); //definiuj ( 'CLRDR_LN_URL', plugins_url().'/latest-news' ); /** * Dołącz pliki * * @since 1.0.0 */ if( is_admin() ) { // Załaduj kod administratora require_once( CLRDR_LN_DIR.'includes/custom-post-type-helper-class.php' ); require_once( CLRDR_LN_DIR.'includes/post-types.php' ); } require_once( CLRDR_LN_DIR.'includes/scripts.php' ); **post-types.php** <?php $latest_news = new Custom_Post_Type( 'Najnowszy pasek wiadomości',array('supports'=>array('title')) ); $latest_news->add_meta_box( 'Domyślne wiadomości', array( 'custom_meta_fields' => array( 'label' => 'Tekst wiadomości', 'type' => 'tekst' ), array( 'label' => 'Link', 'type' => 'text' ) ) ), 'default_meta_box' ); $latest_news->add_meta_box( 'Wyświetlanie pasków', array( 'custom_meta_fields' => array( array( 'label' => 'Tekst wiadomości', 'type' => 'short-code' ) ) ), 'side_display_settings', 'side' ); **custom-post-type-helper-class.php** <?php class Custom_Post_Type { public $post_type_name; publiczne $post_type_args; publiczne $post_type_labels; /* Konstruktor klasy */ public function __construct( $name, $args = array(), $labels = array() ) { // Ustaw kilka ważnych zmiennych $this->post_type_name = strtolower( str_replace( ' ', '_' , $nazwa) ); $this->post_type_args = $args; $this->post_type_labels = $etykiety; // Dodaj akcję, aby zarejestrować typ posta, jeśli typ posta nie istnieje if( ! post_type_exists( $this->post_type_name ) ) { add_action( 'init', array( &$this, 'register_post_type' ) ); } // Nasłuchuj zapisywania postów $this->save(); } /* Metoda, która rejestruje typ postu */ public function register_post_type() { //Zapisz słowa wielką literą i ustaw na liczbę mnogą $name = self::beautify( $this->post_type_name ); $liczba = siebie::pluralize( $nazwa ); // Ustawiamy domyślne etykiety na podstawie nazwy typu posta i liczby mnogiej. Nadpisujemy je podanymi etykietami. $labels = array_merge( // Default array( 'name' => _x( $liczba mnoga, 'nazwa ogólna typu posta' ), 'singular_name' => _x( $name, 'pojedyncza nazwa typu posta' ),'add_new' => _x( 'Dodaj nowy', strtolower( $nazwa ) ), 'add_new_item' => __( 'Dodaj nowy' . $nazwa ), 'edit_item' => __( 'Edytuj' . $nazwa ), 'new_item' => __( 'Nowy' . $name ), 'all_items' => __( 'All' . $plural ), 'view_item' => __( 'View' . $name ), 'search_items' => } znaleziono w Koszu'), 'parent_item_colon' => '', 'menu_name' => $plural ), // Podane etykiety $this->post_type_labels );// Ta sama zasada co etykiety. Ustawiamy niektóre wartości domyślne i nadpisujemy je podanymi argumentami. $args = array_merge( // Default array( 'label' => $plural, 'labels' => $labels, 'public' => true, 'show_ui' => true, 'supports' => array( 'title' , 'editor' ), 'show_in_nav_menus' => true, '_builtin' => false, ), // Podane argumenty $this->post_type_args ); // Zarejestruj typ postu register_post_type( $this->post_type_name, $args ); } /* Metoda dołączenia taksonomii do typu posta */ public function add_taxonomy( $name, $args = array(), $labels = array() ) { if( ! empty( $name )) ) { // Musimy znać nazwę typu posta, aby można było do niego dołączyć nową taksonomię. $post_type_name = $this->post_type_name; // Właściwości taksonomii $taxonomy_name = strtolower( str_replace( ' ', '_', $name ) ); $taxonomy_labels = $etykiety; $taxonomy_args = $args; if( ! taxonomy_exists( $taxonomy_name )) { //Zapisz słowa wielką literą i ustaw je w liczbie mnogiej $name = ucwords( str_replace( '_', ' ', $name ) ); $liczba mnoga = $nazwa . 's'; // Domyślne etykiety, nadpisz je podanymi etykietami. $etykiety = scalanie_tablic(// Domyślna tablica( 'name' => _x( $liczba mnoga, 'nazwa ogólna taksonomii' ), 'singular_name' => _x( $name, 'nazwa osobliwa taksonomii' ), 'search_items' => __( 'Szukaj' . $liczba mnoga), 'all_items' => __( 'Wszystkie' . $liczba mnoga ), 'parent_item' => __( 'Parent' . $name ), 'parent_item_colon' => __( 'Parent' . $name . ': ' ), 'edit_item' => __( 'Edytuj ' . $nazwa ), 'update_item' => __( 'Aktualizuj' . $nazwa ), 'add_new_item' => __( 'Dodaj nowy' . $nazwa ), ' new_item_name'=> __( 'Nowa ' . $nazwa . 'Nazwa' ), 'menu_nazwa' => __( $nazwa ), ), // Podane etykiety $taxonomy_labels ); // Domyślne argumenty, zastępowane podanymi argumentami $args = array_merge( // Default array( 'label' => $plural, 'labels' => $labels, 'public' => true, 'show_ui' => true, 'show_in_nav_menus' => prawda, '_builtin' => fałsz,), // Biorąc pod uwagę $taxonomy_args ); // Dodaj taksonomię do typu wpisu add_action( 'init', function() use( $taxonomy_name, $post_type_name, $args ) { register_taxonomy( $taxonomy_name, $post_type_name, $args ); } ); } else { add_action( 'init', function() use( $taxonomy_name, $post_type_name ) { register_taxonomy_for_object_type( $taxonomy_name, $post_type_nazwa ); } ); } } } private function default_meta_box( $meta, $custom_fields=array(), $data_id ) { // Rozpocznij tabelę pól i pętlę echo '

	'; /* Przeprowadź pętlę przez $custom_fields */ foreach( $custom_fields['custom_meta_fields'] as $field ) { $field_id_name = self::uglify( $data_id ) . '_' . self::uglify( $pole['etykieta'] ); echo '' . $pole['etykieta'] . '	';//echo '' . $pole['etykieta'] . '<input type="text" name="custom_meta[' . $field_id_name . ']" id="' . $field_id_name . '" value="' . $meta[$field_id_name][0] . '" />'; } echo '

|||	'; foreach( $custom_fields['custom_meta_fields'] as $field ) { $field_id_name = strtolower( str_replace( ' ', '_', $data_id ) ). '_' . strtolower( str_replace( ' ', '_', $pole['etykieta'] ) ); echo ''; echo self::input_fields( $field_id_name, $meta, $field,1 ); echo '	'; }echo '-	+ 	'; echo '

'; } private static function input_fields( $field_id_name, $meta, $field = array(), $repeatable=0 ) { switch($field['type']) { // wielkość liter 'text': if($repeatable) { $i = 0; $html= '<input type="text" name="'.$field_id_name.'['.$i. ']" id="'.$field_id_name.'" value="'.$meta[$field_id_name] [0].'" size="30" />
'.$field['desc'].''; } else { $html= '<input type="text" name="custom_meta['.$field_id_name.']" id="'.$field_id_name.'"value="'.$meta[$field_id_name][0].'" size="30" />
'.$field['desc'].'”; }                     przerwanie; // wielkość liter textarea 'textarea': $html= '<textarea name="custom_meta['.$field_id_name.']" id="'.$field_id_name.'" rows="4" width="100%">' .$meta[$field_id_name][0].'</textarea>
'.$field['desc'].''; przerwanie; // wybierz przypadek 'select': if($repeatable) { $i = 0; echo '<select name="custom_meta['.$field_id_name.']['.$i . ']" id="'.$field_id_name.'">'; foreach ($pole['opcje'] jako $opcja) { echo '<opcja', $meta[$field_id_name][0] == $opcja['wartość'] ? ' selected="wybrane"' : '', ' wartość="'.$opcja['wartość'].'">'.$opcja['etykieta'].'</option>'; } echo '</select>
'.$pole['desc'].''; } else { echo '<select name="custom_meta['.$field_id_name.']" id="'.$field_id_name.'">'; foreach ($pole['opcje'] jako $opcja) { echo '<opcja', $meta[$nazwa_id_pola][0] == $opcja['wartość'] ? ' selected="wybrane"' : '', ' wartość="'.$opcja['wartość'].'">'.$opcja['etykieta'].'</option>'; } echo '</select>
'.$pole['desc'].''; }                                                                    przerwanie;} return $html; } /* Dołącza pola meta do typu posta */ public function add_meta_box( $title, $fields = array(), $boxtype = NULL, $context = 'normal', $priority = 'default' ) { if( ! empty ( $title ) ) { // Musimy ponownie poznać nazwę typu postu $post_type_name = $this->post_type_name; // Metazmienne $box_id = strtolower( str_replace( ' ', '_', $title ) ); $box_title = ucwords( str_replace( '_', ' ', $title ) ); $box_context = $context; $box_priority = $priorytet; // Uczyń pola globalnymi globalnymi $custom_fields; $niestandardowe_pola[$tytuł] = $pola;add_action( 'admin_init', function() use( $box_id, $box_title, $post_type_name, $box_context, $box_priority, $fields, $boxtype ) { add_meta_box( $box_id, $box_title, function( $post, $data ) { global $post; // pole Nonce do walidacji wp_nonce_field( plugin_basename( __FILE__ ), 'custom_post_type' ); // Pobierz wszystkie dane wejściowe z $data $custom_fields = $data['args'][0];// Pobierz zapisane wartości $meta = get_post_custom( $post->ID ); // Sprawdź tablicę i przejdź przez nią w pętli if( ! empty( $custom_fields ) ) { switch($data['args'][1]) { case 'default_meta_box': self::default_meta_box( $meta, $custom_fields, $ dane['id'] ); przerwanie; case 'side_display_settings': echo '

[clrdr_latest_news id="'.$post->ID.'"]

'; przerwanie; default: /* Przeprowadź pętlę przez $custom_fields */ foreach( $custom_fields['custom_meta_fields'] as $field ) { $field_id_name = strtolower( str_replace( ' ', '_', $data['id'] ) ). '_' . strtolower( str_replace( ' ', '_', $pole['etykieta'] ) ); echo '' . $pole['etykieta'] . '<input type="text" name="custom_meta[' . $field_id_name . ']" id="' . $field_id_name . '" value="'. $meta[$field_id_name]. '/> ';}                                                 przerwanie; } } }, $post_type_name, $box_context, $box_priority, array( $fields, $boxtype) ); } ); } echo "
"; //echo $this->post_type_name; //drukuj_r($niestandardowe_pola); foreach($custom_fields as $title=>$fields ) { // Przejdź przez wszystkie pola foreach( $fields['custom_meta_fields'] as $field ) {$field_id_name = strtolower( str_replace( ' ', '_', $title ) ). '_' . strtolower( str_replace( ' ', '_', $pole['etykieta'] ) ); print_r($pola); echo $nazwa_id_pola."
"; //update_post_meta( $post->ID, $field_id_name, $_POST['custom_meta'][$field_id_name] ); } } echo "
"; } /* Nasłuchuje, kiedy typ wiadomości jest zapisywany */ public function save() { // Potrzebuję ponownie nazwy typu wiadomości $post_type_name = $this->post_type_name; add_action( 'save_post', function() use($post_type_name ) { // Odrzuć funkcję autozapisu wordpress if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return;if ( ! wp_verify_nonce( $_POST['custom_post_type'], plugin_basename(__FILE__) ) ) return; globalny $post; if( isset( $_POST ) && isset( $post->ID ) && get_post_type( $post->ID ) == $post_type_name ) { global $custom_fields; // Przejdź przez każde meta pole foreach($custom_fields as $title=>$fields ) { // Przejdź przez wszystkie pola foreach( $fields['custom_meta_fields'] as $field ) { $field_id_name = strtolower( str_replace( ' ', '_', $tytuł)) ). '_' . strtolower( str_replace( ' ', '_', $pole['etykieta'] ) ); update_post_meta( $post->ID,$field_id_name, $_POST['custom_meta'][$field_id_name] ); } } } } ); } //add_action('save_post', 'save'); public static function beautify( $string ) { return ucwords( str_replace( '_', ' ', $string ) ); } public static function uglify( $string ) { return strtolower( str_replace( ' ', '_', $string ) ); } public static function pluralize( $string ) { $last = $string[strlen( $string ) - 1]; if( $last == 'y' ) { $cut = substr( $string, 0, -1 ); //przekonwertuj y na ies $liczba mnoga = $wytnij . „tak”; }                   w przeciwnym razie                   {// po prostu dołącz s $plural = $string . 's'; } return $liczba mnoga; } } ?> **scripts.php** <?php function clrdr_lnt_admin_scripts( $hook ) { if(is_admin()) { wp_enqueue_script('jquery-ui-slider'); wp_enqueue_script('custom-meta-js', plugins_url('js/custom.js', __FILE__)); } } add_action( 'admin_enqueue_scripts', 'clrdr_lnt_admin_scripts' ); **custom.js** jQuery(function(jQuery) { jQuery('.repeatable-add').click(function() { field = jQuery(this).closest('tr').clone(true); fieldLocation = jQuery(this).parents('tbody tr'); jQuery('input', field).val('').attr('name', function(index, name) { return name.replace(/(\ d+)/, function(fullMatch, n) { return Number(n) + 1;}); }) field.insertAfter(fieldLocation, jQuery(this).closest('td')) zwraca false; }); jQuery('.repeatable-remove').click(function(){ if ((jQuery(this).parents('tbody tr').siblings().andSelf().length)!=2) { jQuery(this ).rodzice('tr').remove();zwróć false;} }); jQuery('.sortable-form-table tbody').sortable({ krycie: 0,6, odwróć: true, kursor: 'przenieś', uchwyt: '.sort' }); }); Z góry dziękuję wszystkim.


title: Nieregularna odpowiedź TTFB i czas oczekiwania serwera

text: trudno mi to rozgryźć. Stworzyłem od podstaw niestandardowy motyw wordpress, stosując się do najlepszych praktyk, które mogłem. Strona działa świetnie przez większość czasu, z czasem ładowania, który wydaje się w porządku, biorąc pod uwagę implementację wielu elementów frontendowych (typekit, embed na youtube, vimeo, jquery itp.). Problem występuje przed załadowaniem zasobów frontendu. Czasami otrzymuje się czas oczekiwania w czasie odpowiedzi serwera, który wzrasta do około 8-10 sekund, podczas gdy przez większość czasu wynosi około 700 ms. To bardzo utrudnia testowanie i rozwiązywanie problemów. Więc problem leży albo w ustawieniach serwera, albo w moim kodzie php. Ponieważ nie dzieje się to przez cały czas, myślę, że mogę wywnioskować, że to nie jest kod, ponieważ jest to ten sam kod działający przez cały czas, a zatem powinien być cały czas powolny - ale może to pochopny wniosek. ![tutaj wprowadź opis obrazu](http://i.stack.imgur.com/b3v2g.png) Naprawdę chcę uzyskać informacje, jak dalej to testować, lub usłyszeć o jakichkolwiek doświadczeniach z nieregularnym czasem oczekiwania serwera i TTFB . Strona jest obecnie w trybie testowym pod adresem wm.minnie.mico.dk Uwaga: Przeszłam przez wyłączanie wtyczek, ale znowu powinno to spowolnić CAŁY czas, prawda? także - w tej chwili nie buforuję, ponieważ najpierw muszę rozwiązać ten problem.


title: Motyw potomny WordPress - dwadzieścia jedenaście

text: To moja pierwsza próba stworzenia motywu potomnego opartego na motywie WP dwadzieścia jedenaście. Na początek używam MAMP na moim Macu i mam następującą strukturę katalogów: apps/MAMP/htdocs/mysite/wp-content/themes/twentyeleven/style.css /mytwentyeleven/style.css Mój adres URL w mojej przeglądarce jest wyświetlany jako : `http://localhost:8888/mysite/` Mój problem/zapytanie polega na tym, że kiedy aktywuję mój motyw w WP 3.2, a następnie go przeglądam, nie zastosowano żadnego stylu, a nagłówek i stopka nie pojawiają się albo. Opierając się na mojej powyższej strukturze katalogów, myślę, że mój style.css w moim katalogu mytwentyeleven nie importuje oryginalnego nadrzędnego pliku dwudziesteeleven style.css. Myślę, że moja ścieżka importu jest nieprawidłowa, a może coś innego. Ponownie, to jest mój pierwszy raz w tworzeniu motywu potomnego. Oto zawartość pliku mojego motywu potomnego style.css: /* Nazwa motywu: MyTwentyEleven Motyw Autor: Ja Opis: Szablon CSS motywu potomnego My TwentyEleven: dwadzieściaeleven */ @import url(../twentyeleven/style.css"); Czy ludzie mogą dać mi znać, co przegapiłem, ponieważ ścieżka url importu nie działa, ponieważ wygląda na to, że nie znajduje nadrzędnego pliku dwudziesteeleven style.css. Nie jestem pewien, czy jest to sprawa MAMP, ale po prostu nie mogę zrozumieć, dlaczego nie działa/znajduje poprawną ścieżkę z powrotem do nadrzędnego pliku arkusza stylów. Dziękuję


title: Wybierz zapytanie z dwiema i dwiema powiązanymi taksonomiami

text: czy jest to możliwe dla 2 taksonomii i 2 terminów $querystr = " SELECT * FROM $wpdb->posts LEFT JOIN $wpdb->term_relationships ON($wpdb->posts.ID = $wpdb->term_relationships.object_id) LEFT JOIN $wpdb ->term_taxonomy WŁ.($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) DOŁĄCZ DO LEWEJ $wpdb->terms WŁ.($wpdb->term_taxonomy.term_id = $wpdb->terms.terms. >posts.post_type = 'shows' AND $wpdb->posts.post_status = 'publish' AND $wpdb->term_taxonomy.taxonomy = 'location' AND $wpdb->term_taxonomy.taxonomy = 'genre' AND $wpdb->terms .slug = 'california' AND $wpdb->terms.slug = 'komedia' ZAMÓWIENIE PRZEZ $wpdb->posts.post_date LIMIT ZAPISU 10 "; $pageposts = $wpdb->get_results($querystr, OBJECT); if ($pposts): foreach ($pposts as $post): setup_postdata($post); tytuł(); echo '<br'>; Zawartość(); na każdym kroku; endif; próbowałem umieścić ten kod powyżej, ale nie wyświetla niczego; Chcę wyświetlać posty, które mają 2 nazwy terminów i 2 taksonomię, na przykład: sampleposts [showlocation_tax][genre_tax] showlocation_tax zawiera terminy -california -LA a gatunek_tax - komedia - moda Chcę pokazać wszystkie posty przykład: posty z Kalifornii z komedią pokazują coś takiego naprawdę bardzo docenię twoją pomoc


title: WordPress Multisite z wieloma domenami przy użyciu Nginx

text: Zapuszczam tu siwe włosy. Próbowałem tak wielu rzeczy, a jednak nie mogę zrozumieć, jak to skonfigurować. Znaleziono mnóstwo przewodników, ale nikt nie przechodzi przez wszystkie aspekty, którymi są: * Pojedyncza instalacja WP Multisite, która obsługuje kilka witryn opartych na domenach (dokładnie 8) * Witryna działająca na Nginx Postępując zgodnie z tym przewodnikiem (https://www.digitalocean. com/community/articles/how-to-configure-single-and-multiple-wordpress-site-settings-with-nginx), skonfigurowałem serwer (Ubuntu 10.3) ze wszystkim zainstalowanym i mogę uruchomić WP zainstalować za pomocą domyślnej konfiguracji z obsługą witryn. Ale gdy zastosuję konfiguracje z samouczka, zatrzymam się. To jest moja obecna konfiguracja http://pastebin.com/6iSK4H1M W samouczku w pliku example.conf root jest ustawiony tak, aby wskazywał katalog który jak zakładam będzie taki sam dla wszystkich witryn (reż "przykład" oznacza instalację WP ). Jeśli uruchomię domyślny adres IP / localhost, mogę uzyskać dostęp i zalogować się do instalacji WP. Ale kiedy dodaję domenę w ramach opcji Site-enabled (i usuwam domyślną konfigurację), otrzymuję powiadomienie, że witryny nie można wyświetlić. Upewnij się, że wyczyściłeś pamięć podręczną DNS. W WP admin utworzyłem nową witrynę i ustawiłem ją jako subdomenę z symbolem wieloznacznym (*.example.com) i zastosowałem to do wp-config.php - define('WP_ALLOW_MULTISITE', true); define('MULTISITE', prawda); define('SUBDOMAIN_INSTALL', prawda); define('DOMAIN_CURRENT_SITE', 'host lokalny'); // Czy to ma znaczenie, czy wstawię tutaj localhost lub IP? define('PATH_CURRENT_SITE', '/'); define('SITE_ID_CURRENT_SITE', 1); define('BLOG_ID_CURRENT_SITE', 1); I - czy wtyczka mapowania domeny jest naprawdę obowiązkowa, aby to zadziałało? Każda pomoc byłaby bardzo mile widziana!


title: Utworzyć stronę, która automatycznie przekierowuje do najnowszego posta określonego tagu/kategorii?

text: Chcę utworzyć adres URL, taki jak na przykład: http://localhost/latest-news Gdzie strona `latest-news` będzie automatycznie przekierowywać do najnowszego artykułu z wiadomościami (artykuł z tagiem kategorii `news`). Następnie będę musiał użyć linku /latest-news w kilku różnych miejscach (menu i suwak na stronie głównej).


title: Jak uzyskać poprawne adresy URL w menu sieciowym (Multisite)?

text: Używam tej funkcji, aby przełączyć się na nawigację mojej głównej witryny i wyświetlić ją na wszystkich podwitrynach w mojej sieci multisite. Idealnie linki powinny mieć następujący format: http://www.mojawitryna.com/link-nawigacyjny, ale na podstronach adresy URL to http://www.mojawitryna.com/podwitryna/link-nawigacyjny Oczywiście te strony nie nie istnieje, więc pokazuje tylko pustą stronę. Masz pomysł, jak mogę się upewnić, że adresy URL są jak pierwszy przykład i jak mogę włączyć to do mojej funkcji? funkcja wp_multisite_nav_menu () { globalny $ blog_id; $args = array( 'menu' => 'Menu główne', 'theme_location' => 'main-nav' ); $główny_blog = 1; $główny_blog = absint( $główny_blog ); if ( !is_multisite() || $blog_id == $main_blog ) { echo wp_nav_menu( $args ); zwrócić; } else { switch_to_blog( 1 ); echo wp_nav_menu( $args ); restore_current_blog(); } }


title: Grupowe tworzenie użytkowników

text: Chciałbym udostępnić dokument około 140 użytkownikom po uwierzytelnieniu hasłem i chcę uniknąć ręcznego tworzenia wszystkich 140 kont. Czy da się je szybko stworzyć? **AKTUALIZACJA** : nazwy użytkowników do dodania są przechowywane w pliku tekstowym. Pytanie koncentruje się na tworzeniu użytkowników wsadowych, ponieważ stworzę obszar chroniony hasłem, w którym wszyscy użytkownicy będą mieli dostęp do pobrania dokumentu.


title: Znajdowanie identyfikatora URI w motywie potomnym

text: Który jest najlepszym sposobem na znalezienie identyfikatora URI w motywie podrzędnym. <?php echo get_template_directory_uri(); ?> <?php bloginfo('katalog_szablonu'); ?> Poniższy kod działa, ale ma w sobie "arkusz stylów", brzmi jak hak, aby znaleźć URI. Czy to jedyne rozwiązanie? <?php echo get_stylesheet_directory_uri(); ?> <?php bloginfo('stylesheet_directory'); ?>


title: wp_nav_menu() traci klasy 'current-menu-*' na stronie pojedynczego produktu w ramach kategorii

text: Mam ustawione menu w następujący sposób: * **Sklep online** (strona WPeC 'Products') * **Kategoria produktu** (kategoria WPeC) * **Kategoria produktu** (kategoria WPeC) * **Produkt Podkategoria** (kategoria WPeC) * **Podkategoria produktu** (kategoria WPeC) * ... Strony pojedynczych produktów są widoczne z dowolnej strony kategorii lub podkategorii, ponieważ obie pokazują widok listy produktów. Teraz, gdy wybieram _Shop Online_ , kategorię produktu lub podkategorię, menu aktualizuje klasy CSS, aby dopasować obecną hierarchię do zwykłej (przykład) `current-menu-page`, `current-menu-ancestor` i `current -menu- rodzic` między innymi. Nie ma znaczenia, czy kliknę menu, czy listę kategorii na stronie _Sklep online_, aby się tam dostać. Z jakiegoś powodu, gdy tylko przeglądam produkt pojedynczo (`domain.tld/product-cat/sub-cat/product-single` lub `domain.tld/product-cat/product-single`), klasy menu są usuwane i tracę podświetlanie menu, ponieważ nie ma już klas. Czy istnieje sposób, w jaki mogę odzwierciedlić widok pojedynczego produktu w menu, podświetlając bieżącą kategorię/kategorie, w których produkt się znajduje, a także pozycję/łącze menu „Sklep online” odpowiadające temu, w jaki sposób dotarłeś do produktu? WP v3.5 WPeC v3.8.9.4


title: Dlaczego niektóre znaczniki szablonów nie działają podczas zapytań o informacje w single.php?

text: Próbuję pobrać zawartość dotyczącą bieżącego wpisu do pliku header.php mojego motywu (w celu dynamicznego wstawienia metadanych Facebook OpenGraph). Skoro jestem na stronie z pojedynczym postem, czy nie powinien być w stanie uruchomić funkcji takich jak `the_content()` lub `wp_get_attachment_thumb_url()`? <?php if (is_single()) { <meta property="og:title" content="<?php echo get_the_title()." - Advocate Daily" ?>" /> <meta property="og:description" content="<?php string_limit_words(the_content(), 15);" ?> /> <meta property="og:image" content="<?php echo wp_get_attachment_thumb_url(); ?>" /> <?php } ?> W powyższym przykładzie pierwszy tag działa, ale zawartość pozostałe dwa nie są wyprowadzane. Czy to oznacza, że niektóre znaczniki szablonów muszą znajdować się w if ( have_posts() ): while ( have_posts() ): the_post(); pętla? Czy muszę ponownie zadeklarować tę pętlę w nagłówku?


title: Jaki jest najłatwiejszy sposób programowej konfiguracji ustawień SMTP?

text: Załóżmy, że mamy pustą witrynę WP i chcemy programowo skonfigurować ustawienia SMTP w naszej wtyczce lub motywie. Jaki jest najłatwiejszy sposób na zrobienie tego bez zmiany plików podstawowych?


title: Kliknij link na stronie wtyczki/motywu i otwórz pomoc kontekstową na określonej karcie

text: Dodałem sekcję pomocy za pomocą funkcji add_help_tab(). Chciałbym móc kliknąć łącze gdzieś na stronie motywu/wtyczki i otworzyć panel pomocy na dowolnej karcie, której potrzebuję. Czy ktoś może mi pomóc z wymaganym do tego JS? Z każdym panelem kart jest powiązany unikalny link hash, więc muszę go jakoś użyć, zgaduję /themes.php?page=theme_options#tab-panel-general


title: Integracja kanałów Meet-up ze zwykłą częścią bloga Wordpress

text: Dzień dobry, to pierwsze pytanie, jakie kiedykolwiek opublikowałem na StackExchange. Stworzyłem witrynę WordPress dla naszej lokalnej grupy twórców, www.redmountainmakers.org. Mój problem polega na tym, że poproszono mnie o włączenie kanału z naszej grupy spotkań (Red Mountain Makers on Meet-up, Birmingham AL) do głównego kanału bloga, aby jak najwięcej publikować w jednym miejscu i wysyłanie treści na naszą stronę na Facebooku, bloga itp. Celem jest jednokrotne opublikowanie, wielokrotne rozpropagowanie. Korzystając z interfejsu API OAuth API Meet-up, mogę pobierać kanał, ale nie mogę pobierać kanału _i_ dodawać nowych treści do samego bloga bez poważnego uszkodzenia. Przyglądałem się HootSuite jako publikowaniu i planowaniu raz -> wysyłanie do wielu miejsc docelowych, ale z tego, co do tej pory mogłem przeczytać, wydaje się, że nie obsługuje ono Meet-up. Czy ktoś inny napotkał ten problem, opracował rozwiązanie lub ma jakieś wskazówki dotyczące rozwiązania do zarządzania mediami społecznościowymi, które może przesyłać posty do Meet-up, WordPress, Facebook i ma interfejs API, którego mogę użyć do zakodowania dodatkowych niestandardowych rozwiązań? Zajmę się tym ponownie, jak tylko moje egzaminy skończą się 11 maja. *Czyhałem na krawędzi przez dobre dwa lata, ale udało mi się znaleźć to, czego potrzebowałem, od wcześniejszych pytań i odpowiedzi innych ludzi.


title: Zapytanie niestandardowe z wykluczeniem kategorii i „białą listą” post-meta

text: Mam dwa widżety, jeden pokazuje **Wiadomości**, a drugi pokazuje wszystko oprócz Wiadomości (drugi nazwiemy **Blog** ). Część bloga działa obecnie poprawnie. Posty wiadomości są albo kategoryzowane jako „W wiadomościach” LUB mają niestandardową meta postu „w wiadomościach”, ustawioną na 1. Należy zauważyć, że nie wszystkie posty będą miały zdefiniowaną niestandardową meta postu. Głównym problemem, z którym się borykam, jest to, że muszę porównać meta postu na podstawie tego, czy post jest skategoryzowany w ten czy inny sposób. **W związku z tym zachowaniem może być konieczne wykonanie niestandardowego zapytania do bazy danych, przynajmniej w przypadku Wiadomości.** Czy można wykonać niestandardowe zapytanie i przekonwertować je na standardowy obiekt WP_Query? * * * ## Co próbowałem Query for **News**. **Problem:** wyświetla tylko posty z kategorii 75, które mają wartość „in-the-news = 1”. **Pożądany wynik:** Pokaż wszystkie posty z kategorii 75 niezależnie od wartości `in-the-news` oraz wszelkie dodatkowe posty spoza kategorii, które mają `in-the-news = 1` query_posts(array( ' ignore_sticky_posts' => true, 'posts_per_page' => 3, 'cat' => "75", // Tylko posty z kategorii 75 (Wiadomości) // Uwzględnianie postów oznaczonych jako "W wiadomościach" 'meta_query' => array ( 'relation' => 'LUB', array( 'key' => 'in-the-news', 'value' => '1', 'compare' => '=', ), array( 'key' => 'in-the-news', 'porównaj' => 'NIE ISTNIEJE', 'wartość' => '', ), ) ) )); Oto zapytanie dla **Blog** : to zapytanie działa poprawnie, wyświetlając wszystkie posty spoza kategorii 75 i ukrywając posty z „in-the-news = 1”. query_posts(array( 'ignore_sticky_posts' => true, 'posts_per_page' => 3, 'cat' => "-75", // Wszystkie posty Z WYJĄTKIEM tych w kategorii 75 (Wiadomości) 'meta_query' => array( 'relation' => 'LUB', array( 'key' => 'in-the-news', 'value' => '0', 'compare' => '=', ), array( 'key' => 'in -the-news', 'compare' => 'NIE ISTNIEJE', 'wartość' => '', ), ) )); * * * ## Rozwiązanie Dzięki `s_ha_dum` za niesamowite przykłady, oto ostatnie zapytanie, którego używam. Logika jest taka, że robimy niestandardowe zapytanie MySQL dla tablicy identyfikatorów postów, a następnie wykonujemy standardowe WP_Query przy użyciu zwróconych identyfikatorów. **Uwaga:** logika tutaj była nieco bardziej skomplikowana niż w oryginalnym poście. Zasadniczo pierwotnie mieliśmy „Wiadomości” i „Blog”. Ale teraz mamy też „Ryzyko”. Ponadto meta postu „in-the-news” została zmieniona na „show-in-blog”, ponieważ cofamy tę funkcjonalność. Nie mogę oczekiwać, że ktokolwiek inny zrozumie, dlaczego tak się dzieje, ponieważ nawet uważam, że jest to śmieszne (Ale klient tego chce, więc niech tak będzie!) Oto moje zapytanie dotyczące widżetu „Blog”. W obszarze „Wiadomości” wprowadzane są niewielkie zmiany. Nie jestem pewien, czy zapytanie można wyczyścić. Nie jestem też pewien, czy wykonywanie tylu SELECTów w ramach tego samego zapytania to zły pomysł. globalny $wpdb; $query = // Dzielenie zapytania SQL na jego własny blok kodu w celu podświetlania składni! * * * SELECT `ID` FROM {$wpdb->posts} posty WHERE ( /* Wyklucz posty w News (94) Ignoruj opcję show-in-blog dla News tutaj, ponieważ Newsy są wyświetlane na tej samej stronie */ 94 NIE IN ( SELECT `term_taxonomy_id` FROM {$wpdb->term_relationships} WHERE `object_id` = posts.`ID` ) AND /* Wyklucz posty w ryzyku (96), ale pokaż wpisy o ryzyku, które mają postmeta „pokaż w blogu " */ ( 96 NOT IN ( SELECT `term_taxonomy_id` FROM {$wpdb->term_relationships} WHERE `object_id` = posty.`ID`) OR (96 IN (SELECT `term_taxonomy_id` FROM {$wpdb->term_relationships} WHERE ` object_id` = posty.`ID` ) AND 1 IN ( SELECT `meta_value` FROM {$wpdb->postmeta} WHERE `meta_key` = 'show-in-blog' AND `post_id` = posty.`ID` ) ) /* OR */ ) /* AND */ ) /* WHERE */ ORDER BY `post_date` DESC; * * * $args = array( // Uwzględnij tylko identyfikatory zwrócone przez powyższe zapytanie 'post__in' => $wpdb->get_col( $query ), 'posts_per_page' => 10, ); $wp_query = nowe WP_Query ($args ); get_template_part('pętla', 'strona główna');


title: najlepszy sposób na uruchomienie skryptu php z dala od szablonu?

text: Szukam inspiracji, jak najlepiej uruchomić skrypt php z dala od szablonu. Wiem, że podstawowe pliki wordpress nie zostały załadowane, więc zastanawiam się, jaki przepływ pracy stosujesz, gdy to robisz? Twoje zdrowie


title: Instrukcje: prosty zagnieżdżony krótki kod

text:
Próbuję owinąć krótki kod wewnątrz krótkiego kodu „zalogowanego użytkownika”. Oto dwa skróty i moja konfiguracja w funkcji WYSIWYG wpfc_logged_in ($atts, $content = null ) { if (is_user_logged_in() ) { return do_shortcode($content); } } add_shortcode('zalogowany', 'wpfc_logged_in'); function info_box( $atts, $content = null ) { extract( shortcode_atts( array( 'type' => 'tip', 'icon' => '' ), $atts ) ); $return = '

'.$content.'

'; return $powrót; } add_shortcode('info_box', 'info_box'); WYSIWYG: [loggedin] [ info_box type='setting']treść treści[/info_box] [/loggedin]


title: obraz otwartego wykresu jest nadpisywany przez logo gravatar?

text: przykładowa strona; http://www.c-art.org.uk/2011/07/01/jenny-abbot/ z jakiegoś powodu obraz gravatara nadpisuje posty z obrazem thumb (100x100). Nie wiem, jak to robi! Jak się go pozbyć? <meta property="og:title" content="Jenny Abbot" /> <meta property="og:description" content="C-Art — Cumbria Artist Open Studios, Jenny Abbot Artist Index PaintingC-Art"/> <meta property="og:url" content="http://c-art.modernactivity.co.uk/?p=1254"/> <meta property="og:image" content="http://www.c -art.org.uk/wp-content/uploads/Summer-at-Sea-Wood-100mm-100x100.jpg"/> <meta property="og:type" content="article"/> <meta property=" og:site_name" content="C-Art"/> najlepszy, dc.


title: jak wyświetlać obrazy bez przekazywania ich do pliku timthumb.php w celu zmiany rozmiaru

text: obecnie pokazuję obraz posta i jest on wyjątkiem na mojej stronie indeksowej witryny. Z powodu spowolnienia tej strony, każdy obraz jest przekazywany do pliku timthumb.php. Chcę zmienić kod, aby obraz był wyświetlany bezpośrednio bez przechodzenia do pliku timthumb.php w celu zmiany rozmiaru. Czy jest jakiś sposób, aby to osiągnąć? Z góry dziękuję..


title: Tworzenie katalogu nadrzędnego z możliwością zapisu przez serwer

text: Przesyłając obrazek do dodania do strony, otrzymałem komunikat: Nie można utworzyć katalogu... Czy serwer może zapisywać jego katalog nadrzędny? Zakładając, że problem polega na tym, że katalog nadrzędny musi być zapisywalny przez serwer, jak mogę uczynić katalog nadrzędny zapisywalnym przez serwer? Dzięki, Richardzie


title: Jak wyabstrahować kod z szablonu za pomocą functions.php

text: Tworzę szablon i jeden z plików jest przeładowany brzydkimi mieszanymi html i php. Na początku pomyślałem, że może powinienem wyciąć fragmenty kodu i wywołać je za pomocą funkcji include(). Wtedy pomyślałem - może istnieje sposób na wordpress. Być może powinienem wyabstrahować moją logikę z szablonów, umieszczając niestandardową pętlę w functions.php, a następnie wywołując ją jakoś z szablonu. Jak mam to zrobic?


title: Czy można animować miniaturę animowanego gifu?

text: Mam animowany gif, który chcę pokazać w dwóch miejscach, w dwóch różnych rozmiarach. Tworzę dwa rozmiary w moim functions.php, używając add_image_size( 'small-feature', 500, 300 ); add_image_size( 'galeria-kciuk', 120, 9999 ); Jeśli przesłany plik ma rozmiar 500 x 300 px, zachowa animację, ponieważ nie nastąpi zmiana rozmiaru. Jeśli obraz ma zostać zmieniony, animacja zostanie utracona. Czy mogę zmienić rozmiar tych obrazów i zachować animację w oryginalnym pliku .gif?


title: zbiorcza aktualizacja post_treści

text: Muszę zastąpić wszystkie post_content w określonym tagu/kategorii na żądany, który mam. jest ich wtyczką, aby to osiągnąć, lub jest ich zapytaniem, aby to zakończyć. Mam dość robienia tego ręcznie, jest to ich sposób na osiągnięcie tego.


title: Edytor widżetów nie wyświetla się w panelu

text: Nie jestem pewien, czy to z powodu nowej aktualizacji 3.9, ponieważ od jakiegoś czasu nie musiałem bawić się żadnymi widżetami, ale moje aktywne widżety nie będą już wyświetlane w edytorze. Przesłałem zrzut ekranu, jak to wygląda tutaj: http://i.imgur.com/Ctbzo3S.png Może to być powiązane lub nie, ale moje menu rozwijane Opcje ekranu nic nie robi po kliknięciu i ani robi cokolwiek innego w tym oknie widżetu. Oto błędy, które otrzymuję: > * PHP Błąd krytyczny: Wywołanie niezdefiniowanej funkcji select_input() > * Uwaga PHP: Próba pobrania właściwości nie-obiektu Ścisłe standardy PHP: > Tylko zmienne powinny być przekazywane przez referencję > * PHP Uwaga: has_cap został wywołany z argumentem, który jest **przestarzały** > od wersji 2.0! > * PHP Przestarzałe: Przypisywanie wartości zwracanej przez new przez referencję jest > przestarzałe > * Uwaga PHP: get_settings jest **przestarzałe** od wersji 2.1! >


title: Czy istnieje sposób WP na uzyskanie uchwytu do pliku?

text: Używam zewnętrznej biblioteki odczytu CSV, która jako argument przyjmuje uchwyt pliku (zasób). Używam wp_handle_upload() do faktycznego przetwarzania i przechowywania pliku w katalogu Uploads, ale zwraca on ścieżkę pliku, a nie zasób. Czy `$filehandle = fopen( $file['file'], 'r' )` jest tutaj akceptowalny, czy też istnieje lepsza alternatywa WP? Nie widzę niczego, co pasowałoby do rachunku w pliku `file.php` ani nigdzie indziej, w którym szukałem.


title: Staram się, aby strona w sekcji admina wyglądała podobnie do strony profilu dla użytkowników

text: Pracuję nad wtyczką i chciałbym wiedzieć w jaki sposób stworzę stronę która będzie wyglądała jak strona użytkownika (obrazek załączony na dole) Pola będą inne i będą dodawały dane(dane nie mają związku z użytkownikiem informacji) do nowej tabeli utworzonej przez wtyczkę . Wygląda więc na to, że Settings API nie pomoże. Mówię ściśle o wyglądzie. Czy powinienem po prostu użyć css wbudowanego w wordpress, czy jest jakaś funkcja, która pomoże mi utworzyć wszystkie pola?! [wpisz tutaj opis obrazu](http://i.stack.imgur.com/t7Fo7.png)


title: Które wtyczki członkowskie pozwalają zarejestrowanym użytkownikom dodawać posty do zakładek?

text: Mam problem ze znalezieniem wtyczek (darmowych i premium ok), które pozwoliłyby zarejestrowanemu członkowi zasadniczo dodać do zakładek dowolny interesujący go wpis podczas wyszukiwania, a następnie ponownie odwiedzić tę zakładkę za pośrednictwem profilu użytkownika po ponownym zalogowaniu. Jedyna wtyczka wiem, że ma powiązaną funkcję, to wtyczka premium dla członków listy życzeń. W szczególności, jakie są inne wtyczki członkostwa, które mogą to osiągnąć? Z góry dziękuję!


title: Jak wstawić tablicę terminów za pomocą wp_insert_term?

text: WP udostępnia funkcję do wstawiania terminów: <?php wp_insert_term( $term, $taksonomia, $args = array() ); ?> Mam 60 $terms, każdy ma swoje $args, chcę przygotować 60 terminów jako tablicę, a następnie wstawić je od razu. Czy to możliwe? Jak?


title: Przekroczono limit czasu funkcji wp_mail

text: Mam następującą funkcję. To jest część witryny opartej na członkostwie. Gdy post typu „wiadomość” zostanie przeniesiony do statusu Publikuj, powinien wysłać wiadomość e-mail do wszystkich użytkowników, którzy należą (niestandardowa meta użytkownika) do okręgów, które są sprawdzane (taksonomia) podczas tworzenia postu. Jeśli wysyłam do małej grupy, wydaje się, że działa. Jeśli wyślę do wszystkich dzielnic, zawiesza się i nie pojawiają się żadne wiadomości. Próbowałem ograniczyć go do kawałków (25), aby złagodzić ból, ale nie pomaga. Masz jeszcze jakieś przemyślenia poza powiedzeniem klientowi, aby wysyłał je tylko do jednej grupy na raz? add_action('publish_messages', 'messages_notify', 10, 3); function messages_notify() { global $post; // jeśli post jest już opublikowany, przerwij if($post->post_status == 'publish') { return; } // zaznacz dzielnice, w przeciwnym razie przerwij $districts = get_the_terms($post->ID, 'message_district'); if(pusty($dzielnice)) return; // zapytaj członków należących do jednej z dzielnic zaznaczonych $the_districts = array(); $district_args = array('relation' => 'LUB' ); foreach($districts as $district){ $the_districts[] = $district->nazwa; if ($district->name == 'Northeast') { $district_args[] = array('key' => 'whprms_district_ne', 'value' => 1); } if ($district->name == 'North Central') { $district_args[] = array('key' => 'whprms_district_nc', 'value' => 1); } if ($district->name == 'Południowy wschód') { $district_args[] = array('key' => 'whprms_district_se', 'value' => 1); } if ($district->name == 'Southwest') { $district_args[] = array('key' => 'whprms_district_sw', 'value' => 1); } if ($district->name == 'Zachód') { $district_args[] = array('key' => 'whprms_district_w', 'value' => 1); } } $district_members = get_users( array( 'meta_query' => $district_args, ) ); $attachment_args = array('post_type' => 'attachment', 'orderby' => 'date', 'order' => 'ASC', 'numberposts' => -1, 'post_status' => NULL, 'post_parent' =>$post->ID); $attachments = get_posts($attachment_args); if ($attachments) { $att_array = array(); foreach ($attachments jako $attachment) { $att_array[] = get_the_title($attachment->ID); } } // wysyłaj wiadomości tylko do użytkowników z żądanymi rolami $bcc = array(); foreach($district_members as $district_member) { if(user_can($district_member->ID, 'board_members') || user_can($district_member->ID, 'members')) { $bcc[] = $district_member->user_email; } } $subject = 'WHPRMS Wiadomość: '.$post->post_title; $message = 'Nowa wiadomość wysłana przez '; if(user_can($post->post_author, 'administrator')) { $message .= get_the_author_meta('user_nicename', $post->post_author)."\n\r"; } else { $wiadomość .= get_the_author_meta('first_name', $post->post_author).' '.get_the_author_meta('last_name', $post->post_author)."\n\r"; } $message .= 'Wyciąg: '.stripslashes(substr($post->post_content, 0, 240)).'...'."\n\r"; $message .= 'Link: '.get_permalink($post->ID)."\n\r"; $message .= 'Dzielnica(e): '.implode(', ', $the_districts)."\n\r"; if (!empty($att_array)) { $message .= 'Załącznik(i): '.implode(', ', $att_array)."\n\r"; } $message .= 'Otrzymujesz tę wiadomość, ponieważ należysz do jednej z wymienionych powyżej dzielnic.'; $chunked_bcc = array_chunk($bcc, 25); foreach($chunked_bcc as $bcc_chunk){ $headers = array(); $headers['Bcc'] = 'BCC: '.implode(', ', $bcc_chunk); wp_mail('no-reply@whprms.org', $temat, $wiadomość, $nagłówki); } }


title: Użyj the_content poza pętlą

text: Próbowałem uzyskać pierwsze 100 słów treści w nagłówku i używam następującego fragmentu, aby uzyskać pierwsze 100 słów w pętli, ale czy można uzyskać wartość poza pętlą: $cstring = get_the_content( '' ); $nowyCString = substr( $cstring, 0, 100 ); echo'<p>' . $nowyCiąg . '</p>';


title: Zmień Permalink na załącznik Wordpress

text: Moje załączniki są obecnie przepisywane z `http://localhost/?attachment_id=3` na `http://localhost/images/image-title` przy użyciu odpowiedzi @Bainternet tutaj. $new_rules['images/(\d*)$'] = 'index.php?attachment_id=$matches[1]'; Jednak wordpress nadal odnosi się do linku jako domyślnego `http://localhost/?attachment_id=3`. Funkcje Wordpress, takie jak the_permalink, get_attachment_url, get_attachment_image_src itp., używają domyślnego formatu `http://localhost/?attachment_id=3`. Jestem w stanie uzyskać dostęp do obrazu zgodnie z przeznaczeniem, jeśli ręcznie wpiszę w przepisanym formacie `http://localhost/images/image-title`. Jak mogę sprawić, by wordpress używał mojego niestandardowego przepisania dla permalinka, szczególnie na stronie administratora? **EDYTUJ:** przeredagowane pytanie ze względu na konkretność i poprawność: Jak nadpisać `the_permalink`, aby używać formatu `/images/image-title` zamiast `/?attachment_id=ID`? Mogę uzyskać tytuł obrazu używając `$post->post_title`. **EDYCJA #2:** Dla każdego, kto będzie czytał to pytanie w przyszłości, najlepiej jest użyć `$post->post_name` jako linku, aby zapewnić unikalność. `/obrazy/tytuł_postu`


title: Zdefiniuj niestandardowy szablon strony bez własnego pliku .php

text: Czy istnieje sposób zdefiniowania szablonu strony z jakiejś funkcji/filtra/haka, bez żadnego pliku .php zawierającego komentarz u góry strony, aby zadeklarować nazwę szablonu? * * * Na przykład, zamiast tego: ### some-custom-page-template.php /** * Nazwa szablonu: Jakiś niestandardowy szablon strony */ ### another-custom-page-template.php /* * * Nazwa szablonu: Kolejny niestandardowy szablon strony */ Zastanawiam się, czy mogę zrobić coś takiego: ### functions.php wp_some_function_to_define_templates( 'Niestandardowy szablon strony' ); wp_some_function_to_define_templates( 'Inny niestandardowy szablon strony' ); * * * **_EDIT_** : Piszę _złożony_ i rodzaj _eksperymentalny_ motyw WP - Jest tak zorientowany obiektowo, jak tylko WP pozwala, mam klasy Controller, aby zdecydować, co wyświetlić na każdej stronie, klasy DAO do pobierania danych z bazy danych, szablonów Twig do generowania widoków i tak dalej... Rozprzestrzeniłem kod tak bardzo, że moje szablony stron stały się tylko wierszem kodu, w którym przywołuję jakiś kontroler i pozwalam mu wykonać zadanie, by w końcu wyrenderować szablon Twig. Postanowiłem więc przenieść to wywołanie do kontrolera, do wnętrza filtra `template_include`, abym nie musiał nawet umieszczać żadnego kodu w szablonach stron... Mogę się pozbyć szablonów stron, ale nadal potrzebuję w jakiś sposób do stron _group_, aby ustawić dla nich kilka grup Zaawansowanych Pól Niestandardowych, itp... Tak więc skończyło się na około 15 plikach PHP, które zawierają tylko komentarz na górze z pewną nazwą szablonu, co jest dokładnie tym, co chciałbym aby tego uniknąć, definiując te szablony z jakiejś funkcji... Czy próbuję _na nowo wynaleźć koło_? Może w pewnym sensie, ale myślę, że staje się to naprawdę _fajny_ motyw, bardzo łatwy do utrzymania i modyfikowania...


title: Ustawianie postów na stronę w query_posts

text:
Wytrzymaj ze mną tutaj.. Domyślna liczba postów na stronę w obszarze administracyjnym to 10. Podczas niektórych testów chciałem zmienić liczbę postów na stronę w moim niestandardowym archiwum postów na 2 (w WP 3.1). Problem polega na tym, że mam tylko 4 posty, więc powinny być 2 strony z 2 postami na każdej, ale ponieważ domyślnie jest to 10, przejście do /page/2 zwraca błąd 404 (zakładając, że przy 10 postach na stronie byłoby to nie być druga strona) Jedynym sposobem na obejście tego było ustawienie domyślnej wartości w obszarze administracyjnym na 1, ale nie jest to naprawdę idealne, ponieważ teraz muszę wykonać niestandardowy query_post dla wszystkich archiwów typu post, aby ustawić posty na strona. Czy ktoś ma lepszy sposób na zrobienie tego lub jakieś pomysły? Dziękuję. projekt-archiwum.php: <?php get_header(); ?> <?php globalne $wp_query; query_posts(array_merge($wp_query->query, array( 'paged' => get_query_var('paged'), 'posts_per_page' => 2 ))); ?>
<?php _e('Poprzednia praca', 'w pełni naładowana'); ?>
 <?php if (have_posts()): while(have_posts()): the_post();?> <a href="<?php the_permalink(); ?>" id="post-< ?php the_ID(); ?>" <?php post_class('uruchom kol.-' . $i); ?>> <?php the_title(); ?> <?php the_content(); ?>  <?php endwhile; endif; ?> <?php if ($wp_query->max_num_pages > 1): ?>

<?php next_posts_link( __( '← Starsze wpisy', 'dwadzieścia' ) ); ?>

<?php previous_posts_link( __( 'Nowsze posty →', 'dwadzieścia') ); ?>

 <?php endif; ?> <?php get_footer(); ?> zarejestruj typ posta: register_post_type('project', array( 'capability_type' => 'post', 'has_archive' => true, 'hierarchical' => false, 'labels' => array( 'name' => __ ('Projekty', 'w pełni naładowany'), 'singular_name' => __('Projekt', 'w pełni naładowany'), 'all_items' => __('Wszystkie projekty', 'w pełni naładowany'), 'add_new_item' => __( 'Dodaj nowy projekt', 'w pełni naładowany'), 'edit_item' => __('Edytuj projekt', 'w pełni naładowany'), 'update_item' => __('Aktualizuj projekt', 'w pełni naładowany') ), 'menu_icon' = > get_stylesheet_directory_uri() . '/images/monitor-off.png', 'menu_position' => 5, 'public' => true, 'publicly_queryable' => true, 'exclude_from_search' => false, 'rewrite' => array ('slug' => 'work', 'with_front' => false), 'supports' => array('title', 'editor', 'thumbnail', 'custom-fields') ));


title: Błąd krytyczny PHP: wywołanie niezdefiniowanej funkcji nazwa_bazy_wtyczki

text: Otrzymuję ten błąd: [27-Jun-2012 18:22:39 UTC] Błąd krytyczny PHP: Wywołanie niezdefiniowanej funkcji plugin_basename() w /XXXX/public_html/wp-content/plugins/price-update/price-update .php w wierszu 68: //Ustawiamy tutaj nazwę bazową wtyczki, można ją ustawić ręcznie, ale to jest w celach demonstracyjnych $this->plugin_basename = plugin_basename(__FILE__); w tym bloku kodu: class PriceUpdate extends mtekk_admin { protected $version = '0.0.1'; protected $full_name ='Aktualizacja cen'; protected $short_name ='Aktualizacja cen'; protected $access_level = 'manage_options'; chroniony identyfikator $ = 'pr_upate'; protected $unique_prefix ='prud'; protected $plugin_basename ='aktualizacja-cena/aktualizacja-cena.php'; chronione $opcja = tablica(); /** * __construct() * * Domyślny konstruktor klasy */ function __construct() { //Ustawiamy tutaj nazwę bazową wtyczki, można ją ustawić ręcznie, ale służy to do celów demonstracyjnych $this->plugin_basename = plugin_basename(__FILE__); register_deactivation_hook(__FILE__, array($this, 'dezaktywuj')); add_action($this->unique_prefix . '_cron_hook', array($this,'cron_handle')); //Zarejestruj niektóre z naszych niestandardowych taksonomii add_action('init', array($this, 'wp_init'), 0); add_action('wp_footer', array($ to, 'stopka')); //Upewnimy się, że załadujemy konstruktor rodzica parent::__construct(); } Jednak jest to zdefiniowane powyżej: protected $plugin_basename = 'price-update/price-update.php'; jakieś pomysły?


title: Zapisywanie niestandardowych pól w niestandardowej taksonomii

text: Próbuję utworzyć pole niestandardowe dla taksonomii niestandardowej. update_post_meta świetnie współpracuje z postami. Taksonomie nie są postami, więc to nie zadziała. <?php update_post_meta($post_id, $meta_key, $meta_value, $prev_value); ?> Jak zapisać niestandardowe pole w niestandardowej taksonomii? Inne rozwiązania obejmują options_table (źle!) lub tworzenie własnej tabeli (kłopotliwe). Czy istnieje inne rozwiązanie lub funkcja w puszkach, które mogą w tym pomóc?


title: Jak filtrować get_avatar?

text: Chcę użyć lokalnego systemu awatarów dla mojej witryny wp, chcę filtrować funkcję `get_avatar()`, aby zwracała awatar z mojego serwera zamiast domyślnego gavatar . Mam następujący kod: class local_avatar{ function __construct(){ add_filter('get_avatar',array($this,'get_avatar')); } funkcja publiczna get_avatar($avatar , $id_or_email , $size = '96' , $default , $alt = false){ global $wpdb; $ upload = wp_upload_dir(); if(is_numeric($id_or_email)){ // identyfikator użytkownika $image = get_user_meta($id_or_email,'_ahaali_avatar',true); if($image){ $image_path = $upload['baseurl'].'/avatar/'.$image; $ahaali_avatar = ''; }else{ $image_path = 'http://0.gravatar.com/avatar/ad516503a11cd5ca435acc9bb6523536?s='.$size; $ahaali_avatar = ''; } }elseif(is_string($id_or_email)){ // adres e-mail użytkownika $user_id = $wpdb->get_var($wpdb->prepare("SELECT ID FROM wp_users WHERE user_email = %s", $id_or_email)); $obraz = get_user_meta($user_id,'_ahaali_avatar',prawda); if($image){ $image_path = $upload['baseurl'].'/avatar/'.$image; $ahaali_avatar = ''; }else{ $image_path = 'http://0.gravatar.com/avatar/ad516503a11cd5ca435acc9bb6523536?s='.$size; $ahaali_avatar = ''; } } return $ahaali_avatar; } } I zwraca następujące błędy: > Ostrzeżenie: Brakuje argumentu 2 dla local_avatar::get_avatar() w > /home/subhi/public_html/work/example.com/wp- > content/plugins/ahaali_avatar/core.php na linia 40 > > Ostrzeżenie: brak argumentu 4 dla local_avatar::get_avatar() w > /home/subhi/public_html/work/example.com/wp- > content/plugins/ahaali_avatar/core.php w linii 40 Jak mogę rozwiązać ten?


title: Wyświetl losowy fragment customposttype2 w single-custompostype1.php, który ma tę samą taksonomię

text:
OK - wszędzie szukałem tego. **Szczegóły:** Typ wpisu niestandardowego nr 1 = „produkt” > zarejestrowana taksonomia „productranges” Typ wpisu niestandardowego nr 2 = „recenzja” > zarejestrowana taksonomia „referencje” Oba CPT mają wspólne kategorie „Pełna żywność” , „Przysmaki” itp. .. na przykład **Pytanie:** Jak mogę wyświetlić losowy fragment posta z tej samej wspólnej kategorii z postu „Referencje” do posta „Produkt”? W pewnym sensie powiązanie Referencji z Produktami. Użyłem następującego, ale pokazuje tylko losowy post ze wszystkich kategorii, potrzebuję go do wyjścia z aktualnie przeglądanej kategorii: <?php $posts = get_posts('post_type=testimonial&issue=$issueid&post_status=publish&numberposts= 1&orderby=rand'); foreach ($posts jako $post) : setup_postdata($post); ?>
<?php the_title(); ?>
 <?php the_excerpt('
'); ?>czytaj więcej... <?php endforeach; ?> <?php //Reset Query wp_reset_query();?> Pozdrawiam, jeśli możesz pomóc!


title: next_posts_link zwraca tę samą zawartość pierwszej strony

text: Paginacja wydaje się działać dobrze... Mam 21 postów... i będzie to 3 strony... jednak... każda strona pokazuje 10 postów i taką samą treść jak pierwsza strona.... <?php $ temp = $wp_query; $wp_query= null; $args = array( 'post_type' => 'a-raporty', 'post_status' => 'opublikuj' ); $wp_query = nowe WP_Query ($args ); if ( $wp_query-> have_posts() ) { while ($wp_query->have_posts()) : $wp_query->the_post(); ?> <a target="blank" href="<?php the_permalink(); ?>">Raport <?php endwhile; <?php next_posts_link('Starsze wpisy »'); //wyczyść ponownie $wp_query = null; //resetuj $wp_query = $temp; ?>


title: Rejestracja użytkownika Zezwól na ten sam e-mail

text: Zbadałem ten problem i nie mogę znaleźć rozwiązania dla Wordpress 3.7.1 działającego jako pojedyncza witryna. Problem: Zezwól użytkownikowi na zarejestrowanie się w witrynie i zignoruj błąd, który WP zwraca, jeśli e-mail jest już zarejestrowany - „Ten e-mail jest już zarejestrowany, wybierz inny”. Próbowałem napisać własną wtyczkę, coś w stylu if($errors['field'.$field->id] == 'Ten e-mail jest już zarejestrowany, proszę wybrać inny.') unset($errors['field '.$pole->id]); Jakakolwiek pomoc w tym zakresie byłaby bardzo mile widziana. PS. i) Wiem, że zezwolenie na rejestrację tego samego adresu e-mail nie jest idealne, ale nie widzę innego rozwiązania, które pozwoliłoby tym samym członkom rodziny zarejestrować się pod różnymi nazwami użytkownika, ale z tym samym rodzinnym adresem e-mail. ii) Odpowiedź na poprzednie pytanie nie działała na jednej stronie, używając kodu add_filter('pre_user_email', 'skip_email_exist'); dlatego musiałem zadać to pytanie dla rozwiązania pojedynczej witryny.


title: Uruchom filtr wyszukiwania i sortuj według niestandardowego typu postu

text: Używam wtyczki (Relevanssi) i niestandardowej funkcji do sortowania wyników wyszukiwania według niestandardowych typów postów (patrz poniżej). _To działa świetnie_. add_filter('relevanssi_hits_filter', 'oddzielne_typy_wyników'); function different_result_types($hits) { $types = array(); // Podziel typy postów w tablicy $types if (!empty($hits)) { foreach ($hits[0] as $hit) { if (!is_array($types[$hit->post_type])) $types [$hit->post_type] = array(); array_push($types[$hit->post_type], $hit); } } // Scal z powrotem do $hits w żądanej kolejności $hits[0] = array_merge((array)$types['cats'], (array)$types['dogs'], (array)$types[' konie]); zwróć $hits; } Problem pojawia się, gdy chcę wyświetlać wyniki wyszukiwania według typu. Na przykład, gdy na stronie "Search Pets" (która jest szablonem strony searchpets.php) chcę wyświetlić tylko wyniki wyszukiwania dla powyższych CPT. Na stronie „Blog” (standardowe posty WP) chcę wyświetlać tylko posty na blogu, a jeśli na stronie innej niż niestandardowa CPT, wyświetlać wyniki stron. Pomyślałem, że dodając instrukcję if/else (patrz poniżej), która zadziała. add_filter('relevanssi_hits_filter', 'oddzielne_typy_wyników'); function different_result_types($hits) { $types = array(); // Podziel typy postów w tablicy $types if (!empty($hits)) { foreach ($hits[0] as $hit) { if (!is_array($types[$hit->post_type])) $types [$hit->post_type] = array(); array_push($types[$hit->post_type], $hit); } } // If post type = psy, koty, konie if (in_array( get_post_type(), array('dogs','cats','horses'))){ // Połącz z powrotem do $hits w żądanej kolejności $ hits[0] = array_merge((tablica)$types['psy'], (tablica)$types['koty'], (tablica)$types['konie']); // zwróć $hits; } else { // If typ postu = posty, strona if (in_array( get_post_type(), array('post','page'))){ // Połącz z powrotem do $hits w żądanej kolejności $hits[0] = array_merge((tablica)$types['post'], (tablica)$types['strona']); //zwróć $hits; }} return $hits; } Ale wydaje się, że zwraca tylko najlepsze wyniki filtrów. Masz pomysł, w którym miejscu się mylę lub czy moja logika w ogóle zadziała? Bardzo noob PHP. Dziękuję! Ramsey


title: Jak skonfigurować htaccess dla przekierowań 301, opublikować migrację Joomla do Wordpress?

text: Prawie zakończyłem żmudne zadanie migracji stosunkowo złożonej witryny Joomla do Wordpress. (mniej więcej) ostatni etap, o którym chcę się dowiedzieć, to przekierowania 301. Spędziłem ostatnie kilka godzin na badaniu tego tematu, ale nie znalazłem żadnych wskazówek dotyczących mojej sytuacji (szczególnie struktury podkatalogów). Byłbym bardzo wdzięczny za trzymanie się za ręce. Nie chcę tego zepsuć, ponieważ zdaję sobie sprawę, że może to wpłynąć na setki linków przychodzących z wyszukiwarek. **Oto podstawowe informacje:** * Joomla została zainstalowana w `www.domain.com/site/` * Wordpress została zainstalowana w `domain.com/wordpress/` * Wszystkie artykuły Joomla zostały przeniesione do instalacji Wordpress i opublikowane Identyfikatory zostały utrzymane. * Struktura bezpośredniego linku URI Joomla dla artykułów to: `www.domain.com/site/YYYYMMDD###/...` **np.** `www.domain.com/site/20110623398/articles/category-slug/article - slug.html` ### jest unikalnym identyfikatorem artykułu w Joomla (aka ID posta). * Posty w Wordpress mają ten sam unikalny identyfikator. W ten sposób `www.domain.com/site/20110623398/articles/category-slug/article-slug.html` może zostać przekierowany na `domain.com/?p=398` * Istnieje kilka innych struktur URI, których potrzebuję Poradzić sobie. Ale zajmę się tym, gdy będę miał rozpracowanie przekierowania artykułów. **MOJE PYTANIE (W CZĘŚCIACH)** 1. Jak skonfigurować plik .htaccess, aby wszystkie przychodzące linki do artykułów joomla miały wyodrębniony unikalny identyfikator, a następnie przekierowywał do `/?p=UID` (jako przekierowanie 301 )? 2. Jak to zrobić w taki sposób, aby witryna zawsze używała lub wyświetlała `domain.com/` jako katalog domowy (z i bez www), jednocześnie utrzymując witrynę w `/wordpress` (lub w `/site`, jeśli to działa lepiej dla przekierowań - co podejrzewam, że tak będzie). Nie chcę jednak, aby witryna kiedykolwiek ładowała się i wyświetlała URI typu `/wordpress/post-name-etc/` (lub `/site/post-name-etc/` URI). Oznacza to, że chcę, aby część `/wordpress/` lub `/site/` była zawsze usuwana z punktu widzenia użytkownika końcowego (w tym wyszukiwarek). Uważam, że plik .htaccess jest również używany do tego. 3. Wraz z wieloma innymi witrynami i postami przeczytałem informacje związane z Dawanie Wordpressowi własnego katalogu w Kodeksie WordPressa. Punkt 4 tego artykułu mówi: „Skopiuj (NIE PRZENOSZĄ!) pliki index.php i .htaccess z katalogu WordPress do katalogu głównego Twojej witryny (adres bloga).”, ale mam plik .htaccess w root i zawiera dużo kodu. Czy można po prostu skopiować index.php, a nie plik WP htaccess? * * * Punkty **(2)** , w połączeniu z **(1)** , to miejsce, w którym trochę się pogubiłem. Pobranie wszystkich artykułów na `domain.com/site/` w celu przekierowania do `domain.com/` i pobranie właściwej strony z `domain.com/wordpress` bez wyświetlania części `/wordpress/`. Jak wspomniano powyżej, podejrzewam, że najlepiej będzie, jeśli przeniosę witrynę wordpress do `domain.com/site` (i odpowiednio zmienię ustawienia katalogu domowego pliku konfiguracyjnego).


title: WP_Query nie jest pobierane w losowej kolejności w ramach rodzica

text:
Obecnie mam DWIE podstrony pod ID strony nadrzędnej 43. Referencje klientów.. W każdym razie. Mam losową kolejność w zapytaniu $args, ale kolejność nigdy się nie zmienia. Czego mógłbym przegapić? wp_reset_query(); $args=array( 'post_parent' => 43, 'post_type' => 'page', 'post_status' => 'publish', 'posts_per_page' => 2, 'orderby'=>'rand' ); $my_query = nowe WP_Query($args); if( $my_query->have_posts() ) { while ($my_query->have_posts()) : $moje_zapytanie->the_post(); ?>
<? echo get_post_meta($post->ID,'subtitle', true);?>

<? echo pobierz_wyciąg(); ?>
 <? koniec; } wp_reset_query(); // Odtwórz globalne dane postu, które zostały nadpisane przez the_post().


title: zezwalaj na zdjęcia/filmy w komentarzach

text: Mam prośbę o zezwolenie subskrybentom na przesyłanie/umieszczanie zdjęć lub filmów w komentarzach. Czy ktoś wie o istniejącej wtyczce do obsługi tego, nie mogłem znaleźć niczego odpowiedniego. Znalazłem przykłady kodu do zmiany tagów, które są pozbawione komentarzy, co pozwalałoby na osadzanie, ale nie jestem pewien, czy naprawdę pasuje to do rachunku i wymagałoby zmiany pliku podstawowego.


title: Kiedy używać API systemu plików? Czy w ogóle powinienem go używać?

text: Zastanawiam się, kiedy zaleca się korzystanie z API systemu plików i czy w ogóle jest to przydatne? WordPress wydaje się trochę niespójny, jeśli chodzi o użycie API systemu plików, używa API tylko w kilku miejscach podczas przesyłania i rozpakowywania plików, a to nie ma dla mnie większego sensu, mam na myśli, gdzie w ogóle z niego korzystać kiedy jest wiele innych sytuacji, w których funkcje systemu plików PHP są używane do bezpośredniego dostępu? Przesyłanie pakietów działałoby nawet w przypadku „problemów” z własnością, jednak jestem całkiem pewien, że te „problemy” nie znikną 5 minut później, gdy będę korzystał z którejkolwiek z funkcji, na przykład bezpośrednio z fwrite. Dlaczego więc jako programista wtyczek/motywów miałbym się tym przejmować, skoro połowa funkcji WordPressa, których używam, nie opiera się na API systemu plików, moja wtyczka/motyw i tak nie działałaby poprawnie, prawda?


title: Jak przeanalizować niestandardowy adres URL (w witrynie WP) i uzyskać parametry przekazywane do tego adresu URL?

text: Na mojej stronie WP -- np. http://www.mojadomena.com-- żądanie musi zostać przekazane do niestandardowego adresu URL-- http://www.mojadomena.com/custompage?param1=abc&param2=def Teraz chcę uzyskać parametry przekazane do ten adres URL z funkcji w functions.php tego motywu. Ta funkcja jest wykonywana po załadowaniu powyższego (przykładowego) adresu URL... Jak to zrobić? Do powyższego np. Chcę uzyskać pierwszy parametr=abc i drugi parametr=def — wiem już, że parametry mają nazwy param1 i param2.


title: Zapisz niestandardowy typ posta nie działa

text: Mam dziwny problem z tym samym kodem, który nie działa na serwerze lokalnym a serwerem produkcyjnym. Kod jest prosty i próbuję zapisać niestandardowy typ posta, ale żadne dane w moich metaboksach nie są zapisywane. Mam kilka instrukcji `echo` w moim `save_custom_type` do debugowania, aby zobaczyć, jak wyglądają dane. Nawet te instrukcje drukowania nie są powtarzane po naciśnięciu przycisku „Publikuj” w środowisku produkcyjnym. W moim motywie tworzony jest niestandardowy typ posta, podpinam się pod akcję „init”. Kod do tworzenia i pierwsze wiersze do pierwszej instrukcji echo w metodzie save. function create_omgang_post_type() { $labels = array( 'name' => 'Omgång', 'add_new' => 'Lägg do nowego omgång', 'add_new_item' => 'Lägg do nowego omgång', 'not_found' => 'Inga omgångar inlagda'); $args = array( 'description' => 'Ogólne informacje o tej piosence', 'public' => true, 'hierarchical' => true, 'show_in_menu' => false, 'show_in_admin_bar' => true, 'label'= >'Omgångar', 'labels' => $labels, 'supports' => array( 'title', 'page-attributes') ); register_post_type('omgang', $args); } add_action('init', 'create_omgang_post_type'); /*-------------------------------------*/ function save_custom_post_omgang($post_id) { $slug = 'omang'; $post = get_post($post_id); if($post->post_type == "omgang" ) { if(! $_POST) return; if (! wp_post_revision_title ($post_id)) { $ zwłoka = get_all_lag (); $dane = tablica(); foreach($_POST as $key => $value) { //key#type $explodedID = explode('#', $key); if($explodedID[0] != $klucz) { $key = $explodedID[0]; $type = $explodedID[1]; $dane[$klucz][$typ] = $wartość; } } print_r($dane); //ta linia nie jest nawet drukowana w PRD } } }