title: Niestandardowe przepisywanie nieużywane przez WordPress

text: Skonfigurowałem prostą wtyczkę, która dodaje niestandardowe reguły przepisywania do WordPressa. Oto kod tej wtyczki: https://gist.github.com/JCPry/7324825. W WordPressie tworzona jest strona ze znacznikiem „property-detail”. Ta strona ma niestandardowy szablon strony, który pozwala na pewne przetwarzanie argumentu zapytania `property_id`. Problem polega na tym, że reguła przepisywania nie jest poprawnie rozpoznawana. Oto przykładowy adres URL, który powinien być obsługiwany przez niestandardowe reguły przepisywania: `http://mflwv1westvolu.staging.wpengine.com/property-detail/1500000005169806/`. W przypadku tego adresu URL (i innych podobnych) zamiast wartości `1500000005169806` konwertowanej na argument zapytania property_id, jest on rozpoznawany jako numer strony. WordPress następnie przekierowuje do najwyższego możliwego 32-bitowego numeru strony, którym jest URL `http://mflwv1westvolu.staging.wpengine.com/property-detail/2147483647/`. Dodałem trochę danych wyjściowych debugowania na górze strony. Jeśli używasz „View Source” w przeglądarce, możesz zobaczyć zrzut globalnych zmiennych `$wp_query` i `$wp_rewrite`. Zignoruj brak odpowiedniej stylizacji, ponieważ szablon strony został po prostu skopiowany do innego motywu (patrz poniżej). Szczególnie dziwne w tym przypadku wydaje się to, że dokładnie te same niestandardowe reguły przepisywania działają poprawnie na innej instalacji WordPressa na tym samym serwerze. Oto adres URL, który działa **_does_**: `http://rflcw1chapmanj.wpengine.com/property-detail/1500000005169806/` Dla witryny, która obecnie nie działa, spróbowałem: 1. Opróżnić reguły przepisywania odwiedzając Ustawienia > Permalinki 2. Przywrócenie domyślnej struktury permalinków (nieładne permalinki), zapisanie, a następnie przywrócenie struktury permalinków z powrotem do %postname% i ponowne zapisanie 3. Dezaktywacja wszystkich innych wtyczek na stronie 4. Przełączanie do motywu Twenty Thirteen (skopiowałem odpowiedni niestandardowy szablon strony do folderu motywów dwadzieścia trzynaście) 5. Ponowna instalacja głównych plików WordPress 6. Tworzenie całkowicie nowej instalacji WordPressa przy użyciu innego prefiksu tabeli bazy danych. Szczerze mówiąc, najbardziej frustrującą rzeczą w tym problemie jest fakt, że działa dobrze w przypadku innej instalacji w tym samym środowisku, ale nie w tej instalacji. Z góry dziękuję wszystkim, którzy mogą mi pomóc dowiedzieć się, dlaczego to nie działa.


title: get_user_met Sekcja krótkiego profilu

text: Ok, więc dodałem niestandardowe pole na stronie edycji profilu użytkowników, gdzie mogą dodać link do adresu URL obrazu, który chcą. Obecnie używam tego dla współtwórców i wyższych, ale mam też małe małe pole profilu na mojej stronie, które pobiera awatar użytkownika z gravatara. Użyłem kodu sprzed lat, ale zmieniłem go, aby uzyskać autorski podpis podpisany na użytkownikach lub uzyskać gravatara. Zobacz kod poniżej $profilepic = get_user_meta('author_pic'); $imgtagbeg = (''); if ($profilepic) echo $imgtagbeg,$profilepic,$imgtagend; else echo get_avatar( $user_email, '52', $default = 'http://www.gravatar.com/avatar.php?gravatar_id=$md5&size=80&default=$default' ); Chcę zrobić, jeśli aktualnie zalogowany użytkownik ma awatar połączony w polu profilu, użyj go zamiast gravatara. Ale jeśli autor ma gravatara i pozostawił to pole puste w profilu, użyj go lub pobierz domyślny gravatar **Aktualizacja:** A co z czymś takim $userpic = '<img src="link/to/author_pics/ $identyfikator użytkownika.png"'; if ($userpic) echo $userpic; else echo get_avatar( $user_email, '52', $default = 'http://www.gravatar.com/avatar.php?gravatar_id=$md5&size=80&default=$default' ); Zamiast polegać na polu użytkownika, po prostu prześlij obraz do katalogu i użyj tam identyfikatora użytkownika jako nazwy pliku, a następnie załaduj go, w przeciwnym razie użyj gravatara. Czy to zadziała. **AKTUALIZACJA 2:** $userpiccur = wp_get_current_user(); $userpicloc = 'http://awatary.mojadomena.com/'; $userpictyp = '.png'; $userpicurl = $userpicloc . $userpiccur->user_login . $userpictyp; $header_response = get_headers($userpicurl, 1); $userpicbeg = ''; if ( strpos( $header_response[0], "404" ) !== false ) echo $userpicbeg,$userpiccur->user_login,$userpicend; else echo get_avatar( $user_email, '52', $default = 'http://www.gravatar.com/avatar.php?gravatar_id=$md5&size=80&default=$default' );


title: Jak sprawić, by pola komentarzy wordpress były wymagane?

text:
Oto mój formularz: <form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform" class="validate"> <? php if($user_ID) : ?> <?php else : ?>

 <etykieta for="autor" class="etykieta_nazwa_etykiety">Nazwa*

 E-mail*

 <input id="name" name="autor" class="wymagany input_text input_name" type="text" value="" /> <input id="email" name="email" class="wymagany input_text e-mail input_email" type="tekst" wartość="" />
 <?php endif; ?>
 Komentarz
 <textarea id="comment_box" class="required input_comment" name="comment „cols="40" rows="6"></textarea>
<input name="prześlij" class="input_submit" type="prześlij" id="prześlij" tabindex="5" value="Prześlij Komentarz" /> <input type="ukryty" name="comment_post_ID" value="<?php echo $id; ?>" />
 <input type="ukryty" id="przekierowanie_do" name=" redirect_to" value="<?php echo get_bloginfo('wpurl');?>/comment"> <?php do_action('comment_form', $post->ID); ?> </form> Mam wymagane pola na wszystkich wejściach, ale działa tylko na polu tekstowym komentarza. Jakieś pomysły?


title: Masz problemy z dostępem do wartości $_GET

text: Próbuję uzyskać wartość zmiennej $_GET na stronie głównej mojej witryny. Z jakiegoś powodu nie mam dostępu do żadnych zmiennych $_GET na stronie głównej, ale mam do nich dostęp na innych stronach. Czy ktoś wie, dlaczego tak może być?


title: Niestandardowe formy pola i grawitacji

text:
Mam następujący kod funkcji niestandardowej, którego używam do tworzenia niestandardowych pól dla typu postu. Problem polega na tym, że potrzebuję, aby pola niestandardowe wyświetlały się pojedynczo, a w tej chwili pojawiają się po prostu jako „klucz”, co oznacza, że gdy próbuję połączyć pole formularza (formy Gravity) z polem niestandardowym, mogę połączyć się tylko z pole „klucz”. Jak można to zmodyfikować, aby każde pole niestandardowe było wyświetlane osobno? /* Pola niestandardowe */ $klucz = "klucz"; $meta_boxes = array( "cf_link" => array( "nazwa" => "cf_link", "tytuł" => "URL/Link", "opis" => "Wprowadź adres URL/link tutaj."), "cf_image " => array( "name" => "cf_image", "title" => "Obraz", "description" => "Tu wpisz adres URL obrazu."), "cf_instructions" => array( "name" => "cf_instructions", "title" => "Instructions", "type" => "textarea", "description" => "Wprowadź tutaj konkretne instrukcje.") ); function create_meta_box() { global $key; if( function_exists( 'add_meta_box' ) ) { add_meta_box( 'nowe-meta-boxes', ucfirst( $key ) . 'Szczegóły produktu', 'display_meta_box', 'products', 'normal', 'high' ); } } function display_meta_box() { global $post, $meta_boxes, $key; ?>
 <?php wp_nonce_field( nazwa_bazy_wtyczki( __FILE__ ), $klucz . '_wpnonce', fałsz, prawda ); foreach($meta_boxes as $meta_box) { $data = get_post_meta($post->ID, $key, true); ?>
 <etykieta for="<?php echo $meta_box[ 'nazwa' ]; ?>"><?php echo $meta_box[ 'title' ]; ?> <?php if( $meta_box['type'] === 'textarea' ) { ?> <textarea name="<?php echo $meta_box[ 'name' ];?>" rows= "4"><?php echo htmlspecialchars($dane[$meta_box['nazwa']]); ?></textarea> <?php } else { ?> <input type="text" name="<?php echo $meta_box['name']; ?>" value="<?php echo htmlspecialchars( $data [$meta_box['name']]); ?>" /><?php }?>
<?php echo $meta_box[ 'description' ]; ?>

 <?php } ?>
 <?php } function save_meta_box( $post_id ) { global $post, $meta_boxes, $key; foreach( $meta_boxes as $meta_box ) { $data[ $meta_box[ 'name' ] ] = $_POST[ $meta_box[ 'name' ] ]; } if ( !wp_verify_nonce( $_POST[ $klucz . '_wpnonce' ], plugin_basename(__FILE__)) ) return $post_id; if ( !current_user_can( 'edit_post', $post_id )) return $post_id; update_post_meta( $post_id, $klucz, $dane ); } add_action( 'menu_administratora', 'utwórz_meta_box' ); add_action( 'zapisz_post', 'zapisz_meta_box' );


title: Jak podłączyć jeden niestandardowy post typu post do drugiego?

text: Zasadniczo mam dwa niestandardowe typy postów "wiadomości" i "autorzy". Więc chcę wyświetlić oba z nich osobno, ale chcę je dynamicznie podpinać. Więc kiedy tworzysz post aka. news.. wtedy można było wybrać autora z listy. Później ten autor będzie wyświetlany pod postem jako „O autorze” i będzie zawierał link do szczegółowego widoku autorów. Przepraszam, nie mam żadnego kodu na początek, ponieważ wordpress jest dla mnie nieznanym obszarem i nie mogłem znaleźć żadnych słów kluczowych na początek.


title: Motyw jQuery UI, który idealnie pasuje do interfejsu administratora

text: Czy ktoś zna motyw, który jest nie tylko zbliżony (np. „gładkość”), ale _naprawdę_ pasuje do wyglądu interfejsu administratora?


title: W jaki sposób WP decyduje, jak ocenić integralność bazy danych?

text: Zaktualizowałem kilka witryn WPMU z 2.9 do WP3. Nigdy nie miałem problemów z tym procesem.. do dzisiaj, kiedy nagle jedna instalacja mówi mi, że w DB brakuje niektórych tabel. Tabele, których WordPress nie może znaleźć, tak naprawdę nie powinny znajdować się w multisite. The tables I have are:               wp_1_commentmeta     wp_1_comments     wp_1_links     wp_1_options     wp_1_postmeta     wp_1_posts     wp_1_terms     wp_1_term_relationships     wp_1_term_taxonomy     wp_blogs     wp_blog_versions     wp_registration_log     wp_signups     wp_site     wp_sitecategories     wp_sitemeta     wp_usermeta     wp_users      And that's excactly the tables you get on a vanilla install of WordPress-MU 2.9.2 (not WordPress 2.9.2) But w tej instalacji, po zaktualizowaniu pliku do WordPress 3.x, WordPress mówi mi, że w bazie danych brakuje tabel, takich jak wp_posts wp_comments itp. Jeśli WordPress działałby jako pojedyncza witryna, tych tabel rzeczywiście brakowało, ale kiedy aktualizacja z WordPress-MU 2.9 nie będzie ich tam, i to zwykle nie powoduje problemu na tym etapie. Więc moje pytanie brzmi: czy ktoś wie, co decyduje o tym, czy WordPress oceni integralność bazy danych zgodnie z regułami pojedynczej witryny czy wielostanowiskowej? Zgaduję, że problem polega na tym, że WordPress z jakiegoś powodu ocenia bazę danych tak, jakby była to zwykła instalacja na jednej stronie.


title: Testowanie jednostek PHP WordPress?

text: Biorąc pod uwagę sposób, w jaki WordPress jest napisany i jak współdziała z bazą danych oraz biorąc pod uwagę, że nie jest zbytnio zorientowany na OOP, czy istnieje sposób na testowanie jednostkowe motywu? czy istnieje sposób na testowanie jednostkowe frameworka (a nie frameworku tematycznego), który współdziała z WordPress, czyli na przykład, czy możesz napisać test jednostkowy do obsługi pętli, radzenia sobie z widżetami? Jeśli tak, czy ktoś ma jakieś przykłady? Wiem, jak pisać testy jednostkowe, ale nigdy nie próbowałem pisać testów jednostkowych. Myśli?


title: Utwórz niestandardowy e-mail powitalny bez wtyczki

text: Czy istnieje sposób na dostosowanie treści i tematu e-maili powitalnych i weryfikacyjnych wysyłanych podczas procesu rejestracji na Wordpress? Chciałbym podłączyć lub filtrować bez użycia wtyczki lub funkcji „wtyczkowej”. Jeśli ktoś mógłby wskazać mi właściwy kierunek, byłbym bardzo wdzięczny. Dziękuję!


title: Media prettyPhoto ładują się bardzo wolno w Chrome

text: Mam problem ze skryptem wtyczki prettyPhoto media WordPress (typu lightbox) w przeglądarce Chrome. Działa pięknie w innych przeglądarkach, ale ładowanie w Chrome trwa wiecznie. Podczas korzystania z tego skryptu ma on pokazywać kciuki na dole efektu lightbox, ale działa tylko wtedy, gdy wybiorę obsługę "IE 6 fallback". Nie pewny dlaczego? Jeśli zdejmę miniatury z nakładki, wszystko ładnie przyspiesza, ale efekt miniaturki jest potrzebny do działania. Jakieś pomysły na to, co powoduje, że ładuje się bardzo wolno? Oto link do mojej strony: http://ecbiz129.inmotionhosting.com/~sar8475/sign-types/ kliknij „Wyświetl więcej znaków”, aby zobaczyć efekt. Dziękuję bardzo za pomoc, Caleb


title: Jak mogę wyświetlić to, czego szukam w motywie?

text: Jak mogę wyświetlić to, czego szukam w motywie wyszukiwania. Np. szukam słowa kluczowego : pancernik Wynik : Twoje wyniki są pobierane (3 posty) z tematem pancernik.


title: Zarejestruj skrypt/styl: Czy można dostosować ciąg zapytania o wersję za pomocą wtyczki?

text: Rozwijając pytanie w tytule: Chciałbym znaleźć sposób (za pomocą wtyczki) na użycie znaczników czasu dla ciągów zapytań o wersję pliku JS i CSS, które są wyprowadzane za pomocą `wp_register_style` i `wp_register_script`. Wiem, że można to łatwo zmodyfikować w samych wywołaniach i obecnie robię to w ten sposób: $style_mtime = filemtime(dirname(__FILE__).'/css/style.css'); wp_register_style( 'fstop-stylesheet', get_stylesheet_directory_uri() . '/library/css/style.css', array(), $style_mtime , 'all'); wp_enqueue_style( 'fstop-stylesheet' ); Bardzo bym chciał, gdybym mógł przekazać część znacznika czasu do wtyczki. Niedawno znalazłem tę wtyczkę, która dobrze radzi sobie z przeniesieniem ciągu zapytania do nazwy pliku, co powinno skutkować lepszym buforowaniem dla serwerów proxy: https://gist.github.com/ocean90/1966227 I działa dobrze. Chciałbym dodać bit sygnatury czasowej, aby zautomatyzować cały proces. Pomysły?


title: Jaki jest najlepszy sposób na zbudowanie sieci stron WP, które mają ten sam obszar członkostwa?

text: Mam potencjalnego klienta, który chce zbudować sieć 20 lub 30 witryn, które korzystają z tego samego obszaru członkostwa. Ponadto konto założone w jednej witrynie przekieruje użytkownika do dowolnej witryny w sieci. Jaki jest najlepszy sposób, aby to zrobić? WP wiele stron? Jak najlepiej radzić sobie z kwestiami członkostwa? Wielkie dzięki, Cynthia


title: Pomoc z "domeną tekstową", formularzem komentarzy w motywie WordPress

text: Zacząłem tworzyć własny motyw i prawie tam jestem, ale uruchomiłem wtyczkę Theme Check i miałem kilka wątpliwości/pytań: 1. W całym motywie, gdziekolwiek jest tekst, użyłem `_e( ' Import / Export' );` na przykład, aby pomóc w tłumaczeniach. Otrzymuję tę wiadomość przez cały czas: _RECOMMENDED: Problemy z domeną tekstową w admin/options-backup.php. Nie dołączyłeś domeny tekstowej!_ Próbowałem poszukać informacji na temat domen tekstowych, ale z jakiegoś powodu nie składam tego poprawnie. 2. Otrzymałem ostrzeżenia, że add_custom_image_header i add_custom_background nie zostały uwzględnione, ale i tak niekoniecznie mam te rzeczy dostępne - czy istnieje sposób na zarejestrowanie tych funkcji, a następnie ich usunięcie (aby pozbyć się tego ostrzeżenia)? 3. Jeszcze jeden element to *WYMAGANE: nie można znaleźć comment_form.* Ale w moim motywie zamiast tego używam comments_template() - czy powinienem po prostu przeoczyć ten? Jako punkt odniesienia zbudowałem to na roottheme.com Dziękuję za wszelką pomoc w tym temacie - mam nadzieję, że tego typu pytania będą przydatne dla innych, którzy próbują stworzyć czysty szablon WordPress.


title: Odinstaluj i dezaktywuj wtyczkę za pomocą menu opcji

text:
Tworzę moją pierwszą wtyczkę (modyfikuję istniejącą do tego, czego potrzebuję) i chociaż działa dobrze, próbuję stworzyć proste menu opcji, aby umożliwić dezaktywację wtyczki lub dezaktywację i usunięcie tabel, które tworzy wtyczka. W panelu opcji mam następujący formularz, aby umożliwić administratorowi kliknięcie pola wyboru, a następnie przesłanie formularza, do którego mam nadzieję się dostać: 1. Usuń tabele utworzone przez wtyczkę 2. Dezaktywuj wtyczkę 3. Przekieruj z powrotem do wtyczki page Oto kod mojej strony opcji:
 <form method="post" action=""; onsubmit="if (!this.verify.checked) return false;"> <?php _e("Usuń także wszystkie tabele i dane z bazy danych:", 'menu-test' ); ?> <input type="checkbox" name="verify" />

(WAŻNE: Ta akcja NIE MOŻE zostać cofnięta i usunie wszystkie tabele i dane z bazy danych.)

<input type="submit" name="submitmetataxonomyuninstall" class="button-primary" value="<?php esc_attr_e('Dezaktywuj i odinstaluj') ?>" />  (Pole wyboru powyżej musi być zaznaczone, aby przycisk działał.)
 </form>
 Po prostu nie mogę zmusić tego do działania. To byłaby funkcja, którą myślę, że muszę wywołać (gdy jest to w głównej funkcji wtyczki, dezaktywuje i usuwa tabele w porządku): register_deactivation_hook( __FILE__, 'simple_term_meta_uninstall' ); funkcja simple_term_meta_uninstall() { global $wpdb; if (function_exists('is_multisite') && is_multisite()) { // sprawdź, czy jest to aktywacja sieciowa - jeśli tak, uruchom funkcję aktywacji dla każdego identyfikatora bloga if (isset($_GET['networkwide']) && ($ _GET['networkwide'] == 1)) { $stary_blog = $wpdb->blogid; // Pobierz wszystkie identyfikatory blogów $blogids = $wpdb->get_col($wpdb->prepare("SELECT blog_id FROM $wpdb->blogs")); foreach ($blogids as $blog_id) { switch_to_blog($blog_id); _simple_term_meta_uninstall(); } switch_to_blog($old_blog); zwrócić; } } _simple_term_meta_uninstall(); } Uważam, że to również wywołuje tę funkcję z istniejącego pliku wtyczki: register_uninstall_hook(__FILE__, 'simple_term_meta_uninstall' ); funkcja _simple_term_meta_uninstall() { global $wpdb; $table_name = $wpdb->prefiks . „termmeta”; $wpdb->query("UPUŚĆ TABELĘ, JEŚLI ISTNIEJE $nazwa_tabeli"); delete_option( "simple_term_meta_db_version" ); } Jak wywołać tę funkcję przy użyciu przedstawionego formularza?


title: ogranicz listę tagów do jednej kategorii

text:
Przepraszam, jeśli już o to pytano, ale próbuję ograniczyć listę tagów do jednej kategorii w kilku różnych miejscach na mojej stronie internetowej. Mam ten kod: <?php $tags = get_tags(); $tags_count = liczba($tags); $perkolumna = ceil($liczba_tagów / 3); for ($i = 0;$i < $tags_count;$i++): if ($i < $percolumn): $tag_left .= '
term_id) '"rel="tag">' . $tags[$i]->nazwa .'
 ' . "\n"; elseif ($i >= $percolumn && $i < $percolumn*2): $tag_mid .= '
term_id) . '"rel= "znacznik">' . $tags[$i]->nazwa .'
 ' . "\n"; elseif ($i >= $percolumn*2): $tag_right .= '
term_id) . '"rel="tag">' . $tags[$i]->nazwa .'
 ' . "\n"; endif; koniec za; ?>
 <?php echo $tag_left; ?>

 <?php echo $tag_mid; ?>

 <?php echo $tag_right; ?>
 Jak mogę to wykorzystać i ograniczyć zapytanie do tylko jednej kategorii.


title: Jak poprawnie dodać przepisać orzekany argument do permalinka?

text: Używam reguł przepisywania WP dla moich niestandardowych argumentów, ale kiedy próbuję wygenerować permalink w ten sposób: add_query_arg(array( 'type' => 'foo', 'paged' => 2, ),get_permalink($id)) ; Wraca nadal: mysite.com/products/?type=foo&paged=2 Ale muszę to zmienić w to: mysite.com/products/foo/2 Reguły przepisywania działają idealnie, ale "add_query_arg".. Jak rozwiązać?


title: Ustaw wiele szablonów na post

text: W Joomla! artykuły mogą korzystać z wielu szablonów. Mogę tylko umieścić na końcu adresu URL ?template=templatename, a artykuł używa szablonu "templatename". Czy to możliwe w Wordpressie?


title: Zamieszanie związane z edycją wtyczki

text: Witam Próbuję edytować wtyczkę Wordpress. Moje konwencjonalne myślenie każe mi edytować html, ale wiem, że wordpress to php. NIE mówię też o edycji CSS (estetyka, pozycjonowanie, kolor...itd.). Wiem jak to zrobić. Na przykład załóżmy, że mam formularz wtyczki z polem wejściowym o tytule "ile", ale chcę, aby powiedział coś innego, jak "Dolary".... jak to zrobić?! Również obszar administracyjny wtyczki nie daje mi możliwości zmiany tego w backendzie. Czy nie ma innego sposobu, aby to zmienić? jakakolwiek pomoc byłaby bardzo mile widziana, bo zaraz stracę rozum. Brian


title: Przyciski Następny i Poprzedni do nawigacji

text:
Kupiłem motyw Nuke i dodałem niestandardowy szablon strony, używając kodu z page.php jako frameworka. Jedyny kod jaki dodałem to pętla do ściągania 5 postów z kategorii o identyfikatorze 12. Chciałbym dodać przyciski nawigacyjne "Następny i Poprzedni", aby wyświetlić resztę moich postów w tej kategorii. Jaki kod muszę dodać? Zobacz przykład niestandardowego układu strony: http://www.bodys.co.za/diets- Recipes/healthy-recipes/ Wyświetl kod niestandardowego układu strony: http://www.bodys.co.za/1.jpg lub zobacz kod poniżej <?php /** * Nazwa szablonu: Diety i przepisy * Szablon strony dla diet i przepisów * * @package WordPress */ /** * Pobierz obiekt bieżącej strony **/ $page = get_page($post- >ID); /** * Pobierz identyfikator bieżącej strony **/ $current_page_id = ''; if( isset( $page->ID ) ) { $current_page_id = $page->ID; } $page_style = get_post_meta($current_page_id, 'page_style', true); $page_sidebar = get_post_meta($current_page_id, 'page_sidebar', true); if( empty( $page_sidebar ) ) { $page_sidebar = 'Pasek boczny strony'; } $caption_class = "podpis_strony"; if( empty( $page_style ) ) { $page_style = 'Pełna szerokość'; } $add_sidebar = FAŁSZ; if( $page_style == 'Prawy pasek boczny' ) { $add_sidebar = TRUE; $page_class = 'sidebar_content'; } else { $page_class = 'inner_wrapper'; } pobierz_nagłówek(); ?>
  <div id="content_wrapper"<?php if( !$add_sidebar ) { ?> class="full_page_width"<?php } ?> >
 <?php if( !$add_sidebar ) { ?> <?php pp_breadcrumbs(); ?>
 <div class="<?php echo $caption_class; ?>">

<?php the_title(); ?>

 <?php } ?>
 <?php if ( have_posts() ) while ( have_posts() ): the_post(); ?> <?php if($add_sidebar) { ?>
 <?php } else { ?>
 <?php } ?> <?php pp_bułka tarta() ; ?>
 <?php if( $add_sidebar ) { ?> <div class="<?php echo $caption_class; ?>">

 <?php the_title(); ?>

 <?php } ?> <?php do_shortcode( the_content() ); ?> <?php $args = array( 'liczba postów' => 5, 'kategoria' => 12,); $lista postów = get_posts( $args ); foreach ($postslist jako $post ): setup_postdata( $post ); ?>

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

 <?php echo get_the_time( 'F j, Y', get_the_ID() ); ?>

 <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail( 'single-post-thumbnail' ); ?>
 <?php the_excerpt(); ?>
 <?php endforeach; ?>

 <?php endwhile; ?> <?php if($add_sidebar) { ?>

 <?php dynamic_sidebar( $page_sidebar ); ?>

 <?php } ?>
 < !-- Zakończ główną treść -->

 <? php get_footer(); ?>


title: Jak zintegrować status bloga?

text: Chcę dodać „status” do mojego bloga Wordpress. Moja definicja statusu to fragment tekstu, który mówi coś o blogu, który można zmieniać codziennie lub nie zmieniać w ciągu miesiąca i całkowicie niezależnie od postów i stron na blogu. Na przykład w moim przypadku muszę dodać krótki opis miasta, którym jestem w podróży. Jakaś wtyczka lub coś podobnego, aby to zrobić? Uwaga: Widżet tekstowy nie jest opcją, ponieważ muszę kontrolować, gdzie umieścić te informacje, najlepiej poprzez wywołanie PHP


title: Uzyskaj permalink posta, z którym jest połączony załącznik

text: Jak uzyskać link bezpośredni do posta, do którego dołączony jest obraz załącznika?


title: Jak mogę dodać niestandardowe kategorie taksonomii do postów i stron?

text: Próbuję zbudować nową wtyczkę wordpress. Oprócz domyślnego pola kategorii wordpress na ekranie publikowania postów i stron, chcę dodać kolejne pole dla niestandardowych kategorii taksonomii. Jak to zrobić?


title: Problem z głębokością przy użyciu wp_list_pages do podnawigacji

text: Od jakiegoś czasu szukam rozwiązania mojego problemu i nie mogę go znaleźć. Stworzyłem podmenu używając następującego kodu z Kodeksu: <?php if($post->post_parent) { $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0"); $titlename = get_the_title($post->post_parent); } else { $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0"); $titlename = get_the_title($post->ID); } if ($children) { ?> <h2> <?php echo $titlenamer; ?> </h2> <ul> <?php echo $dzieci; ?> </ul> <?php } ?> Działało to dobrze, dopóki nie dodałem rodzeństwa do menu potomnego. Chcę, żeby menu działało w ten sposób: * Menu główne * * Podmenu (Dzieci) * * * Rodzeństwo Ale używając powyższego kodu, dostaję to (jak pokazano na tym obrazku http://www.inlusiondesign.dk/images/stories /wp_list_pages-problem.png): * Menu główne * * Podmenu (Dzieci) * * Rodzeństwo Jeśli mam kliknąć np. "Test 1" wszystko jest w porządku - przypuszczam, że to dlatego, że nie ma dzieci. Próbowałem użyć "głębokości = 2" w różnych miejscach, ale to nie zadziałało. Z góry dziękuję.


title: Uzyskaj terminy, które nie należą do aktualnego posta z krótkim kodem

text: Czy można pobrać wszystkie warunki niestandardowej taksonomii hierarchicznej, które _nie_ należą do bieżącego wpisu? Być może używając `wp_get_post_terms()`? Niedawno natknąłem się na tę niezwykłą potrzebę. Zasadniczo, jeśli moja niestandardowa taksonomia zawiera terminy (term1, termin2, termin3 itd.), chcę pokazać na stronie pojedynczego posta, że ten post należy do term1 i term2, ale nie do term3 itp. **EDYTUJ:** Jestem mając trudności z zaimplementowaniem tego w krótkim kodzie. Mam ten kod: add_shortcode( 'my-no-terms', 'no_terms_func' ); function no_terms_func() { $this_post_terms = get_the_terms( $post->ID, 'my-tax-slug' ); $ wykluczyć = wp_list_pluck ( $this_post_terms, 'term_id' ); $args = array( 'exclude' => $exclude, ); $terms = get_terms( 'moj-podatek-slug', $args ); foreach ( $terms as $term ) { return $term->name; } } Ale to wypisuje tylko pierwszy termin, a nie całą listę terminów. Gdzie jest winowajca?


title: Jak załadować wtyczkę JS w sekcji stopki motywu

text: Pracuję nad optymalizacją mojego motywu, aby można było skrócić czas ładowania, od teraz użyłem `wp_enqueue_script()`, aby dodać mój niestandardowy plik js i wszystko działa zgodnie z oczekiwaniami. Jedna rzecz, której nie jestem zbyt dobrze świadomy, to sposób, w jaki wtyczka podpina tam pliki js i css. Chcę zmusić wtyczkę do dodania tam plików java-script w sekcji stopki mojego motywu, obecnie są one ładowane w sekcji nagłówka. Czy ktoś może mi pomóc zrozumieć, jak można to zrobić (jeśli to możliwe).


title: Jak zmienić tytuł „Wstaw do posta” w przycisku multimediów?

text: Właściwie pytanie mówi wszystko. Zintegrowałem pole przesyłania multimediów ze stroną administratora, a przycisk z tekstem „Wstaw do posta” nie ma sensu. Raczej lubię to zmienić na coś w stylu „Użyj tego obrazu”. Ktoś ma wskazówkę, jak możesz to zrobić?


title: Jak połączyć się ze stroną wyświetlaną przez home.php?

text: Pracuję nad motywem, który używa front-page.php jako front-page.php i home.php do wyświetlania postów na blogu. To, czego nie mogę rozgryźć, to jak połączyć się ze stroną bloga, która jest wyświetlana z home.php. Oczywiście, jeśli ustawię konkretną stronę do wyświetlania postów na blogu na stronie z odczytami, mogę utworzyć link do tej strony, ale to nie rozwiązuje problemu. Potrzebuję sposobu na link do strony, na którą wskazuje ustawienie.


title: Jak zakolejkować jquery w adminie i dlaczego jeszcze go tam nie ma?

text: Dlaczego poniższe jquery nie działa? Za każdym razem idzie do „innego”. if ( is_admin() && $pagenow == 'theme-install.php' && $_GET['tab']=="upload"){ add_action('admin_print_scripts', 'theme_upgrade_alert'); funkcja theme_upgrade_alert(){ wp_enqueue_script('jquery'); echo ' <script type="text/javascript"> if(typeof jQuery!="undefined"){ jQuery.noConflict(); //jQuery(dokument).ready(funkcja(){ jQuery(".pomoc-instalacyjna").hide(); //}); } else { alert("Jeśli próbujesz zaktualizować aktualny motyw, musisz to zrobić za pomocą opcji motywu."); } </script>'; } }


title: nowe WP_query używające pól niestandardowych

text: Próbuję odpytywać posty podrzędne od dwóch rodziców (ta część działa dobrze), ... ale teraz chcę wykluczyć posty, które mają meta_key „feature” z meta_value „1” Używając referencji Codex, którą mam próbowałem to napisać na kilka sposobów, ale nie działało. Oto, co napisałem do tej pory, wydaje mi się, że jestem blisko, ale potrzebuję pomocy. Dziękuję Ci! <?php $argsthis = array( 'post_status' => 'publish', 'post_type' => 'strona', 'zamówienie' => 'DESC', 'posts_per_page' => '5', 'post_parent__in' => tablica (10,11), 'meta_query' => array( array( 'klucz' => 'cecha', 'wartość' => '1', 'porównaj' => '!=', ), ) ); ?> i spróbowałem po prostu (dokładnie taki sam wynik jak powyżej): <?php $argsthis = array( 'post_status' => 'publish', 'post_type' => 'page', 'order' => ' DESC', 'posts_per_page' => '5', 'post_parent__in' => array(10,11), 'meta_key' => 'feature', 'meta_value' => '1', 'meta_compare' => '!= ', ), ) ); ?>


title: Ukryj pulpit nawigacyjny przed użytkownikami niebędącymi administratorami

text: Czy można całkowicie ukryć panel przed użytkownikami bez uprawnień administracyjnych i dać im dostęp tylko do strony Nowy post i edycji postów? Dziękuję.


title: Uzyskać identyfikatory stron na podstawie szablonu, którego używają?

text: Mam sytuację, w której muszę podać listę rozwijaną stron w widgecie, na podstawie tego, czy korzystają z określonego szablonu. Innymi słowy, dla wszystkich stron korzystających z szablonu 'Foo' uzyskaj identyfikator posta. Zakodowałem resztę widżetu, ale używam pola wejściowego do wpisania identyfikatora strony (co może sprawić bałagan w przypadku nietechnicznych użytkowników, którzy muszą znaleźć identyfikator strony do użycia) - zdecydowanie wolałbym podać zaznacz pole z tytułem stron korzystających z określonego szablonu. Próbowałem uzyskać obiekt WP_Query za pomocą tego: $the_query = new WP_Query(array( 'meta_key' => '_wp_page_template', 'meta_value' => 'templates/_partner.php')); Wartość meta jest poprawna (odpowiada 2 wpisom w bazie danych), ale nie otrzymuję żadnych wyników na stronie widżetów. Pole wyboru jest puste. Czy nie możesz wywołać WP_Query z widżetu, czy muszę szukać tego rozwiązania gdzie indziej? **UPDATE** Sprawdziłem żądanie $the_query-> dla SQL, które to uruchamia i nie zwraca żadnych wierszy. Okazuje się, że w zapytaniu brakowało 'post_type' => 'strona'.


title: Wywołaj dynamiczny pasek boczny według nazwy, a nie identyfikatora

text: Czy istnieje sposób na wywołanie dynamicznego paska bocznego według nazwy, a nie identyfikatora. Coś takiego: $postName = get_the_category(); dynamic_sidebar($postName->category_nicename . '_sidebar') ;


title: Korzystanie z kalendarza i strony nie pokazuje kalendarza na następny lub poprzedni rok

text: Utworzyłem stronę o nazwie mojawitryna i mam permalink jako /XXX/wordpress/mojastrona  Na tej stronie tworzę kalendarz. Kalendarz działa trochę dziwnie. Działa na bieżący rok, ale po kliknięciu przycisku następnego lub poprzedniego, gdy tylko przełączy się na następny lub poprzedni rok, kalendarz znika i wyświetla następującą (nie znaleziono domyślnej strony) komunikat „Cóż, to trochę zawstydzające, prawda? " Działa dobrze z domyślnym permalinkiem, ale nie z niestandardową strukturą kalendarz permalink jest tworzony za pomocą następującego kodu CSS:  SKRYPT:


title: Rzeczywiste komentarze się nie wyświetlają, ale forma tak?

text:
Zmodyfikowałem formularz komentarzy, aby usunąć kilka pól i teraz zatwierdzone komentarze nie pojawiają się, tylko sam formularz. Czego mi w tym brakuje? <?php $comment_args = array( 'fields' => apply_filters( 'comment_form_default_fields', array( 'autor' => '
' . ' ' . __( 'Name_' . ' ' . ( $req ? '*' : '' ). '<input id="autor" name= "autor" type="tekst" value="' .esc_attr( $komentarz['comment_author']) '" size="30"' . $aria_req . ' />' . '
', 'url' => '' ) ), 'comment_field' => '
' . '' . __( '' ) . '' . '<textarea id="comment" name="comment" cols="45" rows="8" aria-required="true"> </textarea>' . '
', 'comment_notes_after' => '', 'title_reply' => 'Pozostaw C oment', 'comment_notes_before' => '', ); formularz_komentarza( $argument_komentarza ); ?> Brak śladu na liście komentarzy? Nawet dodanie wp_list_comments nie działa. Kto może pomóc, wielkie dzięki?


title: Importowanie starego bloga ze zwykłymi postami do nowych niestandardowych typów postów

text: Mam 2 starsze instalacje bloga WP ze zwykłymi postami, które chciałbym przenieść na nowy blog. Jedna ze starszych instalacji jest przeznaczona dla postów „news”, a druga dla postów „blog” (wiem, że to nie był najlepszy sposób na ustawienie rzeczy). W moim nowym blogu utworzyłem dwa niestandardowe typy postów („wiadomości” i „blog”) i chciałbym zaimportować te dwie starsze instalacje do odpowiednich typów postów mojej nowej instalacji. Czy istnieje automatyczny sposób na zrobienie tego (być może wtyczka), który uchroniłby mnie przed ręcznym ponownym wprowadzaniem wszystkich tych postów? Zakładam, że po prostu zaimportowanie ich nie pozwoli mi oznaczyć ich jako niestandardowego typu postu, a zamiast tego spowoduje, że będą to posty ogólne. Dziękuję Ci! Jake


title: Całkowite wyłączenie widżetów

text: Jak całkowicie usunąć obsługę widżetów z motywu/wtyczki? Podobnie jak usunięcie _wygląd -> strona widżetów_ i uniemożliwienie WP ładowania klas widżetów i wszystkich rzeczy związanych z widżetami.


title: Nie można wyświetlić wielu typów postów w tym samym zapytaniu (WPML WP_Query)

text: Jestem pewien, że jest na to bardzo łatwe wytłumaczenie, ale utknąłem. Próbuję tylko umieścić ładny, prosty element ostatnich postów na pierwszej stronie witryny i z jakiegoś powodu próbuję użyć: $args = array( 'post_type' => array('post','recipes' ), 'posts_per_page' => 4 ); zapytanie_posty( $args ); if ( have_posts() ): while ( have_posts() ): the_post(); ?> ... koniec; wp_reset_postdata(); nie pokaże przepisów. Dziwne jest to, że jeśli wywołam „post” i „strona”, wyświetli oba, ale jak tylko dodam „przepisy”, wyświetla tylko pierwszy żądany typ, który nie jest przepisami. Czy brakuje mi tu czegoś łatwego? Edycja: Zaktualizowano o instancję WP_Query zamiast query_posts, nadal nie działa. $argz= array( 'post_type' => array('post','recipes'), 'posts_per_page' => 4 ); $my_query = nowe WP_Query($argz); Nadal nie działa. Nadal zwraca poprawną var zapytania i wszystko, ale nie wyświetla obu typów postów.


title: Wyklucz posty według wartości meta postu

text: Skonstruowałem to zapytanie, aby sortować posty na stronie głównej według ustawionego numeru pozycji w polu niestandardowym. Muszę jednak mieć możliwość wykluczania postów z pozycją ustawioną na „0”. Poniżej znajduje się kod działający w celu sortowania elementów, ale nie mogę uzyskać nic do pracy z wyjątkiem postów. <?php query_posts('meta_key=home_post_id&orderby=meta_value_num&order=DESC'); ?>


title: Dlaczego wp_redirect() jest lepsze niż standardowe przekierowanie nagłówka PHP?

text: Zadając pytanie o hooki i przekierowania, doradzono mi użycie wp_redirect w miejsce funkcji nagłówka PHP. Zastanawiasz się tylko, dlaczego wp_redirect jest preferowane?


title: jak zastąpić osadzone "pełne" obrazy w poście na "duże"?

text: Istnieją setki postów z obrazami w pełnym rozmiarze **już opublikowanymi** w treści posta. Współtwórcy bloga przesłali bardzo duże pliki graficzne (niektóre o szerokości 3000px), zgodnie z projektem zostały one dopasowane do szerokości CSS: 100% i wysokości: 100%, więc nikt nie mógł tego zauważyć z interfejsu, dopóki nie zacząłem badać czasów ładowania strony. Obrazy wewnątrz postów mają również formatowanie redakcyjne. Jak ".align-right" itp. Potrzebuję techniki, aby zastąpić je pełnowymiarowymi obrazami dużymi. Niektóre metody: * Pobierz wszystkie posty * zawartość regex i znajdź tagi obrazów * spróbuj znaleźć identyfikatory obrazów z nazw plików * zastąp zawartość postów pełnymi adresami URL obrazów * zaktualizuj post Co o tym sądzisz? Czy jest łatwiejszy sposób na wykonanie tego zadania? Dziękuję Ci.


title: Zapytanie niestandardowe, wiele kluczy niestandardowych

text: Potrzebuję postów, które mają dwie meta-wartości. Próbował następującego kodu, ale otrzymuje pusty wynik <?php $featuredquery = " SELECT wposts.* FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta WHERE wposts.ID = wpostmeta.post_id AND (wpostmeta.meta_key = 'article_level' AND wpostmeta.meta_value = 'Hovedsak') AND (wpostmeta.meta_key = 'article_genre' AND wpostmeta.meta_value = 'X6.no (Spill i underholding)') AND wposts.post_status = 'publish' AND wposts.post_type = 'post' AND wposts.post_date < TERAZ() ORDER BY wposts.post_date LIMIT ZAPISU 0 , 4 "; $featuredposts = $wpdb->get_results($featuredquery, OBJECT); ?> Jakieś pomysły na to? Próbowałem poszukać, ale nie znalazłem niczego, co by mi odpowiadało.. :/ Dzięki za wszelką pomoc


title: Nie można zastosować motywu do instalacji witryny sieciowej WordPress

text: Używam media temple ze świeżą instalacją WordPressa w trybie sieciowym. **Z wyłączonymi subdomenami.** define( 'SUBDOMAIN_INSTALL', false ); Śledziłem konfigurację *wildcard w Media Temple (nie żeby to miało znaczenie) i odkryłem, że kiedy tworzę nową witrynę, nic nie działa poza wyświetlaniem bardzo podstawowej strony. Jakieś pomysły, co by to spowodowało? http://shallbetterdesigns.com/test/


title: Czy można ustawić/zastąpić domyślny link_autora_postów do nazwy logowania?

text: link_autora_postów jest bardzo przydatny. Ale czy teraz w WordPressie można ustawić/edytować domyślną nazwę wyświetlaną dla wszystkich nowych autorów? (Wiem, że możesz ręcznie edytować według autora). Chciałbym, żeby to był user_login, a potem mogę po prostu wywołać link do_autora_postów_link.


title: Otwórz pierwszy link w podnawigacji po kliknięciu górnej nawigacji

text: Na przykład: Mam pozycję menu o nazwie Jedzenie, która zawiera 2 pozycje podrzędnej nawigacji, pizzę i makaron. Chcę, żeby po kliknięciu na jedzenie automatycznie łączyło się z pizzą (pierwszy element podnawigacji). Przykład: http://anpsthemes.com/demo/?theme=juicy Tam możesz zobaczyć, że pozycja: strony automatycznie łączy się z O nas. Masz pomysł, jak to zrobić? Dziękuję


title: Kilka pętli w wynikach wyszukiwania

text:
Po wyszukiwaniu chciałbym użyć dwóch pętli w wynikach. Przede wszystkim rozpoczynam pętlę, jeśli jest wynik <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> i po pętli, aby wyświetlić artykuły należące do kategorii <?php $cats = get_categories(); foreach ($cats as $cat) { query_posts('cat='.$cat->cat_ID); ?>
<?php echo $cat->nazwa_kota; ?>

 <?php while (have_posts()) : the_post(); ?>
<?php the_title(); ?>
 <?php endwhile; ?>
 <?php } ?> Ale wygląda na to, że wyświetla wszystkie artykuły lub tworzy nieskończoną pętlę i nie pasuje do żądania złożonego na początku. **EDYTUJ :** Na tej stronie wyników uporządkowałbym według kategorii. Na przykład, jeśli mam cztery artykuły z tej samej kategorii, wyświetla się tylko raz nazwa kategorii. **Category_name_1** * Pierwszy artykuł * Drugi artykuł * Trzeci artykuł **Category_name_2** * Pierwszy artykuł


title: Problemy z dostępnością z rozwijanymi menu w dwudziestu dziesięciu motywach lub innych

text: Jakiś czas temu odkryłem, że rozwijane menu, które mają klikalne linki na węzłach nadrzędnych, są mylące dla użytkowników. Często nie widzą, że mogą kliknąć rodzica, po prostu zakładają, że rodzic jest jak folder. Sprawdź demo z http://2010dev.wordpress.com/ - zobacz drugą pozycję menu, nazwaną "strona nadrzędna". Można to kliknąć, ale dla wielu osób może to nie być tak oczywiste. Takie podejście powoduje również pewne problemy z urządzeniami dotykowymi, w przypadku których kliknięcie elementu podmenu może być niemożliwe lub trudne. Chciałbym zobaczyć rozwiązanie tego problemu, ale nie takie, które wymagałoby ode mnie pełnej zmiany motywu.


title: PHP/ręczne użycie obrazów? - 2 pytania

text:
Zrobiłem szybki skrypt/stronę PHP, która używa funkcji wp_insert_post() do bezpośredniego wstawiania postu. I to działa świetnie. Post, który ręcznie dodaję, zawiera obraz, więc najpierw ręcznie/programowo przesyłam obraz do odpowiedniego folderu „/uploads/”, w którym zapisywane są wszystkie moje obrazy postów (swoją drogą nie używam podkatalogów rok/miesiąc). Treść posta zawiera normalny tekst oraz niezbędny kod HTML, aby wskazać obraz, np.
To jest ręcznie utworzony post na moim blogu. Poniżej tej linii tekstu powinien znajdować się obraz. Dziękujemy za odwiedziny.
  Post wygląda dobrze (wraz z obrazem). Ale moje 2 problemy to: 1) Obraz, który przesłałem, nie znajduje się w Bibliotece multimediów, Jak mogę go tam dostać? 2) Chciałbym dodać „polecany obraz/miniaturę” do tego samego obrazu, ale nie wiem, jaka funkcja jest używana do wykonania tego połączenia? Miałem nadzieję znaleźć funkcję na wzór insert_featured_thumbnail("/wp-content/uploads/image.jpg", $pid) Czy ktoś ma jakieś pomysły? Z góry dziękuję. WizzKidd


title: Gdzie jest kod, który ustawia obraz tła w motywie TwentyTen?

text: Opracowuję motyw dla mojego bloga, używając dwudziestu dziesięciu jako punktu wyjścia. Teraz próbuję zrozumieć, jak zarządza obrazem tła, który można ustawić w opcjach motywu, ale nie udało mi się znaleźć kodu. Czy możesz pomóc dowiedzieć się, gdzie jest ta implementacja?


title: Tytuł witryny pojawia się dwukrotnie w aktywnej witrynie

text: Plik header.php mojego szablonu witryny ma następującą treść: `<title><?php wp_title ( '|', true, 'right' ); ?></title>` Dlaczego tytuł witryny jest wyświetlany dwukrotnie na każdej stronie?


title: Dodać link do wylogowania po zalogowaniu, czy zniknąć po wylogowaniu?

text:
Staram się wyświetlić link do wylogowania, gdy użytkownicy są zalogowani i sprawić, by zniknął, gdy nie są zalogowani. Kod, który mam do tej pory działa na linki logowania i rejestracji dzięki wtyczce, którą zainstalowałem, więc 'zaloguj się' a 'rejestracja' znika w porządku, teraz potrzebuję pomocy przy wylogowaniu... Oto kod:
 <?php if ( is_user_logged_in() ) { $user = wp_get_current_user(); echo 'Witaj '.$user->display_name.'! '; } else { ?> Zarejestruj się lub <?php } wp_loginout( get_permalink( ) ); ?>


title: Chcę zmienić katalog główny mojej witryny

text: Witam Mam witrynę wordpress, która ma adres URL pod jakimś adresem IP. Teraz co chcę zrobić, zmienić adres URL. Zamiast http://"Mój adres IP", chcę, aby był to http://"Mój adres IP"/wordpress. zamiast tego. Czy jest na to sposób w wordpressie? Mój folder z dokumentami nazywa się wordpress. Jest przechowywany w folderze /var/www/


title: Jak wyszukiwać w polu niestandardowym?

text: Mam niestandardowy typ posta o nazwie LAW. LAW ma trzy pola niestandardowe: LAW_DATE, LAW_TEXT i LAW_AUTHOR. Chcę utworzyć stronę wyszukiwania, która pozwoli mi niezależnie przeszukiwać każde z tych pól niestandardowych. Tj. różne kryteria dla każdego pola, połączone ze sobą i/lub ze sobą. Dziękuję.


title: Posty wielostronicowe: podkatalog dla każdego posta?

text: Używam Wordpressa jako CMS i chciałbym dodać stronę „Dowiedz się więcej” do każdego posta, który jest tworzony w ramach określonej kategorii. Na przykład, gdy tworzony jest http://www.mojawitryna.com/cat/slug, chciałbym również utworzyć http://www.mojawitryna.com/cat/slug/learn-more. Najlepiej byłoby, gdyby ta strona „Dowiedz się więcej” działała w układzie szablonu, który utworzyłbym, a jej zawartość zostałaby wypełniona niestandardowym polem w głównym poście. Czy to w ogóle możliwe? Czy jest dostępna wtyczka, która pozwoli mi to osiągnąć? Dzięki, Ben


title: Modyfikowanie funkcji WP_LIST_AUTHOR do wyświetlania wszystkich użytkowników w siatce (i Paginate)

text:
Tytuł mówi wszystko. Biorę WP_LIST_AUTHOR i modyfikuję go, aby utworzyć więcej katalogu członków niż tylko listę autorów, pozostawiając wiele oryginalnych opcji nienaruszonych (i zamierzam dodać więcej w dalszej kolejności). Moim pierwszym zadaniem było wbudowanie w niego paginacji, co udało mi się z powodzeniem (kod poniżej) [choć jeszcze nie jest zbyt ładna]. Teraz chcę, aby te informacje utworzyły tabele (prawdopodobnie 15 wyników na stronę, w siatce 3x5. Wiersz - komórka komórki Wiersz - komórka komórki itp.). Nie jestem do końca pewien, jak najlepiej to zrobić, a nawet jeśli można to zrobić przy obecnym sposobie konstruowania kodu, wszelkie porady lub powiązane zasoby byłyby bardzo mile widziane! Tak naprawdę tylko sieję razem ;) Uwaga; strona korzysta z wtyczki s2member i żaden kod nie będzie musiał zepsuć tej funkcjonalności. <?php /////////////////////// ///// SEKSOWNY CZAS ///// //////////// /////////// /** * NIESTANDARDOWE FUNKCJE DUIWEL * Bierzemy zwykłą listę_autorów_wp i zmuszamy, aby zawsze wyświetlała wszystkich * autorów, a także miała paginację i lepszy format * * To jest moja pierwsza próba hakowania Wordpress, takiego jak ten * * 28.05.2011 * * Większość oryginalnego tekstu funkcyjnego pozostawiłem nienaruszone, w tym komentarze poniżej * * Użyłem dużo kodu z Crayon Violent w PHPFREAKS * http: //www.phpfreaks.com/tutorial/basic-pagination * Większość jego/jej komentarzy pozostaje nienaruszona * */ //ORYGINALNE KOMENTARZE WP dla wp_list_authors /** * Lista wszystkich autorów bloga, z kilkoma dostępnymi opcjami. * *
 *
optioncount (boolean) (false): Pokaż liczbę w nawiasie obok * nazwiska autora.
 *
exclude_admin (boolean) (true): Wyklucz „admin” użytkownika, który jest * instalowany domyślnie.
 *
show_fullname (boolean) (false): Pokaż ich pełne imiona.
 *
hide_empty (boolean) (true): nie pokazuj autorów bez dowolne posty.
 *
feed (string) (''): Jeśli nie jest pusty, pokaż linki do kanałów autora.
 *
feed_image (string) (''): Jeśli nie jest pusty, użyj tego obrazu, aby połączyć * kanały.
 *
echo (boolean) (prawda): Ustaw na false, aby zwrócić dane wyjściowe, zamiast * echa.
 *
style (string) ('list'): Czy wyświetlać listę autorów w postaci listy * czy jako ciąg znaków.
 *
html (bool) (true): Czy wyświetlać elementy w postaci html lub zwykły tekst. *
 *
 * * @link http://codex.wordpress.org/Template_Tags/wp_list_authors * @od 1.2.0 * @param array $args Tablica argumentów. * @return null|string Dane wyjściowe, jeśli echo jest ustawione na false. */ // FUNKCJA funkcja duiwel_custom_list_users($args = '') { global $wpdb; // HIDE_EMPTY ORYGINALNIE TRUE, teraz FALSE $defaults = array( 'orderby' => 'name', 'order' => 'ASC', 'number' => '', 'optioncount' => false, 'exclude_admin' = > true, 'show_fullname' => false, 'hide_empty' => false, 'feed' => 'feed', 'feed_image' => '', 'feed_type' => 'rss2', 'echo' => true, 'style' => 'lista', 'html' => prawda ); $args = wp_parse_args($args, $defaults); ekstrakt( $args, EXTR_SKIP ); $return = ''; $query_args = wp_array_slice_assoc( $args, array( 'orderby', 'order', 'number' ) ); $query_args['fields'] = 'id'; $autorzy = get_users( $query_args ); // FYI To jest liczba postów każdego autora, a nie całkowita liczba autorów $author_count = array(); foreach ( (tablica) $wpdb->get_results("SELECT DISTINCT post_author, COUNT(ID) AS count FROM $wpdb->posts WHERE post_type = 'post' AND ". get_private_posts_cap_sql('post') . "GRUPA WG post_autora") as $row ) $author_count[$row->post_author] = $row->count; // trzeba tutaj policzyć 'autorów' $totalusers = count($authors); /////////////////////////////////// PAGINACJA ///////////// ///////////////////////////// $numrows = $totalusers; // liczba wierszy do wyświetlenia na stronie $rowsperpage = 10; // sprawdź całkowitą liczbę stron $totalpages = ceil($numrows / $rowsperpage); // pobierz bieżącą stronę lub ustaw wartość domyślną if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) { // rzutuj var jako int $currentpage = (int) $_GET[ 'bieżąca strona']; } else { // numer strony domyślnej $bieżąca strona = 1; } // koniec if // jeśli bieżąca strona jest większa niż całkowita liczba stron... if ($currentpage > $totalpages) { // ustaw bieżącą stronę jako ostatnią $currentpage = $totalpages; } // koniec if // jeśli bieżąca strona jest mniejsza niż pierwsza strona... if ($bieżąca strona < 1) { // ustaw bieżącą stronę na pierwszą stronę $bieżąca strona = 1; } // koniec jeśli // przesunięcie listy na podstawie bieżącej strony $offset = ($currentpage - 1) * $rowsperpage; ///////////////////////////// ////// KONIEC PAGINACJI //////// //// ///////////////////////////////////////////////// ////////////////// ////// PAGINACJA WEDŁUG TABLICY /////// ////////////// /////////////////////////////Muszę pobrać funkcję SQL LIMIT ze znalezionego kodu paginacji //i włączyć ją do używam tablic, ponieważ w rzeczywistości // nie odpytuję tabeli SQL, pytam o tablicę $pagination_user_table = $authors; $paged_authors = array_slice( $pagination_user_table , $offset , $rowsperpage ); ////////////////////////////////////////////// START NORMALNIE WP_LIST_AUTHOR //////// /////////////////////////////////////// / foreach ( $paged_authors jako $author_id ) { $author = get_userdata( $author_id ); if ( $exclude_admin && 'admin' == $author->display_name ) kontynuuj; $posts = isset( $author_count[$author->ID] ) ? $author_count[$author->ID] : 0; if ( !$posts && $hide_empty ) kontynuuj; $link = ''; if ( $show_fullname && $author->first_name && $author->last_name ) $name = "$author->first_name $author->last_name"; else $name = $author->display_name; if ( !$html ) { $return .= $nazwa . ', '; kontynuować; // Nie ma potrzeby dalszego przetwarzania kodu HTML. } if ( 'list' == $style ) { $return .= '
'; } //niektóre dodatkowe rzeczy awatara $avatar = 'wavatar'; $link = get_avatar($author->user_email, '80', $avatar); $link .= '
' . ' ID, $author->user_nicename ) '" title="' .esc_attr( sprintf(__("Posty autorstwa %s"), $author->display_name) ) '">' . $nazwa . ''; if ( !empty( $feed_image ) || !empty( $feed ) ) { $link .= ' '; if ( empty( $feed_image ) ) { //Łamanie wiersza dla formatowania RSS (głównie testowanie) $link .= '
('; } $link .= ' ID ). '"'; $alt = $title = ''; if ( !empty( $feed ) ) { $title = 'title="' .esc_attr( $feed ). '"'; $alt = 'alt ="' . esc_attr( $feed ). '"'; $name = $feed; $link .= $title; } $link .= '>'; if ( !empty( $feed_image ) ) $link .= ' '; w przeciwnym razie $link .= $name; $link .= ''; if ( pusty( $feed_image ) ) $link .= ')'; } if ( $optioncount ) $link .= ' ('. $posts . ')'; $zwrot .= $link; $return .= ( 'list' == $style ) ? '
' : ', '; } $return = rtrim($return, ', '); if ( !$echo ) return $return; echo $return; /////////////////////////////////////// ////// KONIEC WP_LIST_AUTHOR NORMALNY //////             /////////////////////////////////////////              // mały spacer echo "

"; ///////////////////////////// ////// PAGINACJE ////// ////// //////////////////////// /****** zbuduj linki stronicowania ******/ // zakres num linków do pokazania $zakres = 3; // jeśli nie na stronie 1, nie pokazuj linków wstecz if ($currentpage > 1) { // pokaż << link do powrotu do strony 1 echo " < "; // pobierz numer poprzedniej strony $poprzednia strona = $bieżąca strona - 1; // pokaż < link, aby wrócić do 1 strony echo " < "; } // koniec jeśli // pętla wyświetlająca linki do zakresu stron wokół bieżącej strony dla ($x = ($bieżącastrona - $zakres); $x < (($bieżącastrona + $zakres) + 1); $x++) { // jeśli to poprawny numer strony... if (($x > 0) && ($x <= $totalpages)) { // jeśli jesteśmy na bieżącej stronie... if ($x == $currentpages) ) { // 'podświetl' to, ale nie twórz linku echo " [$x] "; // jeśli nie bieżąca strona... } else { // zrób link echo " $x "; } // end else } // end if } // end for // if nie na ostatniej stronie, pokaż linki do przodu i do ostatniej strony if ($currentpage != $totalpages) { // pobierz następną stronę $nextpage = $currentpage + 1; // echo link do następnej strony echo " > "; // echo link do przodu dla ostatniej strony echo " >> "; } // zakończ jeśli /****** zakończ tworzenie linków do stronicowania ******/ /////////////////////////// /////// ////// ZAKOŃCZ LINKI PAGINACJI ////// ////////////////////////// ////// } ////////////////////////// ///// KONIEC SEXY CZAS ///// /// //////////////////////// ?>

 <?php duiwel_custom_list_users() ?>


title: Potrzebujesz motywu, który pozwalałby na rozciągnięcie publikowanej treści na maksymalną szerokość

text: (Proszę zauważyć, że NIE pytam o wordpress.org, ale o **wordpress.com** ) Właśnie opublikowałem nowy wpis, ale mój obecny motyw ma ustaloną szerokość, co sprawia, że mój post staje się _buggy_ i na pewno ja i czytelnicy to zrobią” bardzo mi się podoba! Tak więc szukam innego motywu, który ma zmaksymalizowaną szerokość treści. Jeśli znasz jakieś, udostępnij! Dziękuję Ci!


title: Czy WP Super Cache naprawdę kompresuje moje strony?

text: Włączyłem opcję kompresji w WP Super Cache (domyślnie wyłączone!) na moim blogu. Następnie Optymalizacja witryny zaczęła identyfikować moje strony jako skompresowane (wcześniej tak się nie stało). Wszystko wydawało się w porządku ze światem, ale potem dwukrotnie sprawdziłem wtyczkę Page Speed Firefox i wywęszyłem ruch za pomocą Wireshark, i zgodnie z obydwoma tymi pomiarami moja strona nie jest skompresowana. Czy moje strony są kompresowane, czy nie? Czy to może być jakiś serwer proxy, na którym działa mój dostawca usług internetowych, który nie obsługuje kompresji? (to by wyjaśniało niektóre okropne doświadczenia internetowe, które otrzymuję). Oto nagłówki HTTP, które widzę w Wireshark.


title: Czy istnieje wbudowana funkcja, aby sprawdzić, czy adres URL jest zgodny z oEmbed?

text: Chcę móc wziąć adres URL i sprawdzić, czy domena jest jedną z tych, które Wordpress obsługuje, aby dodawać osadzania za pośrednictwem oEmbed. Czy jest wbudowana funkcja, która robi to w WordPressie, czy muszę stworzyć własną? Przykład: jeśli mam adres URL z witryny wideo, chcę mieć możliwość zbadania adresu URL i stwierdzenia, czy domena jest obsługiwana przez WordPress do wykorzystania do osadzenia jako wideo.


title: Czy istnieje prosty sposób na przeniesienie wp_admin_bar do mojej własnej lokalizacji?

text: Chcę usunąć pasek administratora z górnej części strony i umieścić go w niestandardowej lokalizacji w moim motywie. Pytanie: 1. Jak nazwałbym wp_admin_bar() wewnątrz niestandardowego div. Musiałbym również usunąć wbudowany css, abym mógł zastosować własny. *Mam już filtr do wykonania tej części. Powody: Mój motyw jest budowany tak, aby był przyjazny dla iPada/iPhone'a. Chcę, aby pasek administratora był „na stałe” u góry ekranu. Problem polega na tym, że mobilne safari nie akceptuje pozycji position:fixed, co wymaga obejścia js, które już rozwiązałem. Mój motyw ma już ustalony nagłówek, który jest gotowy na iPada. Jeśli mogę wywołać wp_admin_bar() i umieścić go w tym „specjalnym” div, problem zostanie rozwiązany. *dzięki innym osobom pomagającym mi na tym forum, udało mi się umieścić wbudowane wp_menu() w admin bar, co jest naprawdę fajne. Dzięki tej funkcjonalności dodanej do paska administracyjnego mam teraz naprawdę niesamowity pasek nawigacyjny, łącząc jego wbudowaną funkcjonalność z niestandardowymi menu.


title: Jak powiązać niestandardowy typ posta z innym za pomocą taksonomii lub zapisania identyfikatora w polu niestandardowym?

text: Pracuję nad omawianym tutaj problemem: Typy komentarzy niestandardowych, ale potrzebuję więcej wskazówek, aby zmapować ten proces. Chcę tworzyć niestandardowe typy postów i powiązania między pytaniami i odpowiedziami oraz pin-upami i krytykami. Myślę, że chcę to zrobić, ponieważ chcę mieć możliwość archiwizowania i tworzenia kanałów dla odpowiedzi i krytyki oddzielnie od komentarzy do postów. Na przykład dla danego autora/użytkownika strona główna chcę mieć możliwość wylistowania postawionych pytań, odpowiedzi podane, praca przypięta do komentarza i wykonana krytyka. Odpowiedź zawierałaby tytuł pytania, którego dotyczy. To raczej na marginesie, ale wyobrażam sobie rolę / możliwość komentowania każdego niestandardowego typu postu (pytanie, odpowiedź itp. ala Quora i Stack Exchange). Komentarz odnosił się do 2 opcji: używania niestandardowej taksonomii i przechowywania identyfikatora w polu niestandardowym. Uczę się samodzielnie, więc każda dodatkowa pomoc jest mile widziana.


title: Jak uzyskać niestandardowy typ postu nazwa_menu?

text: Chciałbym pokazać typ posta posta, możesz to zrobić za pomocą get_post_type(), ale w moim przypadku nazwy nie są ładne (np. p_project_plans). Więc zamiast tego pomyślałem, że pokażę powiązane "menu_name" (jak zadeklarowano w register_post_type), który wygląda znacznie ładniej (np. Plany projektów). Czy jest na to sposób?


title: haki i filtry oraz zmienne

text:
Aktualizowałem przykład strony kodu dla haków akcji, bawiąc się, aby wykonać kilka funkcji wielokrotnego użytku (pierwotnie dla niektórych Q tutaj @WA). Ale potem natknąłem się na problem, którego wcześniej nie byłem świadomy: po zaczepieniu do funkcji w celu zmodyfikowania wyjścia zmiennej, nie mogę już zdecydować, czy chcę powtórzyć wynik, czy po prostu go zwrócić. **Problem:** Mogę modyfikować zmienne, które przekazuję do haka `do_action` za pomocą funkcji zwrotnej. Wszystko, co modyfikuję/dodaję za pomocą zmiennej, jest dostępne tylko w funkcji zwrotnej, ale nie po wywołaniu `do_action` wewnątrz oryginalnej funkcji. _DLA TWOJEJ PRZYJEMNOŚCI:_ Przerobiłem to na działający przykład, więc możesz po prostu skopiować/wkleić go w jakimś pliku `functions.php` i zobaczyć/przetestować problem bez żadnego wysiłku. ## Przykład: ### Funkcja obsługi danych To jest handle_data_fn. Nieco przesadnie udokumentowane, ponieważ powinno służyć jako przewodnik po parsowaniu i łączeniu wartości domyślnych z innymi argumentami. Możesz zobaczyć problem na końcu funkcji zaraz po wywołaniu do_action(). /** * Funkcja „globalnego” uchwytu danych * * Ta funkcja może służyć wielu różnym celom. * W tym scalanie wartości db z wpisu opcji z argumentami wejściowymi. * * Zgłasza w pełni możliwy do przetłumaczenia błąd, jeśli nie podano nazwy opcji bazy danych. * Informuje, z którego pliku został wyzwolony błąd i w którym wierszu należy go przeszukać. * Informuje również o nazwie "hook_data_handle_$args['UID']" haka akcji, w którym wystąpił błąd. * * Użycie zewnętrznych wywołań funkcji w kolejności ich pojawienia się w funkcji: * @uses: isset() - @link: http://php.net/manual/en/function.isset.php * @uses: wp_die( ) - @link: http://codex.wordpress.org/Function_Reference/wp_die * @uses: printf() - @link: http://php.net/manual/en/function.printf.php * @uses: _e() - @link: http://codex.wordpress.org/Function_Reference/_e (funkcja i18n) * @uses: apply_filters() - @link: http://codex.wordpress.org/Function_Reference/apply_filters * @ używa: wp_parse_args() - @link: http://codex.wordpress.org/Function_Reference/wp_parse_args * @uses: extract() - @link: http://php.net/manual/en/function.extract.php * @uses: get_option() - @link: http://codex.wordpress.org/Function_Reference/get_option * @uses: do_action() - @link: http://codex.wordpress.org/Function_Reference/do_action * @ używa: return - @link: http://php.n et/manual/en/function.return.php * * @param: (tablica) mieszane $args | tablica argumentów - `$args['UID']` jest zawsze koniecznością * @param: $database | true jeśli chcesz pobrać i zmodyfikować jakąś opcję db - `$args['name']` to musi być * @param: $output | wynik funkcji - @internal: nie powinien być ustawiany */ function handle_data_fn( $args = array() ) { // przerwij jeśli nie mamy jakiegoś unikalnego identyfikatora jako argumentu if ( !isset( $args['UID' ]) )                 zwrócić; // Błąd wyzwalania, jeśli opcja powinna zostać pobrana z bazy danych, // ale nie podano nazwy opcji if ( !isset( $args['name'] ) ) wp_die( printf( _e( 'Musisz określić nazwę " wpisu bazy danych jako argumentu wewnątrz handle_data_fn w punkcie zaczepienia akcji: %1$s.'."\n". 'Błąd wywołany wewnątrz: nazwa pliku %2$s (numer wiersza %3$s)' ) ,'jakaś_domena_tekstowa' ), 'hook_data_handle_'.$args['UID'].'`' ,__PLIK__ ,__LINE__ ); // skonfiguruj domyślne argumenty $defaults = ( array( 'UID' => null // DB/css: #id | używane do identyfikacji danych w bazie danych - $name[$ID] - może być również użyte jako css #id ,'name' => null // nazwa pola DB, powinna być stałą, gdy wywołane jest fn get - tylko tutaj dla kompletności, niepotrzebne ,'args' => array( // $arguments, które funkcja może obsłużyć - wstaw domyślne argumenty tutaj jako dane tablicy // 'classes' => null // css: .class - example ) ,'output' => '' ,'echo' => false // jeśli chcesz wyświetlić wynik lub po prostu go zapisać w var do późniejszej modyfikacji ) ); // filtruj wartości domyślne $defaults = apply_filters( 'filter_defaults_'.$args['UID'], $defaults ); // połącz wartości domyślne z argumentami wejściowymi $args = wp_parse_args( $args, $defaults ); ekstrakt( $args, EXTR_SKIP ); // na wypadek, gdybyś chciał ponownie wywołać funkcję globalną, // ale z jakiegoś powodu musisz zmodyfikować połączony wynik wartości domyślnych i argumentów $args = apply_filters( 'filter_args_'.$args['UID'], $args ); // pobierz opcję bazy danych if ( isset( $args['name'] ) ) $options = get_option( $args['name'] ); # >>> zacznij budować $wyjście // jeśli prawda, wyświetl $wyjście if ( isset( $args['echo'] ) ) { if ( $args['echo'] === true ) { // zrób coś tutaj - twoim argumentem jest początkowa tablica do_action( 'hook_data_handle_'.$args['UID'], $args, $options ); // Testuj dane wyjściowe wewnątrz handle_fn: echo '
Z wnętrza handle_fn: '; print_r($args); echo '
'; zwrócić; } } // w przeciwnym razie po prostu zwróć $output // JAK MOGĘ NIE ECHO TUTAJ DANYCH. // ZAPISYWANIE do_action return WARTOŚĆ NIE DZIAŁA. // ŻADEN TYLKO NIE Zwraca GO WEWNĄTRZ WYWOŁANIA ZWROTNEGO FN 'modify_args_fn' PONIŻEJ do_action( 'hook_data_handle_'.$args['UID'], $args, $options ); zwrócić; # <<< end building $output } ### Funkcje zwrotne Służą do a) budowania tablicy początkowej oraz b) modyfikowania wyjścia. /** * PRZYKŁAD jak dodać początkowe dane do funkcji handle_data_fn. * * @param (array) mixed $args */ function build_args_fn ( $args ) { // zbuduj początkową tablicę $args = array( 'UID' => 'whatever_UID' ,'name' => 'some_options_name' ,'args' => array( 'class' => 'example-wrap' ) ,'echo' => true ); handle_data_fn( $args ); } // 'jakiś_haczyk' to jakiś haczyk w pliku szablonu, w którym dane wyjściowe powinny zostać powtórzone. add_action( 'jakiś_haczyk', 'build_args_fn', 0, 1 ); /** * PRZYKŁAD jak dodać zawartość i zmodyfikować opcje z bazy danych wewnątrz funkcji handle_data_fn. * * @param (tablica) mieszane $args * @param (tablica) mieszane $opcje | db-options pobrane wewnątrz funkcji oxo_parse */ function mod_args_fn ( $args, $options ) { $args['output'] .= '
'; $args['output'] .= '
'; $args['wyjście'] .= $opcje; $args['wyjście'] .= '
'; $args['wyjście'] .= '
'; // Testuj wyjście wewnątrz wywołania zwrotnego fn echo '
Z wewnątrz wywołania zwrotnego: '; print_r($args); echo '
'; // OTO PROBLEM. NIE MOGĘ W PROSTY Zwrócić, PONIEWAŻ NIE BĘDZIE DOSTĘPNY W MOIM „data_handle_fn”. # return $args['wyjście']; // MUSZĘ TO WYDRUKOWAĆ, ABY UZYSKAĆ JAKIŚ WYNIK. $args['output'] NIE JEST DOSTĘPNY WEWNĄTRZ 'handle_data_fn' PO WYWOŁENIU do_action. return print $args['wyjście']; } // Nazwa haka pochodzi z argumentu 'UID' w 'build_args_fn' połączonego z 'hook_data_handle_' add_action ( 'hook_data_handle_whatever_UID', 'modify_args_fn', 10, 2 ); Dziękujemy za wszelkie informacje i pomoc w tej sprawie.


title: Uwidocznienie nowego posta na określonej stronie

text: Tworzę witrynę wordpress, która będzie miała różne sekcje, które zasadniczo będą stronami, do których można uzyskać dostęp za pośrednictwem menu najwyższego poziomu. Teraz, kiedy tworzę post, niekoniecznie chcę, aby wszystkie posty pojawiały się na pierwszej stronie, ale zamiast tego, tworząc post, chcę wybrać stronę, na której ma być wyświetlany. Nie mogę znaleźć sposobu, aby to zrobić w wordpress 3.x . Każda pomoc jest bardzo ceniona.


title: Niestandardowe wartości formularzy bez wtyczki

text:
Właśnie zacząłem pracować nad wordpressem. Teraz stworzyłem niestandardowy formularz i dane formularza, które chcę zapisać również w bazie danych i poczcie. Do tworzenia tego formularza mam jeden plik php, którego użyłem jako szablon na jednej stronie. a następnie ten formularz przesłałem, dałem akcję innej stronie [która również została wykonana według niestandardowego szablonu]. Mam problem, tak jak przy wysłaniu formularza, otwiera się strona akcji, ale nie mogę uzyskać danych. formularz jest taki sam.. <form action="/submit-idea" method="post" name="idea"> Zarys pomysłu
Krótki opis pomysłu na produkt lub usługę
 <textarea id="idea-outline" cols="10" rows="3" placeholder="" required></textarea> i na stronie przesyłania pomysłu próbuję uzyskać wartości takie jak: $pomysł_zarys = $_POST['pomysł-zarys']; Ale ich nie ma wartości w tej zmiennej ? i BTW, ten pomysł na przesłanie to strona php, której użyłem jako szablon na stronie.


title: POBIERZ fragment według ID

text:
Dlaczego tak jest, że nie można uzyskać fragmentu za pomocą identyfikatora, tak jak w przypadku tytułu i większości innych elementów. np. pobierz_wypis (ID). Wiem, jak go używać z funkcją $post->post_excerpt, ale to nie zwraca części treści, jeśli nie wprowadzono żadnego fragmentu, to simple nic nie zwraca. Więc to, co próbuję zrobić, to uzyskać fragment według identyfikatora, jeśli istnieje fragment, a jeśli nie ma fragmentu z tym identyfikatorem, ale jest jakaś zawartość, zamiast tego uzyskać część zawartości. Jak by to zrobić. Wszelkie pomysły, cudowne ... EDIT -- Kod źródłowy pętli zgodnie z żądaniem. <?php $stories = get_posts('category_name=feedback&numberposts=4'); foreach ($stories jako $post) : $title = $post->post_title; $wyciąg = get_the_excerpt_id($post->ID); $thumb = get_the_post_thumbnail($post->ID,array(60, 60, true));?>
<a href="<?php echo get_permalink($post->ID);?>"><?php echo $title;?>

<div id="gwiazdki<?php echo $post->ID;?>" align="left" style="height:18px; background:url(http://www.divethegap.com/update/ z-images/structure/icons/stars_glow.png) lewy górny no-repeat;">

<a href="<?php echo get_permalink($post->ID);?>"><?php echo $thumb;?>

 <?php echo $fragment;?>
 <?php endforeach;?>


title: Czy WordPress może czytać własny kanał RSS?

text: Używam statycznej strony głównej dla mojego bloga, do której dodałem widżetowy obszar paska bocznego do przechowywania widżetu kanału RSS. Chcę wyświetlać streszczenia ostatnich dwóch lub trzech wpisów na blogu na stronie głównej, ale mam problemy z nieaktualizacją widżetu RSS. Na przykład w polu konfiguracji widżetu RSS pole RSS jest podobne do „http://exampleblog.com/feed/”. Kanał RSS zostanie opublikowany przy pierwszym odświeżeniu po aktywacji widżetu, ale nie będzie publikowany z kolejnymi nowszymi postami. Nie aktualizuje się o nowe posty. Jedno z pytań tej witryny przypisywało podobny problem buforowaniu, a ja używam WP Cache na serwerze WWW. Dezaktywacja pamięci podręcznej WP nie pomaga. Czuję, że brakuje mi jakiejś prostej procedury, ale nie znajduję żadnej wzmianki w Kodeksie ani na tej stronie.


title: Testowanie adresu IP w tablicy zawsze kończy się niepowodzeniem na pierwszym adresie IP

text: Pracuję nad wtyczką ograniczającą IP, ale mam dziwny problem. Mam obszar tekstowy na stronie ustawień, w którym każdy z adresów IP, który powinien być dozwolony, jest wprowadzany, po jednym w wierszu. Następnie analizuję adresy IP do tablicy w następujący sposób: $ips = trim($cmm_options['ips']); $ips = array_filter(explode("\n", $ips), 'trim'); Wynikiem tego jest tablica, która wygląda tak: Array ( [0] => 67.6.134.102 [1] => 97.118.69.236 ) Po załadowaniu strony adres IP odwiedzających jest porównywany z tą tablicą w następujący sposób: function cmm_ip_test($ips ){ //testowanie poprawnego adresu IP użytego dla($i = 0, $cnt = count($ips); $i<$cnt; $i++) { $ipregex = preg_replace('/\./', '\ .', $ips[$i]); $ipregex = preg_replace('/\*/', '.*', $ipregex); if(preg_match('/'.$ipregex.'/', $_SERVER['REMOTE_ADDR'])){ // zastosuj filtr return true; } //nie stosuj filtra } return false; } Wszystko to działa doskonale, z wyjątkiem pierwszego adresu IP w tablicy. Na przykład, powiedzmy, że mój adres IP to 67.6.134.102 i jest to pierwszy wpis w polu tekstowym (a więc pierwszy w tablicy), w ten sposób funkcja cmm_ip_test() zwróci false. Jeśli następnie przeniosę swój adres IP do drugiej linii (lub innej niż pierwsza) obszaru tekstowego i załaduję stronę, cmm_ip_test() zwróci true. Ze wszystkiego, co mogę powiedzieć, nie ma absolutnie żadnej różnicy między pierwszym indeksem tablicy a jakąkolwiek przeszłością. Jakieś pomysły, dlaczego pierwsza pozycja indeksu nie zostanie zweryfikowana, nawet jeśli jest to prawidłowa tablica? Dziękuję!


title: Dlaczego wbudowany CSS jest dodawany do obrazów automatycznie?

text: Umieściłem obrazy na szablonach stron Wordpress bez żadnego atrybutu stylu inline, ale wydaje się, że Wordpress automatycznie dodaje tag stylu z "szerokość" i "wysokość" ustawionymi na zero. <img src="wp-content/themes/ecoblog/images/hiw-image-1.png" style="width: 0px; height: 0px;"> Czasami wysokość jest ustawiana na oryginalne wymiary, a czasami po całkowitym odświeżeniu wartości wynoszą zero. Co to powoduje?


title: Jakieś wtyczki do formularzy wysokiej jakości?

text: Jest ich tak wiele, a ja dosłownie wypróbowałem co najmniej 10. Żadna nie jest w porządku. Nie chcę jednego z tym całym „ajaxem”. Chcę tylko czegoś, co sprawdza poprawność strony serwera wejściowego, obsługuje wiele formularzy i umożliwia dostosowanie pól. Wszystkie wtyczki, które do tej pory wypróbowałem, wymagają zbyt dużego hakowania i stylizacji, aby wyglądały dobrze. Próbują być „fajni”, mówiąc „och, ta wtyczka ma ajax”. Szczerze, nie miałbym nic przeciwko ajaxowi we wtyczce, jeśli jest stopniowo ulepszane i nie jest już zbyt stylizowane. *najlepiej oczywiście za darmo


title: Wyświetlanie ostatniego posta za pomocą shortcode

text:
Próbuję wyświetlić ostatni post na statycznej stronie home-content.php. Dodałem ten kod w funkcji function.php my_recent_posts_shortcode($atts){ $q = new WP_Query( array( 'orderby' => 'date', 'posts_per_page' => '4') ); $lista =""; while($q->have_posts()) : $q->the_post(); echo '
'; $title=get_the_title(); if ( has_post_thumbnail() ) { echo ''; $list .=the_post_thumbnail(array(300,200),array('alt' =>$title)); echo ''; } echo '
'.$title.'
'; echo '
'; $lista .= wpe_excerpt('wpe_excerptlength_index', ''); echo 'Więcej informacji'; echo '
'; echo '
'; koniec; wp_reset_query(); return $lista ; } add_shortcode('recent-posts', 'my_recent_posts_shortcode'); `[recent-posts]` jest to skrót do wyświetlania ostatniego posta i home-content.php do wyświetlania posta <?php $post_id = 7; $queried_post = get_post($post_id); ?>
<?php $check=$queried_post->post_content; ?>
 <?php echo do_shortcode('["'.$check.'"]');?> Wszystkie ostatnie posty wyświetlane na stronie głównej mojego niestandardowego motywu http://templategraphy.com/wp- demo/businessguru/, ale struktura motywu problemu nie jest poprawnie pokazana. Chcę tego typu struktury http://templategraphy.com/demo/businessguru/ Zaproponuj rozwiązanie, w którym robię źle.


title: apply_filter('{$field_no_prefix}_save_pre', $value) przycinanie funkcji HTML

text: W `wp-include/post.php` znajduje się funkcja o nazwie `sanitize_post_field($field, $value, $post_id, $context)`. W tym przypadku funkcja `apply_filter('{$field_no_prefix}_save_pre', $value)` przycina elementy typu formularza, takie jak `<input />` i `<select></select>`, gdy jestem zalogowany jako użytkownik inne niż superadministrator. Pracuję nad **multisite**. Wyjaśnij mi powód obcinania kodu HTML, jeśli ktoś miał wcześniej ten problem


title: Zastąp podstawowy plik wordpress własnym

text:
**Edycja plików core nigdy nie wchodzi w grę.** - nie chodzi o edytowanie plików core, ale raczej o znalezienie sposobu na zastąpienie niektórych plików za pomocą wtyczki lub innej wbudowanej funkcji. Potrzebuję większej kontroli nad tym, co jest wyświetlane przez podstawowy plik wordpress, a plik nie zawiera żadnych zaczepów, których mogę użyć. Czy mogę zamiast tego użyć mojej własnej wersji podstawowego pliku wordpress? **EDYTUJ** **Problem:** Biblioteka multimediów wymaga dodatkowego kliknięcia, aby uzyskać pełny adres URL przesłanego pliku. **Pliki, o których mowa:** wp-admin/async-upload.php **Szczegóły:** Nowsze wersje wordpressa usunęły możliwość prostego przeciągania obrazu do programu do przesyłania multimediów (w sekcji Media > Dodaj nowy >) i pobierania nazwę pliku. To powinno być domyślne zachowanie i nie jestem pewien, dlaczego zostało usunięte. Teraz wystarczy przesłać plik i kliknąć „edytuj”, aby otworzyć nową stronę tylko po to, aby uzyskać nazwę pliku. **Kod oryginalny — od linii 54:** przypadek 3 : if ( $thumb_url = wp_get_attachment_image_src( $id, 'thumbnail', true ) ) echo ''; echo '' . _x( 'Edytuj', 'element multimedialny' ) . ''; $title = $post->post_title ? $post->post_title : wp_basename( $post->guid ); // tytuł nigdy nie powinien być pusty, ale użyj nazwy pliku tylko w cas.e echo '
' . esc_html( wp_html_excerpt( $tytuł, 60, '…') ) . '
'; przerwanie; **Dodanie kodu - począwszy od linii 54:** przypadek 3 : if ( $thumb_url = wp_get_attachment_image_src( $id, 'thumbnail', true ) ) $image_url = wp_get_attachment_image_src( $id, 'full', true ); echo ''; echo '' . _x( 'Edytuj', 'element multimedialny' ) . ''; $title = $post->post_title ? $post->post_title : wp_basename( $post->guid ); // tytuł nigdy nie powinien być pusty, ale użyj nazwy pliku tylko w cas.e echo '
' . esc_html( wp_html_excerpt( $tytuł, 60, '…') ) . '
'; echo '<input type="text" value="'.esc_url( $image_url[0] ).'" disable="wyłączone" size="100">'; przerwanie; **Wynik:** Wszystko, co dodałem, to adres URL pełnego obrazu, który właśnie został przesłany. Chociaż wspaniale jest zobaczyć małą miniaturę w wyniku przesyłania multimediów, wymagany jest adres URL pełnego obrazu - zwłaszcza w przypadku przesyłania wielu plików. Mój dodatkowy kod po prostu dodaje dane wejściowe z adresem URL pełnego obrazu, dzięki czemu mogę go skopiować i wkleić w innym miejscu. Początkowo miałem nadzieję, że istnieje prosta funkcja informująca wordpress: nie używaj tego pliku, użyj innego.


title: Dodanie paginacji do WooCommerce [produkty_wyprzedażowe] short_code

text:
Używam wbudowanego shortcode WooCommerce [sale_items] do wyświetlania przedmiotów z wyprzedaży w mojej witrynie. Chociaż możesz kontrolować, ile przedmiotów pojawia się na stronie, nie obejmuje ona stronicowania, więc jeśli masz dużo przedmiotów na wyprzedaży, otrzymasz dużą i nieporęczną stronę. Wziąłem więc kod dla tego short_code i nieznacznie go zmodyfikowałem, aby dodać obsługę paginacji i mam to działa. Mogę teraz określić liczbę elementów na stronie i stronicować między stronami, wpisując adres URL /page/2, page/3 itd., ale nie wiem, jak umieścić paginację na stronie, aby użytkownik mógł po prostu kliknij stronę, na którą chcą przejść. Oto mój kod: function pjl_sale_products( $atts ){ global $woocommerce_loop, $woocommerce; // Pobranie numeru strony z zapytania (jeśli jest ustawione) $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'stronicowane' ) : 1; $przesunięcie = (12* $stronicowane) - 12; extract( shortcode_atts( array( 'per_page' => '12', 'columns' => '4', 'orderby' => 'title', 'order' => 'asc' ), $atts ) ); // Uzyskaj produkty na wyprzedaży $product_ids_on_sale = woocommerce_get_product_ids_on_sale(); $meta_zapytanie = tablica(); $meta_query[] = $woocommerce->query->visibility_meta_query(); $meta_query[] = $woocommerce->query->stock_status_meta_query(); $meta_zapytanie = array_filter( $meta_zapytanie ); $args = array( 'paged' => $paged, // Podaj numer strony z zapytania 'offset' => $offset, // Podaj numer początkowy 'posts_per_page'=> $per_page, 'orderby' => $orderby , 'order' => $order, 'no_found_rows' => 1, 'post_status' => 'publish', 'post_type' => 'produkt', 'meta_query' => $meta_query, 'post__in' => array_merge( array (0), $identyfikatory_produktów_wyprzedażowe); ob_start(); $produkty = nowe WP_Query( $args ); $woocommerce_loop['kolumny'] = $kolumny; if ( $products->have_posts() ): ?> <?php woocommerce_product_loop_start(); ?> <?php while ( $products->have_posts() ): $products->the_post(); ?> <?php woocommerce_get_template_part( 'treść', 'produkt' ); ?> <?php koniec; // koniec pętli. ?> <?php woocommerce_product_loop_end(); ?> <?php endif; do_action('woocommerce_pagination'); wp_reset_postdata(); zwróć '
' . ob_get_clean() . '
'; } Gdzie się pomylę? Z tego, co wyczytałem w sieci, po prostu do_action('woocommerce_pagination'); w funkcji wystarczy uruchomić paginację do działania ? Z góry dziękuję Phil


title: Pobierz posty według identyfikatorów (opcjonalnie)

text: Chcę sprawdzić, czy zmienna zawiera listę identyfikatorów postów, a następnie chcę zapytać tylko o posty o tych identyfikatorach, ale jeśli ta zmienna jest pusta, chcę wyświetlić wszystkie posty. Problem: Jeśli dostarczę identyfikatory do `post__in`, to otrzyma posty z tymi identyfikatorami, ale jeśli jest pusty, powinien zwrócić **wszystkie posty**, ale nie zwraca żadnego posta. Na przykład poniższy kod otrzyma posty o identyfikatorach 1,2,3. Jednak to nie zwróci żadnego posta, jeśli $`ids` jest puste. Czy w takim przypadku nie powinien zwracać WSZYSTKICH postów? Jak mogę pobrać wszystkie posty, jeśli `$ids` jest pusty, tj. `$id = "";` ? $id = '1,2,3'; $arr = rozbij(",",$ids); $args = array( 'posts_per_page' => $number, 'post__in' => $arr, );


title: Wyświetl post według kolejności menu

text: Chcę wyświetlać posty na mojej stronie głównej. Ale lubię zarządzać wpisami za pomocą Wordpress Menu, więc mogę łatwo dodawać, usuwać i zmieniać kolejność wpisów wyświetlanych na stronie głównej. Na przykład: mam 5 postów, POST1, POST2, POST3 i tak dalej. Chcę wyświetlać POST4 i POST1 na mojej stronie głównej. Zamiast tworzyć niestandardową pętlę, chcę użyć menu Wordpress, więc wszystko, co muszę zrobić, to sprawdzić POST4 i POST1, a następnie dodać do menu, jeśli chcę, aby POST1 był pierwszym postem na stronie głównej, wystarczy aby przeciągnąć POST1 nad POST4, a następnie zapisać, i to powinno wystarczyć. Na mojej stronie głównej powinny być wyświetlane POST1 i POST4. To właśnie chcę osiągnąć. Przepraszam, jeśli nie mam kodu, ponieważ nie mam pomysłu, jak to zrobić. Dziękuję.


title: Zintegruj Importer Wordpress z Drzewem Opcji

text: Przeczytałem tutaj: Funkcja instalacji zawartości demonstracyjnej jednym kliknięciem w panelu opcji motywu WordPress Bardzo dobry samouczek. Śledziłem to, co zostało napisane w artykule. Moje pytanie brzmi, jak zintegrować Importer Wordpress z Drzewem Opcji? Dziękuję Ci


title: Warunkowa struktura linku bezpośredniego

text: Chcę, aby funkcja stosowała strukturę wielu permalinków do postów pod pewnymi warunkami. Na przykład, jeśli data postu jest przed 2014, chcę, aby struktura permalinka była: /%category%/%post_id%/ A gdy data postu jest po 2014 roku, chcę, aby struktura permalinka była: /%post_id%/


title: Automatycznie wypełniać dane taksonomii posta na podstawie metadanych autora posta?

text: Próbuję użyć metadanych autora, aby automatycznie wypełnić niestandardową taksonomię w postach danego autora. Obecnie taksonomia jest widoczna na stronie posta, ale zamierzam ukryć ją w interfejsie, aby uniknąć przypadkowych wyborów użytkownika. (Również powód wstępnego wypełnienia) Uwaga: powiązane terminy taksonomii i metadane autora są **identyczne** (opcje metadanych autora są pobierane dynamicznie z istniejących terminów taksonomii). Z jakiegoś powodu - to NIE działa. Drapię się po głowie, próbując zrozumieć dlaczego - myślę, że logika jest poprawna. Czy czegoś mi brakuje/czy ktoś może pomóc? Z góry dziękuję. function update_school($post_id) { $post_author_id = get_post_field( 'post_author', $post_id ); // pobierz identyfikator autora posta $school_title = get_the_author_meta( 'school2', $post_author_id ); // z identyfikatora autora posta pobierz meta autora $school_slug = get_the_author_meta( 'school', $post_author_id ); // z identyfikatora autora posta pobierz meta autora $school_term = get_term_by('slug', $school_slug, 'school'); // pobierz meta termin od autora o nazwie "school" $school_term_name = $school_term->name; // z pliku slug, pobierz nazwę semestru szkolnego // zaktualizuj taksonomię posta "school" za pomocą meta zmiennych szkolnych autora powyżej wp_set_post_terms( $post_id, $school_term_name, 'school' ); } // uruchom funkcję w poście save add_action('save_post', 'update_school');


title: echo do_shortcode dla formularza kontaktowego 7 z dynamicznie ładowanego pliku php

text: Ładuję plik php zawierający `echo do_shortcode('[contact-form-7 id="568"]');` używając jQuery `.load()` ale shortcode nic nie zwraca. Widziałem to pytanie i odpowiedź i rozumiem, że `do_shortcode()` nie jest dostępny: Dlaczego `do_shortcode' wtyczki może nie działać w żądaniu AJAX? Ale obawiam się, że nie mogę za życia dowiedzieć się, czy rozwiązanie jest odpowiednie dla mojej konfiguracji. Mam nadzieję, że ktoś pomoże rzucić trochę światła. Dziękuję Ci. script.js $.post(themeurl+ 'save_image.php', { base64_image: ProductDataURL }, function(data) { if(data) { $( '#popup-download div' ).load( themeurl+ 'downloadform.php' ) ; } }); downloadform.php <?php if ( function_exists( 'do_shortcode' ) ) { echo "do_shortcode istnieje"; } else { echo "do_shortcode nie istnieje"; // to zostanie powtórzone }; echo do_shortcode('[contact-form-7 id="568"]'); // nic ?>


title: Jak korzystać z ikon klawiatury Mac w WordPress?

text: W porządku, to głupie pytanie, ale za każdym razem, gdy szukam odpowiedzi, otrzymuję wyniki dotyczące skrótów klawiaturowych do sterowania wordpressem. Na moim blogu muszę dołączyć obrazy dla kombinacji klawiszy dla klawiatury Mac. W jaki sposób mogę to zrobić? Jeśli istnieje wtyczka, byłoby naprawdę fajnie pokazać kombinacje klawiszy jako małe ikony klawiszy - jeśli obsługuje ikony systemu Windows, to jeszcze lepiej! Z góry dziękuję!


title: Dodawanie dynamicznego arkusza stylów

text: W ten sposób dodałem mój dynamicznie generowany arkusz stylów. add_action( 'parse_request', 'my_custom_wp_request' ); function my_custom_wp_request( $wp ) { if ( !empty( $_GET['my-custom-content'] ) && $_GET['my-custom-content'] == 'css' ) { # pobierz nagłówek opcji motywu( ' Content-Type: text/css' ); wymagaj nazwy katalogu ( __PLIK__ ) . '/css/style-options.php'; Wyjście; } } Aby podpiąć się pod motyw wykonałem funkcję my_login_css() { ?> <link rel='stylesheet' type='text/css' href="<?php bloginfo( 'url' ); ?>/?my-custom -content=css" /> <? } add_action('wp_footer', 'my_login_css'); Moje pytanie: Czy istnieje sposób na podpięcie arkusza stylów inny niż ten staromodny sposób, taki jak `wp_register_style` lub `wp_enqueue_style`?


title: W tym szablon w shortcodes

text:
Tworzę wtyczkę wyświetlającą cytat z. funkcja publiczna qt_shortcodez() { $QT_Options = get_option("qt_settings"); $Form = '

 Nazwa firmy *	 <typ danych wejściowych ="text" name="nazwa użytkownika" id="nazwa użytkownika" />

 Telefon *	 <input type="text" name="nazwa użytkownika" id="telefon" />

 E-mail	 <input type="text" name="username" id="email" />

'; zwróć formularz $; } Ale jest to większa forma niż ta (`$Form`). Czy istnieje sposób na użycie szablonu w krótkich kodach? Podobnie jak funkcja publiczna qt_shortcodez() { $QT_Options = get_option("qt_settings"); // Próbowałem, ale nie działa :( include( sprintf('%s/template/shortcode.php', dirname(__FILE__)) ); }


title: Jak uwierzytelnić użytkownika wp przez JSON?

text: Opracowuję aplikację na Androida, która używa wordpressa jako podstawy do zarządzania użytkownikami, teraz chcę, aby użytkownicy byli uwierzytelniani względem bazy danych wordpress za pośrednictwem JSON. Staram się używać JSON-API jako podstawy dla tego rozwoju. Znaleziono również wtyczkę uwierzytelniającą wp-json-api-auth, ale nie jestem pewien, jak jej użyć do uwierzytelniania logowania użytkownika za pomocą aplikacji na Androida. Czy ktoś może pomóc w korzystaniu z wtyczki uwierzytelniającej lub najlepszym podejściu do uwierzytelnienia użytkownika za pomocą JSON z urządzenia mobilnego.


title: nie można utworzyć nowego wp_query

text: Zrobiłem nową PAGE do obsługi zapytań z niestandardowego formularza wyszukiwania: <form id="search_form" action="'.site_url().'/search_page"> plik page-search_page.php : $query = new WP_query(array(' post_type' => 'biuro')); if ( ( $query->have_posts() ) ) { while ( $query->have_posts() ) : $query->the_post(); get_template_part( 'zawartość', 'kciuk' ); koniec; } ` ale var_dump($query) pokazuje post_type=page, wynik jest niepoprawny. Gdzie jest błąd?


title: Zwrócić wybrane kategorie tylko w niestandardowym polu meta strony?

text: Mam dodane niestandardowe pole meta do ekranu edycji strony. Mam też włączone kategorie dla Pages. Używam `get_categories($post->ID);` do pobrania listy kategorii, tak jak w szablonie strony, ale zwraca listę wszystkich kategorii zamiast tylko wybranych. Czy można zwrócić tylko wybrane kategorie? Dziękuję Ci.


title: Zezwalanie użytkownikom na edycję ich komentarzy

text: Jak zezwolić użytkownikom na edytowanie tylko ich komentarzy? Próbowałem niektórych wtyczek, takich jak „WP Ajax Edit Comments”, ale użytkownicy mogli edytować wszystkie komentarze.


title: Wykorzystanie pamięci dla skalowalnych zapytań metadanych użytkownika

text: ## Problem Jakiś czas temu wysłałem pytanie o **skalowalność architektury `wp_usermeta`**: obawiam się, że baza użytkowników mojego klienta szybko rośnie, jest teraz **wykorzystanie pamięci** przy zapytaniach `wp_usermeta` ` tabela. W mojej sytuacji zarządzam CRM z tysiącami użytkowników, z których każdy ma około 15 _meta pól_. Ponieważ pobieram te informacje z bazy danych, zużycie pamięci rośnie wykładniczo, do tego stopnia, że teraz `96M`, które ustawiłem jako limit, nie wystarcza. ## Dane, które zebrałem (testowanie, profilowanie) Próbowałem **profilować** i **refaktoryzować** mój kod, zawężając dokładnie to, co mam do zrobienia, i rzeczywiście zoptymalizowałem swoje zapytania tak bardzo, jak mogłem, w zależności od w sytuacjach: 1. W większości sytuacji muszę uzyskać _metadane_ związane tylko z jednym użytkownikiem. W tym przypadku, zarówno uruchomienie `get_user_meta` jak i `get_userdata` działają dobrze. 2. W niektórych sytuacjach muszę uzyskać _niektóre metadane_ (~5 pól) związane z _niektórymi użytkownikami_ : użycie `get_userdata` wyczerpuje moją pamięć po ~2000 użytkownikach; użycie `get_user_meta` bez `$key` (stąd pobranie wszystkich metadanych powiązanych z użytkownikiem) wyczerpuje moją pamięć po ~3500 użytkownikach; uzyskanie tylko `$kluczy`, których potrzebuję, faktycznie wyczerpuje pamięć po ~3000 użytkownikach. 3. W kilku sytuacjach muszę uzyskać _niektóre metadane_ (~5 pól) powiązane ze _wszystkimi użytkownikami_ : tutaj, oczywiście, najbardziej odczuwam problem. Wypróbowałem kilka opcji: używanie ** API Wordpress** jest najwyraźniej wysoce nieefektywne w tego rodzaju sytuacji, jak wspomniałem powyżej. Badanie _zapisanych zapytań_ na `$wpdb->zapytania' również daje mi ogromną ilość niepotrzebnych zapytań (myślę, że to dlatego uzyskanie wszystkich metas powyżej jest bardziej wydajne niż uzyskanie kilku metas). Należy zauważyć, że muszę również uruchomić wstępne polecenie `get_users`, aby uzyskać identyfikatory, na których będą uruchamiane wyżej wymienione funkcje. Ponieważ wszystkie te interfejsy API również **buforują** wyniki, pomyślałem, że dobrym pomysłem może być uruchamianie własnych zapytań do bazy danych i rzeczywiście oszczędzam mnóstwo pamięci, używając w sumie około "40M" na około ~6000 użytkownicy (moja suma teraz) z tym zapytaniem: $wpdb->get_results( "SELECT user_id, meta_value FROM $wpdb->usermeta WHERE meta_key='a' OR meta_key='b' OR meta_key='c' OR meta_key='d '" ); ## Pytania 1. Czy robię **coś złego** w podejściu? 2. Nigdy nie pracowałem z taką ilością danych, **jakiego wykorzystania pamięci powinienem się spodziewać** w takiej sytuacji? (Aby zrozumieć moje potrzeby hostingowe) 3. Czy lepiej byłoby zrobić **nową tabelę bazy danych**? (Jedyna rzecz, jaka przyszła mi do głowy, ale jeszcze nie próbowałem). 4. Jeśli niestandardowe zapytanie do bazy danych jest realnym podejściem, jak mam zorganizować dane zebrane przez to zapytanie w jakiejś strukturze obiektów podobnej do WP_User?


title: Błędy Wordpress generowane przez wtyczkę sprawdzania motywu

text:
Proszę o pomoc w rozwiązaniu tych ostrzeżeń, aby przesłać motyw do przesłania. Z góry dziękuję. Znalazłem wiele ostrzeżeń i rozwiązałem wiele z nich dzięki wordpress.stackexchange.com, ale nadal nie mogę rozwiązać poniższych problemów, proszę o pomoc. OSTRZEŻENIE: Znaleziono base64_encode w pliku twitteroauth.php. base64_encode() jest niedozwolona. Linia 123: zwróć base64_encode(hash_hmac('sha1', $base_string, $key, true)); Linia 203: zwróć base64_encode($podpis); OSTRZEŻENIE: Znaleziono base64_decode w pliku twitteroauth.php. base64_decode() jest niedozwolona. Linia 207: $decoded_sig = base64_decode($podpis); OSTRZEŻENIE: file_get_contents został znaleziony w pliku twitteroauth.php Operacje na plikach powinny używać metod WP_Filesystem zamiast bezpośrednich wywołań systemu plików PHP. Wiersz 277: file_get_contents(self::$POST_INPUT) OSTRZEŻENIE: w pliku twitteroauth.php znaleziono curl_init Operacje na plikach powinny używać metod WP_Filesystem zamiast bezpośrednich wywołań systemu plików PHP. Linia 1084: $ci = curl_init(); OSTRZEŻENIE: curl_exec został znaleziony w pliku twitteroauth.php Operacje na plikach powinny używać metod WP_Filesystem zamiast bezpośrednich wywołań systemu plików PHP. Linia 1110: $odpowiedź = curl_exec($ci); WYMAGANE: plugin-activation.php. Motywy powinny używać add_theme_page() do dodawania stron administracyjnych. Linia 335: add_submenu_page( WYMAGANE: Innovative_panel_functions.php. Motywy powinny używać add_theme_page() do dodawania stron administracyjnych. Linia 143: add_menu_page(nazwa_motywu.' Ustawienia', nazwa_motywu ,'install_themes', 'panel' ZALECANE: Możliwa zmienna $instance znaleziona w funkcja tłumaczenia w plugin-activation.php. Wywołania funkcji tłumaczenia NIE mogą zawierać zmiennych PHP. Wiersz 2043: echo '
menu, admin_url( TGM_Plugin_Activation::$instance->parent_url_slug)) ''title='' .esc_attr( TGM_Plugin_Activation::$instance->strings['return']) '' target='_parent'>' .__( TGM_:Plugin_Activation $instance->strings['return'], 'tgmpa' ). '<


title: Dodanie niestandardowych klas w WP 3.8 przestaje działać w poprzednich wersjach działało dobrze

text: Ten kod działał świetnie w poprzednich wersjach WP. Jednak po aktualizacji przestaje działać. Czemu? //Dodaj dodatkowe klasy css do pozycji menu function myteme_nav_menu_css_class( $classes = array(), $item, $args ) { $location_name = 'header'; if($args->theme_location== $location_name){//Ogranicz do tej lokalizacji menu tylko wtedy, gdy ( ( $locations = get_nav_menu_locations() ) && isset( $locations[ $location_name ] ) ) { $main_nav = wp_get_nav_menu_object( $locations [ $nazwa_lokalizacji] ); if ($item->menu_order == 1) { $classes[] = 'pierwszy'; //Pierwszy element menu } if ($item->menu_order >= $main_nav->count) { $classes[] = 'last'; //Ogólna ostatnia pozycja menu } } } return $classes; } add_filter( 'nav_menu_css_class', 'mytheme_nav_menu_css_class', 10, 3 );


title: Tag warunkowy dla członkostwa na liście życzeń. Jeśli użytkownik zostanie dodany do dwóch poziomów, pokaż konkretną treść

text: Obecnie używam wtyczki o nazwie Członek listy życzeń. Pozwala tworzyć poziomy członkostwa w WordPress. Chcę mieć możliwość wyświetlania różnych treści na stronie w zależności od tego, czy użytkownik jest dodany do dwóch poziomów. Używam kodu "Bainternet": // pobierz aktualny poziom użytkownika z WP, ważniejszy jest globalny $user. $użytkownik = wp_get_current_user(); // Pobierz poziomy użytkowników od WishlistMembers $levels = WLMAPI::GetUserLevels($user->ID); //następnie uruchom sprawdzanie żądanego poziomu w następujący sposób: if(in_array('silver', $levels)){ // WYDRUKUJ tutaj zawartość POZIOMU srebra } elseif (in_array('gold', $levels)){ // WYDRUKUJ tutaj złoty POZIOM }, który działa idealnie, jeśli użytkownik jest na jednym poziomie. Jeśli użytkownik jest dodany do dwóch poziomów, to jak używać powyższego kodu? Proszę o pomoc. Pozdrawiam, Raghav.


title: Kiedy piszę posty, zwykle muszę używać nierozdzielającego elementu spacji, aby zachować marginesy między zdaniami. Dlaczego?

text: Kiedy piszę posty, zwykle muszę używać nierozdzielającego elementu spacji, aby zachować marginesy między zdaniami. Innymi słowy – tekst wygląda dobrze w moim edytorze, jest ze spacjami, ale jak zapiszę i podejrzym – to wszystko razem, bez spacji. Dlaczego tak jest?


title: Właściwy protokół Facebook Open Graph do motywu WordPress?

text: Użyłem tego kodu przed w moim motywie wp to przed `<head>`: <html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me /ns#" xmlns:fb="http://www.facebook.com/2008/fbml"> po `<head>` to: <meta property="og:title" content="<?php the_title() ?>"/> <meta property="og:fb:app_id" content="1111111111"/> <meta property="og:type" content="art"/> <meta property="og:url" content= "<?php the_permalink() ?>"/> <meta property="og:image" content="<?php echo catch_that_image() ?>"/> <meta property="og:site_name" content="<? php bloginfo('nazwa') ?>"/> <meta property="fb:admins" content="USER_ID"/> <meta property="og:description" content="<?php echo strip_tags(get_the_excerpt($post ->ID)); ?>" <?php funkcja og_meta_desc() { global $post; $meta = strip_tags($post->post_content); $meta = str_replace(array("\n", "\r", "\t"), ' ', $meta); $meta = substr($meta, 0, 200); echo "<meta property=\"og:description\" content=\"$meta\"/>"; } og_meta_desc(); ?> aw function.php to: function catch_that_image() { global $post, $posts; $pierwszy_img = ''; ob_start(); ob_end_clean(); $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches); $ first_img = $matches [1] [0]; if(empty($first_img)){ //Definiuje domyślny obraz $first_img = "/images/default.jpg"; } return $first_img; } ale pobierz pierwszy obraz, jak uzyskać „polecany obraz” każdego posta?A na stronie developers.facebook.com/tools/debug/ są wyświetlane następujące wiadomości: Kod odpowiedzi na informacje o zdrapkach: 502 Pobrany adres URL: www.mysite.com/post-1 Canonical URL: www.mojawitryna.com/post-1 Błędy krytyczne, które należy naprawić Strona usuwania błędów: Błędny kod odpowiedzi Ostrzeżenia otwartego wykresu, które należy naprawić Wywnioskowana właściwość: Właściwość og:url powinna być podana jawnie, nawet jeśli wartość może być wywnioskowane z innych tagów.Inferred Property: Właściwość og:title powinna być jawnie podana, nawet jeśli wartość można wywnioskować z innych tagów.Czy zrobiłem coś złego, czy istnieje inny „poprawny” sposób dla witryny Wordpress? czy mogę to naprawić?


title: Usuwanie postów przez sql

text: Często buduję witrynę i mamy posty testowe. Zastanawiałem się, czy istnieje sposób za pomocą sql, aby usunąć wszystkie posty na blogu za pomocą prostego zapytania sql. Oczywiście zrobiłbym kopię zapasową mojej poprzedniej bazy danych przed obcięciem tych tabel. Jeśli to możliwe, chciałbym zostawić te strony w spokoju.


title: automatyczne przesyłanie wp_dropdown_pages

text: To, co mam poniżej, obecnie działa dobrze, z wyjątkiem jednego problemu: Po wybraniu wybranego elementu, trafi on poprawnie na podstronę - jednak, jeśli na podstronie głównej witryny już jest, a element jest wybrany z listy w dół, adres URL wyboru jest dołączany do istniejącego adresu URL strony, a nie przekazywany jako pełny adres URL. na przykład... jeśli na site.com i wybrano choice1, przechodzimy do site.com/choice1/ - jeśli jesteśmy na site.com/choice1 i wybrano opcję choice2, próbuje nas skierować do site.com/ choice1/choice2 - Nie jestem pewien, jak dostosować poniższy kod, aby przekazywał pełny adres URL. Każda pomoc byłaby bardzo mile widziana. <?php $select = wp_dropdown_pages( array( 'post_type' => 'ce_artists', 'show_option_none' => 'Wybierz wykonawcę', 'echo' => 0 ) ); $select = preg_replace( "#<select([^>]*)>#", "<select$1 onchange='zwróć ten.form.submit()'>", $select ); echo $wybierz; ?> <noscript><input type="prześlij" name="prześlij" value="view" /></noscript>


title: Zapobiegaj tłumaczeniu nazwy firmy

text: Jak uniemożliwić WordPressowi zlokalizowanie nazwy firmy podczas korzystania z funkcji lokalizacyjnych? Czy w poniższym fragmencie zostanie przetłumaczona „Nazwa firmy”? <?php printf(__('Oto tekst o %s', 'mój_motyw'), 'Nazwa firmy'); ?> Czy najlepszą praktyką jest nietłumaczenie nazwy firmy i nazwisk osób fizycznych? Dziękuję!


title: Autor posta dla wersji nie jest ustawiany podczas aktualizacji/wstawiania

text: Próbuję programowo zaktualizować wpis typu niestandardowego z poprawkami włączonymi za pośrednictwem formularza i wydaje się, że wszystko działa dobrze, z wyjątkiem pola post_author dla wersji ustawionej na 0 zamiast identyfikatora, który przekazuję w mojej tablicy. Wszystkie poprawki otrzymują 0, ale sam post otrzymuje poprawny identyfikator autora. Nie dostaję też WP_Error. To po prostu ignorowanie danych wejściowych. Próbowałem zarówno wp_insert_post, jak i wp_update_post z tymi samymi danymi, tymi samymi wynikami. Wersje i główny post wszystkie zapisują/tworzenie dobrze, z wyjątkiem pola post_author w rewizjach. Odpowiedni kod funkcji: function yq_process_answer_submission_callback() { // najpierw sprawdź, czy dane są przesyłane i czy są to dane, których chcemy if ( isset( $_POST["post_var"] ) ) { $params = array(); parse_str($_POST["post_var"], $params); $name = get_userdata( $params['yq_author_id'] )->display_name; $posissive_name = $name.'\''.($name[strlen($name) - 1] != 's' ? 's' : ''); $title = $possive_name . 'Odpowiedź na pytanie:' . get_the_title( $params['yq_question_id'] ); $post = array( 'ID' => $params['yq_answer_id'], 'post_title' => $title, 'post_name' => sanitize_title_with_dash($title, '', 'save'), 'post_content' => $ params['yq_body'], 'post_type' => 'yq_answer', 'post_author' => $params['yq_author_id'], 'post_status' => 'private', 'post_parent' => $params['yq_question_id'] , 'comment_status'=> 'otwarte', 'ping_status' => 'zamknięte', ); if ($params['yq_answer_id'] == "") { $the_post = wp_insert_post( $post, true ); } else { $the_post = wp_update_post( $post, true ); } if (is_wp_error($the_post)) { echo "Wystąpił błąd. Spróbuj przesłać ponownie.\rKomunikat o błędzie: ".print_r($the_post->get_error_message()); } else { add_post_meta($the_post, 'to_instructor', $params['yq_send_to'], true); add_post_meta($the_post, 'instructor_notified', false, true); update_post_meta($the_post, 'to_instructor', $params['yq_send_to']); update_post_meta($the_post, 'instructor_notified', false); $response = array('question_id'=> get_post($the_post)->post_parent, 'answer_id' => $the_post, 'message'=>"Twoja odpowiedź została zapisana. Wkrótce zostanie wysłana do instruktora." ) ; echo json_encode($odpowiedź); } umiera(); } } A także kod startowy dla typu posta "odpowiedź": function create_yq_answers_post_type() { register_post_type( 'yq_answer', array( 'labels' => array( 'name' => 'Answers', 'singular_name' => 'Answer ', 'menu_name' => 'Answers', 'add_new' => 'Dodaj odpowiedź', 'add_new_item' => 'Dodaj nowe odpowiedzi', 'edit' => 'Edytuj', 'edit_item' => 'Edytuj odpowiedzi' , 'new_item' => 'Nowe odpowiedzi', 'view' => 'Wyświetl odpowiedzi', 'view_item' > 'Wyświetl odpowiedzi', 'search_items' > 'Wyszukaj odpowiedzi', 'not_found' => 'Nie znaleziono odpowiedzi', 'not_found_in_trash' => 'W Koszu nie znaleziono odpowiedzi', ), 'description' => 'Typ odpowiedzi na pytania.', 'capability_type' => 'answer', 'hierarchical' => false, 'supports' => array ('tytuł',' autor','editor','comments','revisions'), 'public' => false, 'has_archive' => true, 'show_ui' => true, 'show_in_menu' => true, 'menu_position' => 25 , 'rewrite' => array('slug' => 'odpowiedzi') ) ); }