title: Witryny do rejestracji wielu użytkowników Wordpress

text: Dla jednego z naszych klientów tworzymy obecnie (mobilną) aplikację z wiadomościami, która zawiera blogi ich multisite WP. Nawiązaliśmy połączenie REST między bazą danych, ale utknęliśmy w następującym problemie: Lubimy rejestrować ludzi do tabeli WP_user, ale musimy im dać dostęp do łącznie 9 witryn. Czy można zrzucić wszystkich użytkowników z 1 puli, aby przyznać dostęp do publikowania komentarzy we wszystkich witrynach? Z góry dziękuję,


title: Minimalne pliki szablonów do tworzenia motywów

text: WordPress ma minimalne pliki szablonów motywów jako * style.css * index.php, a także kilka innych plików wymienionych tutaj. Jeśli twórca motywu chce zbudować motyw z mniejszą liczbą dzwonków i gwizdów, jakie pliki szablonów powinny być zawarte jako minimum? W dokumencie WordPress nie ma żadnych wytycznych. Jedyne, co możesz znaleźć, to jakie pliki i kiedy je uwzględnić. Aby móc korzystać z większości funkcji wordpress bez żadnych konfliktów, nie wydaje się, aby była podana konkretna liczba dla liczby plików szablonów. Ile plików powinno się tam znajdować, gdy tworzysz motyw z, powiedzmy, surowego szablonu html?


title: Aktualizuj pole w bazie danych dla użytkowników

text: Zrobiłem formularz frontendowy dla administratorów, w którym mogą zaznaczyć pole wyboru dla każdego użytkownika i przesłać dane formularza pocztą. Dla wszystkich zaznaczonych użytkowników należy zmienić wartość w polu w bazie danych. Skryptem dla tego pola może być `status_płatności`. Jaka jest metoda aktualizacji lub zmiany wartości pola w bazie danych dla **określonego użytkownika**? Spojrzałem na takie pytanie: Zaktualizuj niektóre pola bazy danych po zapisaniu postu i próbowałem z metodami opcji w wordpressie. Ale mam problem ze znalezieniem sposobu na zmianę wartości dla konkretnego użytkownika. Jeśli jest to dla mnie możliwe, przekształcenie tego w powtarzanie procesu aktualizacji dla każdego zaznaczonego użytkownika w danych postu może nie być trudne.


title: Zamów zapytanie według meta_value, a następnie według post_date

text: Używam następującego zapytania (mytheme/function.php) do sortowania postów według funkcji Custom Field(=admin_rate) sort_searchresult_by_admin_rate($k) { if (!is_home()) { $k->query_vars['meta_key'] = „współczynnik_administracji”; $k->query_vars['orderby'] = 'meta_value'; $k->query_vars['order'] = 'DESC'; } } add_action('pre_get_posts','sort_searchresult_by_admin_rate'); Na przykład mam 4 posty: Title1 admin_rate=3 post_date=25 lutego 2014 Title2 admin_rate=4 post_date=26 lutego 2014 Title3 admin_rate=1 post_date=27 lutego 2014 Title4 admin_rate=1 post_date=28 lutego 2014 z sort_searchresult_by_admin_rate($k), Otrzymuję następujące wyniki: Tytuł2 admin_rate=4 post_date=26 luty 2014 (DOBRY!) Tytuł1 admin_rate=3 post_date=25 luty 2014 (DOBRY!) Tytuł3 admin_rate=1 post_date=27 luty 2014 (ZŁY!) Tytuł4 admin_rate=1 post_date =28 lutego 2014 (ZŁE!) Chcę Uporządkować posty według meta_value, a następnie według daty DESC tak samo jak: Title2 admin_rate=4 post_date=26 lutego 2014 (DOBRY!) Title1 admin_rate=3 post_date=25 lutego 2014 (DOBRY!) Title4 admin_rate=1 post_date=28 lutego 2014 (DOBRA!) Title3 admin_rate=1 post_date=27 lutego 2014 (DOBRO!) czy jest jakiś sposób? Dziękuję.


title: wp_nav_menu_items - problem z urządzeniami mobilnymi

text:
Używam haka filtra wp_nav_menu_items, aby dodać podnawigację do nawigacji głównej. Używa motywu potomnego dla funkcji 2013 new_nav_menu_items($items) { global $wpdb; $locality_links = ''; $query = //etc $localities = //etc if( $localities ) { foreach( $localities AS $locality ) { $localities_links .= '
locality_slug . '/">' . $miejscowość->nazwa_miejscowości . '
'; } $items = str_replace('Miejscowości
', 'Miejsca
'.$localities_links.'

', $pozycje); } return $items; } add_filter( 'wp_nav_menu_items', 'new_nav_menu_items' ); Link „Miejsca” (i wszystkie inne linki) utworzono za pomocą opcji Wygląd > Menu. Działa to poprawnie na laptopach. Ale na urządzeniach mobilnych linki nie działają. W systemie iOS link „Miejsca” nie działa. W systemie Android link „Miejsca” pokazuje podnawigację, ale linki podrzędnej nie działają. Jakie jest zalecane rozwiązanie dotyczące głównej nawigacji na urządzeniach mobilnych? Czy będę musiał użyć wp_nav_menu, aby utworzyć całe menu nawigacyjne za pomocą kodu? A / lub niestandardowy chodzik?


title: Wyświetl wszystkie albumy w nggallery na stronie

text: Używam popularnej wtyczki NextGen Gallery / nggallery do obsługi albumów i galerii zdjęć na mojej stronie. Mogę ułożyć zdjęcia w album i wyświetlić je za pomocą shortcode bez problemu, gdzie mam problemy z tym, że chcę utworzyć główną stronę "Galerie zdjęć", która pokaże wszystkie albumy zdjęć na stronie. Jakieś rady/pomysły jak to zrobić? Jedyną niejasno użyteczną sugestią, jaką do tej pory znalazłem w Internecie, jest przearanżowanie albumów tak, abym miał albumy główne, które mają wszystko inne jako pod-albumy. Wydaje się to bardzo nieoptymalne, ponieważ każda galeria/album będzie musiała zostać zmieniona podczas przesyłania. Znalazłem duplikat tego pytania w innym miejscu w sieci stosu - http://webmasters.stackexchange.com/questions/1858/how-to-show-all-albums-in-wordpress-nextgen-gallery, ale to nie mają odpowiedź i nie zostały tutaj przeniesione. Dzięki Jona


title: Quasi-niestandardowa wtyczka wywołania API

text: Zasadniczo próbuję wyświetlić dane z witryny WordPress #1 w witrynie WordPress #2 i aby obejść problem z próbą połączenia z bazą danych, pomyślałem, że mądrzej byłoby zrobić wtyczkę podobną do API, aby zwracać informacje. Moim pomysłem było zbudowanie adresu URL z parametrem, który posłużyłby do pobrania potrzebnych mi informacji. Oto wszystko, co mam do tej pory... <?php if ( isset( $_GET['post_id'] )) { $post_id = $_GET['post_id']; // użyj funkcjonalności WordPressa do pobrania danych za pomocą $post_id echo $stuff; } Powiedzmy, że lokalizacja tego kodu to `/wp-content/plugins/custom-api.php`. Chcę mieć możliwość odwiedzenia na przykład adresu URL `/wp-content/plugins/custom-api.php?post_id=420` i zwrócenia mu pewnych informacji na stronie (takich jak tytuł posta, miniatura, cokolwiek) . Problem, jaki mam, polega na tym, że nie wiem, jak uzyskać dostęp do funkcji WordPressa. Wiem, że normalnie za pomocą wtyczek podłączasz funkcję, a wtedy wszystkie funkcje WP, których używasz, będą działać. Tutaj nie próbuję się podłączyć; Próbuję się oderwać. Jeśli używam dowolnej natywnej funkcji WordPressa, nie jest ona rozpoznawana jako istniejąca. W tej chwili jestem trochę zakłopotany. Wszelkie sugestie lub linki do zasobów, które mógłbym przemyśleć, byłyby bardzo mile widziane.


title: Wtyczka nie została poprawnie zlokalizowana

text: Wywołuję funkcję `load_plugin_textdomain()` w ramach akcji `init` hook w następujący sposób: load_plugin_textdomain( 'moja-domena-wtyczki', false, dirname( plugin_basename( __FILE__) ).'/i18n' ); Próbowałem również załadować go z akcji `plugins_loaded`, ale wynik był taki sam, wtyczka nie jest lokalizowana, gdy ustawiam `WPLANG` na `en_US`. Umieściłem plik `my-plugin-domain-en_US.mo` w `plugin_base_dir/i18n`. Nie mam pojęcia, dlaczego to nie działa. Wszelkie sugestie są mile widziane.


title: Problem z integracją karuzeli Bootstrap

text:
Cześć, chcę pokazać 4 elementy na jednym slajdzie, działa, ale myślę, że zrobiłem dużo trudnego kodowania, czy ktoś może mi dać lepsze rozwiązanie? oto mój kod

 <?php $prefix_posts = nowe WP_Query( array( 'post_type' => 'prefix_portfolio', 'tax_query' => array( array( 'taxonomy' => 'prefix_portfolio_categories', 'field' => 'slug', ' terminy' => array( 'Initiatieffase', ), ), ), ) ); ?> <?php if ($prefix_posts->have_posts()): ?> <?php while ($prefix_posts->have_posts()): ?> <?php $prefix_posts->the_post(); ?>

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

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

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

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

 <?php endwhile; ?> <?php else: ?>
Nie znaleziono postów
 <?php endif; ?> <?php wp_reset_postdata(); ?>


title: Zewnętrzny interfejs API WordPress

text: Chciałbym manipulować witryną WordPress z innego programu/witryny. CZY istnieje już napisane API, które zapewnia dostęp i uwierzytelnianie, aby to zrobić? Najlepiej byłoby, gdybym używał instancji wordpress z wieloma witrynami i chcę, aby zewnętrzny program dodawał nowe witryny, wysyłał opcje konfiguracyjne do wtyczek itp.


title: Jak usunąć CSS z motywu potomnego?

text: Używam motywu „dwadzieścia” jako motywu nadrzędnego dla mojego motywu podrzędnego. Mam inne arkusze stylów, których chcę użyć, więc próbuję dowiedzieć się, jak `wp_deregister_style` dla arkusza `style.css`, który jest drukowany w sekcji `head` w html. Sprawdziłem globalną zmienną `$wp_styles` wokół haka `shutdown` i widzę inne style, ale nie `style.css` — jak mogę sprawić, żeby mój motyw potomny przestał go używać? Zdaję sobie sprawę, że nazwa motywu i informacje muszą być tutaj przechowywane - nie chcę ich usuwać, po prostu nie chcę, aby były "umieszczone" w kolejce


title: Jak dodać kategorię do postu w kodzie?

text: Dużo zajmujemy się obsługą postów poza interfejsem WordPress, w związku z czym potrzebujemy sposobów kategoryzowania postów. Oczywiście Wordpress ma kategorie (taksonomie) na postach i planuję ich używać, ale nie znalazłem sposobu, aby to zrobić w kodzie. Szeroko używamy również niestandardowych typów postów, więc zaakceptowana odpowiedź może wymagać określenia, w jaki sposób włączyć do nich kategorie.


title: Jak dodać funkcję zestawu polecanych obrazów do motywu, który nie jest jeszcze wbudowany?

text: Jestem względnym nowicjuszem w WP i PHP w ogóle, ale teraz, kiedy się tym zainteresowałem, złapałem „gorączkę WP” i porzuciłem asp.net. W końcu znalazłem motyw wysokiej jakości, który mi się podoba i rozważam jego zakup; Mam 4 blogi i liczę, ale nie mogę uzyskać podstawowej wersji motywu do wyświetlania linku **ustaw wyróżniony obraz** w moim administratorze WP podczas tworzenia posta lub strony. Instalacja waniliowa, WP 3.5.1. Forum wsparcia nie jest zbyt dobre i nikt nie odpowiedział, ale jestem całkiem pewien, że nie wbudowali tej funkcji w swój motyw. Czy mogę samodzielnie dodać funkcję **ustaw polecany obraz**, nawet jeśli nie jestem ćpunem PHP (jeszcze)? Wszelkie wskazówki w tym zakresie (czy chcę to usłyszeć, czy nie!) byłyby bardzo mile widziane!


title: Przesyłanie pliku, przesyła tylko nazwę pliku

text: Pracuję nad prostym frontendowym wgrywaniem obrazu w Wordpress. Za pomocą tego fragmentu kodu mogę przesłać do sekcji mediów wordpress, ale przesyłam tylko nazwę i adres URL pliku, bez obrazu. Czy ktoś wie, co muszę zrobić, aby również przesłać obraz? Mój formularz: <form id="dash_action" method="post" enctype="multipart/form-data"> <input type="file" name="file" /> <input name="submit" type="prześlij " class="button" value="<?php _e( 'Zapisz ustawienia' ); ?>" /> </form><!--End dash_action--> Obsługa mojego formularza PHP: if( isset( $_POST[ 'wyślij'] ) ) { $nazwa_pliku = $_PLIKI['plik']['nazwa']; $wp_filetype = wp_check_filetype( nazwa podstawowa($nazwapliku), null ); $wp_upload_dir = wp_upload_dir(); $attachment = array( 'guid' => $wp_upload_dir['subdir'] . '/' .basename( $filename ), 'post_mime_type' => $wp_filetype['type'], 'post_title' => preg_replace( '/ \.[^.]+$/', '', basename( $filename ) ), 'post_content' => '', 'post_status' => 'dziedziczyć' ); $attach_id = wp_insert_attachment($attachment, $filename, 37 ); require_once( ABSPATH . 'wp-admin/includes/image.php' ); $attach_data = wp_generate_attachment_metadata ($attach_id, $filename); wp_update_attachment_metadata ($attach_id, $attach_data); }


title: Czy istnieje bezproblemowe rozwiązanie do przesyłania wtyczek do wordpress.org SVN i GitHub?

text: > **Possible Duplicate:** > How-to: wyślij repozytorium GitHub na serwery wtyczek wordpress Uwielbiam WordPressa, ale uwielbiam też GitHub. Czy chciałbyś wiedzieć, czy istnieje bezproblemowe rozwiązanie do używania zarówno SVN, jak i GitHub do tworzenia wtyczek?


title: Aktualizacja do wersji 3.1.1 kończy się niepowodzeniem

text: Podczas automatycznej aktualizacji otrzymuję następujące informacje: Pobieranie aktualizacji ze strony http://wordpress.org/wordpress-3.1.1.zip… Rozpakowywanie aktualizacji… Nie można utworzyć katalogu.: /public_html Instalacja nie powiodła się Wszystkie moje pliki wp znajdują się w katalogu / public_html i katalog już istnieje. Użytkownik FTP, którego loguję, jest właścicielem wszystkich plików Wordpress, więc nie może to być problem z chmodem. Czy jest jakiś powód, dla którego występuje ten błąd?


title: Jak ustalić, czy post zawiera treść widżetu?

text: Mam zarejestrowany pasek boczny o nazwie „my-header”, który wpływa na bezwzględne pozycjonowanie elementów poniżej w znaczniku. Muszę więc wykonać zapytanie w header.php, aby określić, czy pasek boczny jest obecny dla bieżącego postu, i napisać identyfikator klasy do tagu body mojego motywu. Użyję tej klasy css, aby odpowiednio dostosować bezwzględne pozycjonowanie elementów. Czy istnieje metoda, którą można wywołać niezależnie od metody używanej do wyświetlania paska bocznego, aby określić, czy post zawiera zawartość widżetu dla widżetu „mój-pasek boczny”? Na przykład taki, który po prostu zwraca prawdę/fałsz? Po przejrzeniu widgets.php próbowałem użyć is_active_sidebar('my-header'), ale zwraca true dla wszystkich stron. Potrzebuję funkcji, która akceptuje post jako argument. W przeciwnym razie, jeśli żadna nie istnieje, przypuszczam, że stworzę własną funkcję.


title: Dodaj problemy ze stroną menu (uprawnienia i pozycja)

text:
OK, mam problem z wtyczką generatora paska bocznego. Ta wtyczka tworzy podstronę o nazwie "Paski boczne" w WP-Admin. Chodzi o to, że jest tworzony jako dziecko strony "Wygląd". I nie chcę tego tutaj, chcę, aby "Paski boczne" były podstroną mojej własnej strony o nazwie "moja-strona". Znalazłem tę linię w kodzie wtyczki: function admin_menu(){ add_submenu_page('themes.php', 'Sidebars', 'Sidebars', 'manage_options', __FILE__, array('sidebar_generator','admin_page')); } I zmieniono 'themes.php' na 'moja-strona'. Teraz "Paski boczne" są wyświetlane w Moja-Strona, ale kiedy próbuję uzyskać do nich dostęp, pokazuje: > Nie masz wystarczających uprawnień, aby uzyskać dostęp do tej strony. Dlaczego tak się dzieje i jak to naprawić? I dodatkowe pytanie - podstrona Sidebars wyświetla się zawsze na górze mojej listy podstron Moja-Strona, jak to zmienić (tak naprawdę chcę, żeby była to ostatnia podstrona Moja-Strona). Oryginalny, pełny kod: <?php /* Nazwa wtyczki: URI wtyczki generatora paska bocznego: http://www.getson.info Opis: Ta wtyczka generuje tyle pasków bocznych, ile potrzebujesz. Następnie umożliwia umieszczenie ich na dowolnej stronie. Wersja 1.1 obsługuje teraz motywy z wieloma paskami bocznymi. Wersja: 1.1.0 Autor: Kyle Getson URI autora: http://www.kylegetson.com Copyright (C) 2009 Kyle Robert Getson */ /* Copyright (C) 2009 Kyle Robert Getson, kylegetson.com i getson.info program jest wolnym oprogramowaniem; możesz go rozpowszechniać i/lub modyfikować zgodnie z warunkami Powszechnej Licencji Publicznej GNU opublikowanej przez Free Software Foundation; albo w wersji 3 Licencji, albo (według Państwa wyboru) w dowolnej późniejszej wersji. Ten program jest rozpowszechniany w nadziei, że będzie przydatny, ale BEZ ŻADNEJ GWARANCJI; bez dorozumianej gwarancji PRZYDATNOŚCI HANDLOWEJ lub PRZYDATNOŚCI DO OKREŚLONEGO CELU. Więcej szczegółów znajdziesz w Powszechnej Licencji Publicznej GNU. Powinieneś otrzymać kopię GNU General PublicLicencja wraz z tym programem. Jeśli nie, zobacz <http://www.gnu.org/licenses/>. */ class sidebar_generator { function sidebar_generator(){ add_action('init',array('sidebar_generator','init')); add_action('admin_menu',array('sidebar_generator','admin_menu')); add_action('admin_print_scripts', array('sidebar_generator','admin_print_scripts')); add_action('wp_ajax_add_sidebar', array('sidebar_generator','add_sidebar') ); add_action('wp_ajax_remove_sidebar', array('sidebar_generator','remove_sidebar') ); //edytuj posty/strony add_action('edit_form_advanced', array('sidebar_generator', 'edit_form')); add_action('edit_page_form', array('sidebar_generator', 'edit_form')); //zapisz posty/strony add_action('edit_post', array('sidebar_generator', 'save_form')); add_action('publish_post', array('sidebar_generator', 'save_form'));add_action('save_post', array('sidebar_generator', 'save_form')); add_action('edit_page_form', array('sidebar_generator', 'save_form')); } function init(){ //przejdź przez każdy pasek boczny i zarejestruj go $sidebars = sidebar_generator::get_sidebars(); if(is_array($sidebars)){ foreach($sidebars as $sidebar){ $sidebar_class = sidebar_generator::name_to_class($sidebar); register_sidebar(array( 'name'=>$sidebar, 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '
', 'after_title' => '
', )); } } } funkcja admin_print_scripts(){ wp_print_skrypty( array( 'worek' )); ?> <skrypt> function add_sidebar( nazwa_paska_bocznego ) { var mysack = new sack("<?php bloginfo( 'wpurl' ); ?>/wp-admin/admin-ajax.php" ); mysack.execute = 1; mysack.method = 'POST'; mysack.setVar( "action", "add_sidebar" ); mysack.setVar( "nazwa_paska bocznego", nazwa_paska bocznego ); mysack.encVar( "cookie", document.cookie, false ); mysack.onError = function() { alert('Błąd Ajax. Nie można dodać paska bocznego' )}; mysack.runAJAX(); zwróć prawdę; } function remove_sidebar( nazwa_paska_bocznego,numer ) { var mysack = new sack("<?php bloginfo( 'wpurl' ); ?>/wp-admin/admin-ajax.php" );mysack.execute = 1; mysack.method = 'POST'; mysack.setVar( "akcja", "usuń_pasek boczny" ); mysack.setVar( "nazwa_paska bocznego", nazwa_paska bocznego ); mysack.setVar( "numer_wiersza", numer ); mysack.encVar( "cookie", document.cookie, false ); mysack.onError = function() { alert('Błąd Ajax. Nie można dodać paska bocznego' )}; mysack.runAJAX(); //alert('hi!:::'+sidebar_name); zwróć prawdę; } </script> <?php } funkcja add_sidebar(){ $sidebars = sidebar_generator::get_sidebars(); $name = str_replace(array("\n","\r","\t"),'',$_POST['sidebar_name']); $id = sidebar_generator::name_to_class($name); if(isset($sidebars[$id])){ die("alert('Pasek boczny już istnieje, użyj innegont name.')"); } $sidebars[$id] = $name; sidebar_generator::update_sidebars($sidebars); $js = " var tbl = document.getElementById('sbg_table'); var lastRow = tbl.rows.length; // jeśli w tabeli nie ma wiersza nagłówka, to iteration = lastRow + 1 var iteration = lastRow; var wiersz = tbl.insertRow(ostatniWiersz); // lewa komórka var cellLeft = row.insertCell(0); var textNode = document.createTextNode('$name'); cellLeft.appendChild(textNode); //środkowa komórka var cellLeft = row.insertCell(1); var textNode = document.createTextNode('$id'); cellLeft.appendChild(textNode); //var cellLeft = row.insertCell(2); //var textNode = document.createTextNode('[Usuń]'); //cellLeft.appendChild(textNode) var cellLeft = row.insertCell(2); removeLink = document.createElement('a'); linkText = document.createTextNode('usuń'); removeLink.setAttribute('onclick', 'remove_sidebar_link(\'$name\')'); removeLink.setAttribute('href', 'javacript:void(0)'); usuńLink.appendChild(linkText); cellLeft.appendChild(removeLink); "; die( "$js"); } function remove_sidebar(){ $sidebars = sidebar_generator::get_sidebars(); $name = str_replace(array("\n","\r","\t"),' ',$_POST['sidebar_name']); $id = sidebar_generator::name_to_class($name); if(!isset($sidebars[$id])){ die("alert('Pasek boczny nie istnieje.') "); } $numer_wiersza = $_POST['numer_wiersza'];unset($paski boczne[$id]); sidebar_generator::update_sidebars($sidebars); $js = " var tbl = document.getElementById('sbg_table'); tbl.deleteRow($row_number) "; umrzeć($js); } function admin_menu(){ add_submenu_page('themes.php', 'Paski boczne', 'Paski boczne', 'manage_options', __FILE__, array('sidebar_generator','admin_page')); } function admin_page(){ ?> <skrypt> function remove_sidebar_link(nazwa,numer){ answer = Confirm("Czy na pewno chcesz usunąć " + nazwa + "?\nSpowoduje to usunięcie wszystkich widżetów przypisanych do tego paska bocznego. ”); if(odpowiedź){ //alert('AJAX USUŃ'); usuń_pasek boczny(nazwa,liczba); }else{ return false; } } funkcja add_sidebar_link(){ var sidebar_name = prompt("Nazwa paska bocznego:",""); //alert(nazwa_paska bocznego); add_sidebar(nazwa_paska bocznego); } </script>

Generator paska bocznego

 Nazwa paska bocznego jest tylko do Twojego użytku. Nie będzie widoczny dla żadnego z odwiedzających. Klasa CSS jest przypisana do każdego paska bocznego, użyj tej stylizacji, aby dostosować paski boczne.

 + Dodaj pasek boczny

 Nazwa	 Klasa CSS	 Usuń
 <?php $sidebars = sidebar_generator::get_sidebars(); //$sidebars = array('bob','john','mike','asdf'); if(is_array($sidebars) && !empty($sidebars)){ $cnt=0; foreach($sidebars as $sidebar){ $alt = ($cnt%2 == 0 ? 'alternate' : ''); ?> <tr class="<?php echo $alt?>"> <?php echo $sidebar; ?>	 <?php echo sidebar_generator::name_to_class($sidebar); ?>	 <a href="javascript:void(0);" onclick="return remove_sidebar_link('<?php echo $sidebar; ?>',<?php echo $cnt+1; ?>);" title="Usuń ten pasek boczny">usuń
 <?php $cnt++; }                     }w przeciwnym razie{                         ?>
 Brak zdefiniowanych pasków bocznych
 <?php } ?>

Przekaż darowiznę

 Wspieraj dalszy rozwój tej wtyczki.
 <form action="https://www.paypal.com/cgi-bin/webscr" method="post"> <input type="hidden" name="cmd" value="_s-xclick" > <input type="ukryty" name="hosted_button_id" value="9271055"> <input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif" obramowanie ="0" name="prześlij" alt="PayPal — bezpieczniejszy i łatwiejszy sposób płacenia online!"> </form>

 <?php } /** * do zapisania stron/postu */ function save_form($post_id){ $is_saving = $_POST['sbg_edit']; if(!empty($is_saving)){ delete_post_meta($post_id, 'sbg_selected_sidebar'); delete_post_meta($post_id, 'sbg_selected_sidebar_replacement'); add_post_meta($post_id, 'sbg_selected_sidebar', $_POST['sidebar_generator']); add_post_meta($post_id, 'sbg_selected_sidebar_replacement', $_POST['sidebar_generator_replacement']); } } function edit_form(){ global $post; $post_id = $post; if (is_object($post_id)) { $post_id = $post_id->ID; } $selected_sidebar = get_post_meta($post_id, 'sbg_selected_sidebar', true); if(!is_array($selected_sidebar)){$tmp = $selected_sidebar; $selected_sidebar = array(); $selected_sidebar[0] = $tmp; } $selected_sidebar_replacement = get_post_meta($post_id, 'sbg_selected_sidebar_replacement', true); if(!is_array($selected_sidebar_replacement)){ $tmp = $selected_sidebar_replacement; $selected_sidebar_replacement = array(); $selected_sidebar_replacement[0] = $tmp; } ?>

Paski boczne

 <input name="sbg_edit " type="ukryty" value="sbg_edit" />
 Wybierz pasek boczny, który chcesz wyświetlićna tej stronie i który pasek boczny ma zastąpić. (pozostaw niezaznaczone, aby używać wszędzie domyślnego paska bocznego)

 <?php globalne $wp_registered_sidebars; //var_dump($wp_registered_sidebars); for($i=0;$i<5;$i++){ ?>
Zamień <select name="sidebar_generator[<?=$i?>]"> <option value="0"<?php if ($selected_sidebar[$i] == ''){ echo " wybrane";} ?>>Domyślny pasek boczny WP</option> <?php $sidebars = $wp_registered_sidebars;// sidebar_generator::get_sidebars(); if(is_array($sidebars) && !empty($sidebars)){ foreach($sidebars as $sidebar){ if($selected_sidebar[$i] == $sidebar['name']){ echo "<option value='{$sidebar['name']}' selected >{$sidebar['name']}</option>\n"; }else{ echo "<option value='{$sidebar['name']}'>{$sidebar['name']}</option>\n"; } } } ?> </select> z <select name="sidebar_generator_replacement[<?=$i?>]"> <option value="0"<?php if($selected_sidebar_replacement[$i] == '') { echo " wybrane";} ?>>Brak</option> <?php $sidebar_replacements = $wp_registered_sidebars;//sidebar_generator::get_sidebars(); if(is_array($sidebar_replacements) && !empty($sidebar_replacements)){ foreach($sidebar_replacements as $sidebar){ if($selected_sidebar_replacement[$i] == $sidebar['name']){ echo "<option value='{$sidebar['name']}' zaznaczone >{$sidebar['name']}</option>\n"; }else{ echo "<option value='{$sidebar['name']}'>{$sidebar['name']}</option>\n"; } } } ?> </select>
 <?php } ?>

 <?php } /** * wywoływane przez akcja get_sidebar. to jest miejsce, w którym to jestndo motywu */ function get_sidebar($name="0"){ if(!is_singular()){ if($name != "0"){ dynamic_sidebar($name); }else{ dynamic_sidebar(); } return;//nie rób nic } global $wp_query; $post = $wp_query->get_queried_object(); $selected_sidebar = get_post_meta($post->ID, 'sbg_selected_sidebar', true); $selected_sidebar_replacement = get_post_meta($post->ID, 'sbg_selected_sidebar_replacement', true); $did_sidebar = fałsz; //ta strona używa wygenerowanego paska bocznego if($selected_sidebar != '' && $selected_sidebar != "0"){ echo "\n\n\n"; if(is_array($selected_sidebar) && !empty($selected_sidebar)){ for($i=0;$i<sizeof($selected_sidebar);$i++){if($name == "0" && $selected_sidebar[$i] == "0" && $selected_sidebar_replacement[$i] == "0"){ //echo "\n\n"; dynamic_sidebar();//domyślne zachowanie $did_sidebar = true; przerwanie; }elseif($name == "0" && $selected_sidebar[$i] == "0"){ //zamieniamy domyślny pasek boczny na coś //echo "\n\n"; dynamic_sidebar($selected_sidebar_replacement[$i]);//domyślne zachowanie $did_sidebar = true; przerwanie; }elseif($selected_sidebar[$i] == $name){ //zamieniamy to$name //echo "\n\n"; $did_sidebar = prawda; dynamic_sidebar($selected_sidebar_replacement[$i]);//domyślne przerwanie zachowania; } //echo "\n"; } } if($did_sidebar == true){ echo "\n\n\n"; zwrócić; } //Przejdź bez znajdowania zamienników, wyślijmy im to, o co prosili if($name != "0"){ dynamic_sidebar($name); }else{ dynamic_sidebar(); } echo "\n\n\n"; return; }else{ if($name != "0"){ dynamic_sidebar($name); }else{ dynamic_sidebar(); } } } /** * zastępuje tablicę paska bocznego names */ function update_sidebars($sidebar_array){ $sidebars = update_option('sbg_sidebars',$sidebar_array); } /** * pobiera wygenerowane paski boczne */ function get_sidebars(){ $sidebars = get_option('sbg_sidebars'); return $sidebars; } function name_to_class($name){ $class = str_replace(array(' ',',','.','"',"'",'/',"\\",'+', '=',')','(','*','&','^','%','$','#','@','!','~','` ','<','>','?','[',']','{','}','|',':',),'',$name); zwróć $klasę; } } $sbg = nowy generator_paska bocznego; function generated_dynamic_sidebar($name='0'){sidebar_generator::get_sidebar($name); zwróć prawdę; } ?>


title: Dlaczego niektóre z moich miniatur nie są generowane?

text: Obecnie rozwijam swój nowy motyw na stronie testing.detailsofmylife.net i używam szablonu WooThemes jako podstawowego projektu. Chcę spróbować dołączyć ich widżet WooTabs jako graficznie, myślę, że jest to dość atrakcyjne do wyświetlania danych postów odwiedzającym. Wiem, że wielu z was nie lubi TimThumb, ale jest to skrypt, którego motyw używa do generowania miniatur, więc muszę spróbować go uruchomić, aby układ mógł w końcu działać idealnie. Jak widać z widżetu na mojej stronie, dwie miniatury nie zostały wygenerowane przez funkcję TimThumb, ale nie do końca rozumiem dlaczego. Na przykład działający adres URL miniatury w widżecie wygląda tak: http://testing.detailsofmylife.net/wp-content/themes/headlines/thumb.php?src=http://testing.detailsofmylife.net/wp- content/uploads/2010/09/Claire-Maguire-Aint-Nobody-Breakage-Remix.jpg&w=50&h=50&zc=1&q=90, ale zepsuty adres URL miniatury wygląda tak: http://testing.detailsofmylife.net/wp- treść/motywy/headlines/thumb.php?src=http://media.detailsofmylife.net/uploads/2010/04/flux+pavilion.jpg&w=50&h=50&zc=1&q=90 Problem pojawia się chyba ze względu na lokalizację mediów, ale dodałem obie domeny do listy domen zewnętrznych, które mogą pracować ze skryptem. A jeśli sam sprawdzisz adresy URL obrazów (działające, a nie działające), możesz zobaczyć, że oba działają poprawnie samodzielnie. Na pewno więc oba powinny działać w ramach scenariusza? Jakakolwiek pomoc byłaby bardzo mile widziana, ponieważ trochę mnie to doprowadza do szału. Kopia mojego kodu dla TimThumb jest dostępna na końcu posta. Jeśli potrzebujesz innych danych/informacji daj mi znać :) Dzięki! <?php /** * Skrypt TimThumb stworzony przez Bena Gillbanksa, pierwotnie stworzony przez Tima McDanielsa i Darrena Hoyta * http://code.google.com/p/timthumb/ * * Powszechna Licencja Publiczna GNU, wersja 2 * http:/ /www.gnu.org/licenses/old-licenses/gpl-2.0.html * * Przykłady i dokumentwersja dostępna na stronie głównej projektu * http://www.binarymoon.co.uk/projects/timthumb/ */ define ('CACHE_SIZE', 1000); // liczba plików do przechowania przed wyczyszczeniem pamięci podręcznej zdefiniuj ('CACHE_CLEAR', 20); // maksymalna liczba plików do usunięcia w każdej pamięci podręcznej clear define ('CACHE_USE', TRUE); // użyć plików pamięci podręcznej? (głównie do testowania) zdefiniuj ('CACHE_MAX_AGE', 864000); // czas do buforowania w przeglądarce zdefiniuj ('VERSION', '1.26'); // numer wersji (aby wymusić odświeżenie pamięci podręcznej) define ('DIRECTORY_CACHE', './cache'); // zdefiniuj katalog pamięci podręcznej ('MAX_WIDTH', 1500); // zdefiniuj maksymalną szerokość obrazu ('MAX_HEIGHT', 1500); // zdefiniuj maksymalną wysokość obrazu ('ALLOW_EXTERNAL', FALSE); // zezwól na zewnętrzną stronę internetową (pomiń środki ostrożności - niezalecane!) define ('MEMORY_LIMIT', '30M'); // ustaw definicję limitu pamięci PHP ('MAX_FILE_ROZMIAR', 1500000); // limit rozmiaru pliku zapobiegający możliwym atakom DOS (około 1,5 megabajta) define ('CURL_TIMEOUT', 10); // limit czasu. Dostosuj według potrzeb (niżej = lepiej) // zewnętrzne domeny, które mogą być wyświetlane w Twojej witrynie $allowedSites = array ( 'photobucket.com', 'detailsofmylife.net', 'testing.detailsofmylife.net', 'detailsofmylife. net”, „img.youtube.com”, „media.detailsofmylife.net”, ); // PRZESTAŃ MODYFIKOWAĆ TUTAJ! // -------------------- // posortuj źródło obrazu $src = get_request ('src', ''); if ($src == '' || strlen ($src) <= 3) { display_error ('brak określonego obrazu'); } // wyczyść parametry przed użyciem $src = clean_source ($src); // pobierz typ MIME z src $mime_type = mime_type ($src); // używane tylko dla zewnętrznych stron internetowych $external_data_string = ''; // ogólny uchwyt pliku do czytania izapis do plików $fh = ''; // sprawdź, czy ten obrazek jest już w pamięci podręcznej // jeśli już jest w pamięci podręcznej, wyświetl obraz i umrzyj check_cache ($mime_type); // pamięć podręczna nie istnieje, a następnie przetworzyć wszystko // sprawdź, czy istnieje funkcja GD if (!function_exists ('imagecreatetruecolor')) { display_error ('Błąd biblioteki GD: imagecreatetruecolor nie istnieje - skontaktuj się ze swoim hostem i zapytaj go zainstalować bibliotekę GD'); } if (function_exists ('imagefilter') && zdefiniowany ('IMG_FILTER_NEGATE')) { $imageFilters = tablica ( 1 => tablica (IMG_FILTER_NEGATE, 0), 2 => tablica (IMG_FILTER_GRAYSCALE, 0), 3 => tablica (IMG_FILTER_BRIGHTNESS, 1), 4 => tablica (IMG_FILTER_CONTRAST, 1), 5 => tablica (IMG_FILTER_COLORIZE, 4), 6 => tablica (IMG_FILTER_EDGEDETECT, 0), 7 => tablica (IMG_FILTER_EMBOSS, 0), 8 => tablica (IMG_FILTER_GAUSSIAN_BLUR, 0), 9 => tablica (IMG_FILTER_SELECTIVE_BLUR, 0), 10 => tablica (IMG_FILTER_MEAN_REMOVAL, 0), 11 => tablica (IMG_FILTER_SMOOTH, 0), ); } // pobierz standardowe właściwości wejściowe $new_width = (int) abs (get_request ('w', 0)); $new_height = (int) abs (get_request ('h', 0)); $zoom_crop = (int) get_request ('zc', 0); $jakość = (int) abs (get_request ('q', 75)); $align = get_request ('a', 'c'); $filtry = get_request ('f', ''); $sharpen = (bool) get_request ('s', 0); // ustaw domyślną szerokość i wysokość, jeśli żadne z nich nie są jeszcze ustawione if ($new_width == 0 && $new_height == 0) { $new_width = 100; $nowa_wysokość = 100; } // upewnij się, że limity rozmiaru nie mogą być nadużywane $new_width = min ($new_width, MAX_WIDTH); $nowa_wysokość = min ($nowa_wysokość, MAX_WYSOKOŚĆ); // ustaw limit pamięci, aby mieć wystarczająco dużo miejsca na zmianę rozmiaru większych obrazów ini_set ('memory_limit', MEMORY_LIMIT); jeśli (file_exists ($src)) { // otwórz istniejący obraz $image = open_image ($mime_type, $src); if ($image === false) { display_error ('Nie można otworzyć obrazu:' . $src); } // Pobierz oryginalną szerokość i wysokość $width = imagesx ($image); $wysokość = obrazy ($obraz); $origin_x = 0; $origin_y = 0; // wygeneruj nowe w/h jeśli nie podano if ($nowa_szerokość && !$nowa_wysokość) { $nowa_wysokość = podłoga ($wysokość * ($nowa_szerokość / $szerokość)); } else if ($nowa_wysokość && !$nowa_szerokość) { $nowa_szerokość = podłoga ($szerokość * ($nowa_wysokość / $wysokość)); } // skalowanie w dół i dodawanie obramowań if ($zoom_crop == 3) { $final_height = $height * ($new_width / $width); if ($końcowa_wysokość > $nowa_wysokość) { $nowa_szerokość = $szerokość * ($nowa_wysokość / $wysokość); } else { $nowa_wysokość = $końcowa_wysokość; }} // utwórz nowy obraz w prawdziwym kolorze $canvas = imagecreatetruecolor ($new_width, $new_height); łączenie obrazów ($canvas, false); // Utwórz nowy przezroczysty kolor dla obrazka $color = imagecolorallocatealpha ($canvas, 0, 0, 0, 127); // Całkowicie wypełnij tło nowego obrazu przydzielonym kolorem. imagefill ($canvas, 0, 0, $color); // zmniejsz i dodaj obramowanie if ($zoom_crop == 2) { $final_height = $height * ($new_width / $width); if ($końcowa_wysokość > $nowa_wysokość) { $origin_x = $nowa_szerokość / 2; $nowa_szerokość = $szerokość * ($nowa_wysokość / $wysokość); $origin_x = okrągły ($origin_x - ($nowa_szerokość / 2)); } else { $origin_y = $nowa_wysokość / 2; $nowa_wysokość = $końcowa_wysokość; $origin_y = okrągły ($origin_y - ($nowa_wysokość / 2)); }} // Przywróć mieszanie przezroczystości imagesavealpha ($canvas, true); if ($zoom_crop > 0) { $src_x = $src_y = 0; $src_w = $szerokość; $src_h = $wysokość; $cmp_x = $szerokość / $nowa_szerokość; $cmp_y = $wysokość / $nowa_wysokość; // oblicz współrzędne x lub y oraz szerokość lub wysokość źródła if ($cmp_x > $cmp_y) { $src_w = round ($width / $cmp_x * $cmp_y); $src_x = round (($szerokość - ($szerokość / $cmp_x * $cmp_y)) / 2); } else if ($cmp_y > $cmp_x) { $src_h = round ($wysokość / $cmp_y * $cmp_x); $src_y = round (($wysokość - ($wysokość / $cmp_y * $cmp_x)) / 2); } // przycinanie pozycyjne! switch ($align) { case 't': case 'tl': case 'lt': case 'tr': case 'rt':$src_y = 0; przerwanie; case 'b': case 'bl': case 'lb': case 'br': case 'rb': $src_y = $height - $src_h; przerwanie; case 'l': case 'tl': case 'lt': case 'bl': case 'lb': $src_x = 0; przerwanie; case 'r': case 'tr': case 'rt': case 'br': case 'rb': $src_x = $width - $new_width; $src_x = $szerokość - $src_w; przerwanie; domyślnie: przerwa; } próbka kopii obrazu ($canvas, $image, $origin_x, $origin_y, $src_x, $src_y, $new_width, $new_height, $src_w, $src_h); } else { // skopiuj i zmień rozmiar części obrazu zh ponowne próbkowanie obrazucopyresampled ($kanwa, $obraz, 0, 0, 0, 0, $nowa_szerokość, $nowa_wysokość, $szerokość, $wysokość); } if ($filters != '' && function_exists ('imagefilter') && defined ('IMG_FILTER_NEGATE')) { // zastosuj filtry do obrazu $filterList = explode ('|', $filters); foreach ($filterList as $fl) { $filterSettings = explode (',', $fl); if (isset ($imageFilters[$filterSettings[0]])) { for ($i = 0; $i < 4; $i ++) { if (!isset ($filterSettings[$i])) { $filterSettings [$i] = null; } else { $filterSettings[$i] = (int) $filterSettings[$i]; } } switch ($imageFilters[$filterSettings[0]][1]) { przypadek 1: filtr obrazu ($canvas, $imageFilters[$filterSettings[0]][0], $filterSettings[1]); przerwanie; przypadek 2: filtr obrazu ($canvas, $imageFilters[$filterSettings[0]][0], $filterSettings[1], $filterSettings[2]); przerwanie; przypadek 3: filtr obrazu ($canvas, $imageFilters[$filterSettings[0]][0], $filterSettings[1], $filterSettings[2], $filterSettings[3]); przerwanie; przypadek 4: filtr obrazu ($canvas, $imageFilters[$filterSettings[0]][0], $filterSettings[1], $filterSettings[2], $filterSettings[3], $filterSettings[4]); przerwanie; domyślnie: filtr obrazu ($canvas, $imageFilters[$filterSettings[0]][0]); przerwanie; } } } }// wyostrz obraz if ($sharpen && function_exists ('imageconvolution')) { $sharpenMatrix = tablica ( tablica (-1,-1,-1), tablica (-1,16,-1), tablica (-1, -1,-1), ); $dzielnik = 8; $przesunięcie = 0; konwolucja obrazu ($płótno, $sharpenMatrix, $dzielnik, $przesunięcie); } // wyślij obraz do przeglądarki na podstawie typu mime show_image ($mime_type, $canvas); // usuń obrazek z pamięci imagedestroy ($canvas); // jeśli nie ma w pamięci podręcznej, wyczyść trochę miejsca i wygeneruj nowy plik clean_cache (); umierać (); } else { if (strlen ($src)) { display_error ('obraz' . $src . 'nie znaleziono'); } else { display_error ('brak określonego źródła'); } } /** * * @global <type> $quality * @param <type> $mime_type * @param <type> $image_resized */ function show_image ($mime_type, $image_resized) { global $jakość; $cache_file = get_cache_file ($mime_type); if (strpos ($mime_type, 'jpeg') > 1) { imagejpeg ($image_resize, $cache_file, $quality); } else { imagepng ($rozmiar_obrazu, $plik_cache, podłoga ($jakość * 0,09)); } show_cache_file ($mime_type); } /** * * @param <type> $property * @param <type> $default * @return <typ> */ function get_request ($property, $default = 0) { if (isset ($_GET[$property ])) { return $_GET[$właściwość]; } else { return $default; } } /** * * @param <type> $mime_type * @param <type> $src * @return <type> */ function open_image ($mime_type, $src) { if (strpos ($mime_type, 'jpeg' ) !== fałsz) { $obraz = imagecreatefromjpeg ($src); } elseif (strpos ($mime_type, 'png') !== false) { $image = imagecreatefrompng ($src); } elseif (strpos ($mime_type, 'gif') !== false) { $image = imagecreatefromgif ($src); } return $obraz; } /** * wyczyść stare pliki z pamięci podręcznej * możesz zmienić liczbę plików do przechowywania i usuwania na pętlę w definicjach na górze kodu * * @return <typ> */ function clean_cache () { // dodaj escape // Zmniejsza ilość czyszczenia pamięci podręcznej, aby zaoszczędzić trochę szybkości procesora if (rand (1, 50) > 10) { return true; }              spłukać (); $pliki = glob (KATALOG_CACHE . '/*', GLOB_BRACE); if (liczba ($pliki) > CACHE_SIZE) { $wczoraj = czas () - (24 * 60 * 60); usortuj ($files, 'filemtime_compare'); $i = 0; foreach ($pliki jako $file) {$i++; if ($i >= CACHE_CLEAR) { powrót; } if (@filemtime ($plik) > $wczoraj) { return; } if (plik_istnieje ($plik)) { odłącz ($plik); } } } } /** * porównaj czas dwóch plików * * @param <typ> $a * @param <typ> $b * @return <typ> */ function filemtime_compare ($a, $b) { $break = eksploduj ('/', $_SERVER['SCRIPT_FILENAME']); $nazwa pliku = $przerwa[liczba ($przerwa) - 1]; $filepath = str_replace ($nazwa pliku, '', $_SERVER['SCRIPT_FILENAME']); $plik_a = ścieżka rzeczywista ($ścieżka do pliku . $a); $plik_b = ścieżka rzeczywista ($ścieżka do pliku . $b); return filemtime ($file_a) - filemtime ($file_b); } /** * określ typ MIME pliku * * @param <typ> $plik * @return <typ> */ function mime_type ($plik) { $file_infos = getimagesize ($plik); $mime_type = $file_infos['mime']; // brak typu mime if (pusty ($mime_type)) { display_error ('brak określonego typu mime'); } // użyj mime_type do określenia typu MIME if (!preg_match ("/jpg|jpeg|gif|png/i", $mime_type)) { display_error ('Nieprawidłowy typ mime src: ' . $mime_type); } return strtolower ($mime_type); } /** * * @param <type> $mime_type */ function check_cache ($mime_type) { if (CACHE_USE) { if (!show_cache_file ($mime_type)) { // upewnij się, że istnieje katalog pamięci podręcznej if (!file_exists (DIRECTORY_CACHE) )) { // nadaj uprawnienia 777, aby programista mógł // nadpisać pliki utworzone przez użytkownika serwera WWW mkdir (DIRECTORY_CACHE); chmod (KATALOG_CACHE, 0777); } } } } /** * * @param <type> $mime_type * @return <type> */ function show_cache_file ($mime_type) { // użyj pamięci podręcznej przeglądarki, jeśli jest dostępna, aby przyspieszyć ładowanie strony, jeśli (isset ($_SERVER[ 'HTTP_IF_MODIFIED_SINCE'])) { if (strtotime ($_SERVER['HTTP_IF_MODIFIED_SINCE']) < strtotime('teraz')) { nagłówek ('HTTP/1.1 304 Niezmodyfikowany'); umierać (); } } $cache_file = get_cache_file ($mime_type); if (file_exists ($cache_file)) { // zmień zmodyfikowane nagłówki $gmdate_expires = gmdate ('D, d M Y H:i:s', strtotime ('teraz +10 dni')) . „GMT”; $gmdate_modified = gmdate ('D, d M Y H:i:s') . „GMT”; // wyślij nagłówki treści, a następnie wyświetl nagłówek obrazu ('Content-Type:' . $mime_type);nagłówek („Zakresy akceptacji: bajty”); nagłówek ('Ostatnia modyfikacja:' . $gmdate_modified); header ('Content-Length:' .filesize ($cache_file)); nagłówek ('Kontrola pamięci podręcznej: max-age=' . CACHE_MAX_AGE . ', must-revalidate'); nagłówek ('Wygasa:' . $gmdate_expires); if (!@readfile ($cache_file)) { $content = file_get_contents ($cache_file); if ($zawartość != FAŁSZ) { echo $zawartość; } else { display_error ('nie można załadować pliku pamięci podręcznej'); } } umiera (); } zwróć FALSE; } /** * * @staticvar string $cache_file * @param <type> $mime_type * @return string */ function get_cache_file ($mime_type) { static $cache_file; globalne $src; $typ_pliku = '.png'; if (strpos ($mime_type, 'jpeg') > 1) {$file_type = '.jpg'; } if (!$cache_file) { // filemtime służy do upewnienia się, że zaktualizowane pliki zostaną ponownie zapisane w pamięci podręcznej $cache_file = DIRECTORY_CACHE . '/' . md5 ($_SERVER ['QUERY_STRING'] . VERSION . filemtime ($src)) . $typ_pliku; } return $cache_file; } /** * * @param <typ> $url * @return <typ> */ function validate_url ($url) { $pattern = "/\b(?:(?:https?):\/\/| www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/ i"; return preg_match ($wzór, $url); } /** * * @global array $allowedSites * @param string $src * @return string */ function check_external ($src) { global $allowedSites; // opracowanie szczegółów pliku $fileDetails = pathinfo ($src); $nazwa_pliku = 'zewnętrzny_' . md5 ($źródło); $local_filepath = DIRECTORY_CACHE . '/' . $nazwa pliku . '.' . strtolower ($fileDetails['extension']); // zrób to tylko wtedy, gdy plik jeszcze nie istnieje if (!file_exists ($local_filepath)) { if (strpos (strtolower ($src), 'http://') !== false || strpos (strtolower ( $src), 'https://') !== false) { if (!validate_url ($src)) { display_error ('nieprawidłowy adres URL'); } $url_info = parse_url ($src); // przekonwertuj adresy URL filmów z YouTube // musisz uporządkować kod, jeśli ($url_info['host'] == 'www.youtube.com' || $url_info['host'] == 'youtube.com') { parse_str ($url_info['zapytanie']); if (isset ($v)) { $src = 'http://img.youtube.com/vi/' . $v . '/0.jpg'; $url_info['host'] = 'img.youtube.com'; } } // sprawdź dozwolone witryny (jeśli wymagane) if (ALLOW_EXTERNAL) {$isAllowedSite = prawda; } else { $isAllowedSite = false; foreach ($allowedSites as $site) { if (strpos (strtolower ($url_info['host']), $site) !== false) { $isAllowedSite = true; } } } // jeśli dozwolone if ($isAllowedSite) { if (function_exists ('curl_init')) { global $fh; $fh = fopen ($ścieżka_lokalna, 'w'); $ch = curl_init ($src); curl_setopt ($ch, CURLOPT_TIMEOUT, CURL_TIMEOUT); curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0'); curl_setopt ($ch, CURLOPT_URL, $src); curl_setopt ($ch,CURLOPT_RETURNTRANSFER, TRUE); curl_setopt ($ch, CURLOPT_HEADER, 0); curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt ($ch, CURLOPT_FILE, $fh); curl_setopt ($ch, CURLOPT_WRITEFUNCTION, 'curl_write'); // błąd więc umieraj if (curl_exec ($ch) === FALSE) { unlink ($local_filepath); dotknąć ($ścieżka_lokalna_pliku); display_error ('błąd odczytu pliku' .$src .' ze zdalnego hosta: '.curl_error ($ch)); } curl_close ($ch); fzamknij ($fh); } else { if (!$img = file_get_contents ($src)) { display_error ('zdalny plik dla '.$src.' nie jest dostępny. Prawdopodobnie uprawnienia do pliku są ograniczone');} if (file_put_contents ($local_filepath, $img) == FALSE) { display_error ('błąd zapisu pliku tymczasowego'); } } if (!file_exists ($local_filepath)) { display_error ('plik lokalny dla' .$src .'nie można utworzyć'); } $src = $ścieżka_lokalna; } else { display_error ('zdalny host "' . $url_info['host'] . '" niedozwolone'); } } } else { $src = $local_filepath; } return $src; } /** * wywołanie zwrotne polecenia curl do odbierania obrazów zewnętrznych * ograniczenie ilości danych pobieranych z serwerów zewnętrznych * * @global <type> $data_string * @param <typ> $handle * @param <type> $data * @return <typ> */ function curl_write ($uchwyt, $data) { global $external_data_string, $fh; fwrite ($fh, $dane); $external_data_string .= $dane; if (strlen ($external_data_string) > MAX_FILE_SIZE) { return 0; } else { return strlen ($data); } } /** * uporządkowanie adresu URL źródła obrazu * * @param <type> $src * @return string */ function clean_source ($src) { $host = str_replace ('www.', '', $_SERVER[ „HTTP_HOST”]); $regex = "/^(http(s|):\/\/)(www\.|)" . $host . "\//i"; $src = preg_replace ($regex, '', $src); $src = strip_tags ($src); $src = check_external ($src); // usuń ukośnik z początku łańcucha if (strpos ($src, '/') === 0) { $src = substr ($src, -(strlen ($src) - 1)); } // nie zezwalaj użytkownikom na używanie '../' // w celu gain dostęp do plików znajdujących się poniżej głównego dokumentu $src = preg_replace ("/\.\.+\//", "", $src); // pobierz ścieżkę do obrazu w systemie plików $src = get_document_root ($src) . '/' . $src; if (!is_file ($src)) { display_error ('źródło nie jest prawidłowym plikiem'); } if (rozmiar pliku ($src) > MAX_FILE_SIZE) { display_error ('plik źródłowy jest za duży (rozmiar pliku > MAX_FILE_SIZE)'); } if (filesize ($src) <= 0) { display_error ('plik źródłowy <= 0 bajtów. Możliwy błąd pobierania pliku zewnętrznego (plik jest za duży)'); } zwraca rzeczywistą ścieżkę ($src); } /** * * @param <type> $src * @return string */ function get_document_root ($src) { // sprawdź serwery uniksowe if (file_exists ($_SERVER['DOCUMENT_ROOT'] . '/' . $src )) { return $_SERVER['DOCUMENT_ROOT']; } // sprawdź od nazwy pliku skryptu (aby pobrać cały katalogdo lokalizacji timthumb) $parts = array_diff (rozbij ('/', $_SERVER['SCRIPT_FILENAME']), rozbij ('/', $_SERVER['DOCUMENT_ROOT'])); $ścieżka = $_SERVER['DOCUMENT_ROOT']; foreach ($parts as $part) { $path .= '/' . $część; if (plik_istnieje ($ścieżka . '/' . $src)) { return $ścieżka; } } // specjalne sprawdzenie serwerów Microsoft if (!isset ($_SERVER['DOCUMENT_ROOT'])) { $path = str_replace ("/", "\\", $_SERVER['ORIG_PATH_INFO']); $ścieżka = str_replace ($ścieżka, '', $_SERVER['SCRIPT_FILENAME']); if (plik_istnieje ($ścieżka . '/' . $src)) { return $ścieżka; } } display_error ('nie znaleziono pliku'); } /** * ogólny komunikat o błędzie * * @param <type> $errorString */ function display_error ($errorString = '') { header ('HTTP/1.1 400 Złe żądanie'); echo '<pre>' . htmlentities ($errorString); echo '<br />Ciąg zapytania: ' . htmlentities ($_SERVER['QUERY_STRING']); echo '<br />wersja TimThumb:' . WERSJA . '</pre>'; umierać (); }


title: Wszystkie identyfikatory postów są takie same po tym zapytaniu, ale wydaje się, że funkcja rewind_posts() tutaj nie działa?

text:
Wykonuję zapytanie wewnątrz pliku header.php, które najwyraźniej resetuje obiekt $post, aby wszystkie strony pobierały $post->ID ostatniego elementu w tej pętli. $mypostsheader = get_posts(array('cat' => "$cat,-$catHidden",'numberposts' => $cb2_current_count)); $current_page = get_post( $current_page );?>

<?php foreach($mypostsheader as $idx=>$post){ if ( $post->ID == $current_page ->ID )//zrób coś; } Próbowałem dodać rewind_posts() na końcu tej funkcji, a także na końcu header.php, ale moje echo $post->ID wewnątrz page.php nadal zwraca identyfikator ostatniego elementu w zapytaniu. Jakieś pomysły?


title: Nazwa bazy danych superadministratora

text: Ponieważ nie mogę tego przetestować (nie mogę znaleźć żadnych dokumentów i nie mam konfiguracji wielostanowiskowej), muszę znać nazwę bazy danych superadministratora. Jak więc ta rola jest przechowywana w bazie danych wp? To pewnie coś w stylu 'super_administrator'...?


title: Wyświetlasz liczbę wpisów użytkownika według niestandardowego typu wpisu na liście użytkowników administratora?

text: Próbuję dowiedzieć się, jak podłączyć się do strony zarządzania `/wp-admin/users.php`, aby utworzyć niestandardowe kolumny do pokazywania liczby postów, które użytkownicy mają dla niestandardowych typów postów na **WPHonors.com**. Stworzyłem w tym celu zgłoszenie trac, ale @nacin wyjaśnił, dlaczego jest to bardziej praca dla wtyczki. Nie udało mi się znaleźć sposobu na manipulowanie danymi wyjściowymi tabeli użytkowników, więc mogę dodać niestandardowe kolumny dla liczby postów CPT dla każdego użytkownika. I to może mieć coś wspólnego z pytaniem zadanym przez @nacin, do czego odwołują się liczby zliczania postów. Dla aktualnej liczby postów 'post' użytkownika, link do strony zarządzania postami, pokazującej wszystkie posty dla tego użytkownika (`/wp-admin/edit.php?author=%author_id%`). Gdybym miał to gdzieś powiązać, byłoby to: /wp-admin/edit.php?post_type=%post_type%&author=%author_id% Gdyby to w ogóle było możliwe, jak sądzę. Ale nie muszę nawet łączyć go z dowolnym miejscem. Chcę po prostu pokazać liczbę postów CPT dla każdej osoby, mając „600” użytkowników i łączną liczbę „300+” postów w „4” niestandardowych typach postów. Tylko administratorzy mogą wysyłać posty „post”, więc ta kolumna na stronie użytkownika jest bezużyteczna.


title: Galeria multimediów oparta na użytkownikach

text: Tworzę witrynę, która korzysta zarówno z WordPressa, jak i BuddyPressa i chcę zbudować niestandardową sekcję, w której użytkownik może przesyłać prace, a ludzie mogą je komentować/oceniać. Przeglądałem różne opcje, ale wydaje się, że najlepszym rozwiązaniem byłoby użycie niestandardowego typu posta, a następnie umożliwienie członkom przesyłania treści. Czy jest to lepszy sposób na zrobienie tego? A może uważasz, że typy postów są najlepszą opcją. Aby zorientować się, jakiego rodzaju funkcjonalności będzie wymagał: http://dribbble.com/ Pomysł będzie taki, aby obrazy były adresami URL, takimi jak domena.com/designs/my-awesome-work-2201/ A podczas przeglądania profili członków będziesz mógł zobaczyć ich najnowszą pracę itp., więc muszą być połączone z użytkownikiem, a nie tylko losowo pływać w bazie danych. Nie jestem pewien, jak łatwo będzie to zrobić z normalnymi użytkownikami, którzy nie są autorami/redaktorami. Myśli? Dziękuję


title: Liczba taksonomii według typu posta

text:
Poniżej znajduje się kod, którego używam do wyprowadzania liczby / liczby tagów postu (taksonomii). Chcę móc podzielić liczbę na podstawie typu posta, w którym znajduje się taksonomia (a nie całkowitej liczby). Więc mam domyślny typ postu "post", a także "blogi" i "zdjęcia". Chcę, aby licznik taksonomii wyświetlał coś takiego: x postów | x blogi | x Zdjęcia <?php $tags = get_tags( array('name__like' => "a", 'order' => 'ASC') ); foreach ( (tablica) $tags as $tag ) { ?>
 <a href="<?php echo get_tag_link( $tag->term_id ) ?>"> <?php echo $tag->nazwa ?> <?php echo $tag->count ?>
 <?php } ?>


title: Jak sprawić, by wtyczka sexy zakładek działała w WPMU?

text: Mamy Wordpress 3.0 działający jako multi-site i chcemy, aby wszystkie blogi w systemie miały wtyczkę "sexy bookmarks". Ale wydaje się, że działa tylko na głównym blogu. Czy ktoś wie, jak sprawić, by to działało na wszystkich blogach (jaki kod dodać, aby to działało w ten sposób)? A może istnieje wtyczka, taka jak seksowne zakładki, która dodaje ikony sieci społecznościowych do każdego postu, która działa w wielostronnej wersji Wordpress 3.0?


title: Uzyskać adresy URL obrazów w galerii?

text: Muszę pobrać adresy URL obrazów w galerii, jakie jest do tego odpowiednie zapytanie SQL, na podstawie identyfikatora posta? Obecnie mam coś takiego jak poniżej, które znalazłem przez google, ale nie wiem, jak uzyskać dostęp do globalnej zmiennej WP z zewnątrz Wordpressa - co muszę zrobić? funkcja getGallery ($id) { global $wpdb; // Zapytanie SQL do pobrania wszystkich załączników typu MIME image/jpeg z podanego postu $querystr = " SELECT ID, post_name, guid, meta_value FROM $wpdb->posts wposts INNER JOIN $wpdb->postmeta meta ON meta.post_id = wposts.ID AND meta.meta_key = '_wp_attachment_metadata' GDZIE wposts.post_type = 'attachment' AND wposts.post_parent = '".$id."' AND wposts.post_mime_type = 'image/jpeg' "; //pobierz zestaw wyników z zapytania $pictures = $wpdb->get_results($querystr, ARRAY_A); //zwróć zestaw wyników return $obrazy; }


title: Problem zduplikowanych skrótów bitly

text: Mam tę wtyczkę do tworzenia shortlinka za pomocą bitly API, ale jest problem! function yoast_bitly_shortlink($url, $id, $context, $allow_slugs) { if ( ( is_singular() && !is_preview() ) || $context == 'post' ) { $short = get_post_meta($id, '_yoast_bitlylink' , PRAWDA); if ( !$short || $short == '' ) { if ( !defined('BITLY_USERNAME') || !defined('BITLY_APIKEY') ) { $short = 'http://yoast.com/wordpress/bitly -shortlinks/configure-bitly/'; } else { $url = get_permalink( $id ); $req = 'http://api.bit.ly/v3/shorten?format=txt&longUrl='.$url.'&login='.BITLY_USERNAME.'&apiKey='.BITLY_APIKEY; if ( define('BITLY_JMP') && BITLY_JMP ) $req .= '&domain=j.mp'; $resp = wp_remote_get($req); if ( !is_wp_error( $resp ) && is_array( $resp['response'] ) && 200 == $resp['response']['code'] ) { $short = trim( $resp['body'] ) ; update_post_meta( $id, '_yoast_bitlylink', $short); } } } return $short; } zwróć fałsz; } add_filter( 'pre_get_shortlink', 'yoast_bitly_shortlink', 99, 4 ); funkcja yoast_bitly_admin_bar_menu () { globalny $ wp_admin_bar, $ post; if ( !isset($post->ID) ) return; $short = wp_get_shortlink( $post->ID, 'zapytanie' ); if ( is_singular() && !is_preview() ) { if ( $short != 'http://yoast.com/wordpress/bitly-shortlinks/configure-bitly/' ) $shortstats = $short.'+'; // Usuń stare menu skrótów, ponieważ ma dziwne problemy z JS z paskiem administracyjnym podczas nadawania mu podmenu. $wp_admin_bar->remove_menu('get-shortlink'); $wp_admin_bar->add_menu( array( 'id' => 'shortlink', 'title' => __( 'Bit.ly' ), 'href' => 'javascript:prompt('Short Link:', ''. $short."); return false;' ) ); $wp_admin_bar->add_menu( array( 'parent' => 'shortlink', 'id' => 'yoast_bitly-link', 'title' => __( 'Bit.ly Link' ), 'href' => 'javascript :prompt('Krótki link:', ''.$short.''); return false;' ) ); $wp_admin_bar->add_menu( array( 'parent' => 'shortlink', 'id' => 'yoast_bitly-twitterlink', 'title' => __( 'Udostępnij na Twitterze' ), 'href' => 'http: //twitter.com/?status='.str_replace('+','%20', urlencode( $post->post_title.' - '.$short) ) ) ); $wp_admin_bar->add_menu( array( 'parent' => 'shortlink', 'id' => 'yoast_bitly-stats', 'title' => __( 'Bit.ly Stats' ), 'href' => $shortstats , 'meta' => array('target' => '_blank') ) ); } } add_action( 'admin_bar_menu', 'yoast_bitly_admin_bar_menu', 95 ); Tworzy 2 bitowe linki każdego posta, jeden to `/?p=12345` a drugi to `/post-name` Planuję wszystkie moje posty, więc zauważyłem, że `?p=12345` jest tworzony na automatyczne zapisy, podglądy i kiedy Zaplanowane oraz `/post-name` są tworzone po opublikowaniu posta... I niestety `?p=12345` jest ustawiony jako domyślny krótki adres URL; `?p=12345` = `bit.ly/sdfssdfd` a drugi jest ignorowany.. Co powinienem zrobić, aby zmusić go do utworzenia tylko jednego linku `/post-name` i ustawić go jako domyślny zamiast drugiego jeden?! Próbowałem tego: $mypost = get_page( $id ); if ( !in_array($mypost->post_status, array('future', 'publish')) ) { return "Wpis musi zostać opublikowany, aby otrzymać skrót"; } ale jak zauważono w odpowiedzi, post musi zostać opublikowany, aby uzyskać krótki link (tworzy 1 link, ale `/?p=12345` w witrynie bitly, ale nie jest widoczny z powrotem na wordpressie) ... Chyba potrzebuję zamiast tego opublikowanych, adres URL, który zostanie utworzony po zaplanowaniu.. więc próbowałem zmienić $mypost = get_page( $id ); if ( !in_array($mypost->post_status, array('schedule', 'future')) ) { return "Wpis musi zostać opublikowany, aby otrzymać skrót"; } ale jak możesz sobie wyobrazić, to nie działa... czy masz jakiś pomysł, jak to naprawić? Dziękuję!


title: Czy jest jakaś wtyczka do zarządzania kursami?

text: Mam stronę wordpress dla szkoły lub uczelni. Moim wymaganiem jest to, że potrzebuję klas (od jednej klasy do ósmej klasy), a następnie zajęcia będą miały kursy/przedmioty (takie jak fizyka, matematyka itp.), A następnie każdy kurs ma plik do przesłania. Nauczyciel prześle plik do kursu, a następnie uczeń pobierze plik kursu z interfejsu. Nauczyciel będzie dodawał zajęcia, kursy do zajęć i może wgrywać pliki do kursów. Student może pobierać tylko pliki przesłane do kursu. WIĘC Czy jest jakaś wtyczka Wordpress do pracy dla mnie lub muszę napisać własną? Jakaś pomoc i sugestia? Z góry dziękuję.


title: Moja niestandardowa wtyczka nie utworzyła tabel db w bazie danych

text: Stworzyłem wtyczkę, która utworzy tabelę w bazie danych po aktywacji wtyczki. Po włączeniu wtyczki i sprawdzeniu bazy danych nie było nowej tabeli, którą chcę utworzyć. Oto kod mojego pliku wtyczki. <?php /* Nazwa wtyczki: wp_course_management Opis: Wtyczka Wordpress do zarządzania kursami w witrynie edukacyjnej. Wersja: 1.0 Autor: Ahmad Nawaz URI autora: http://nawaz-ahmad.blogspot.com */ ?> <?php global $jal_db_version; $jal_db_version = "1.0"; funkcja jal_install() { globalna $wpdb; globalna $jal_db_version; $table_name = $wpdb->prefiks . „klasy”; $sql = $wpdb->prepare( "UTWÓRZ TABELĘ %s ( id mediumint(9) NOT NULL AUTO_INCREMENT, czas datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, nazwa tinytext NOT NULL, tekst text NOT NULL, url VARCHAR(55) DEFAULT '' NOT NULL, UNIQUE KEY id (id) );", $table_name ); require_once (ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql); add_option("jal_db_version", $jal_db_version); } funkcja jal_install_data() { globalna $wpdb; $welcome_name = "Pan Wordpress"; $welcome_text = "Gratulacje, właśnie zakończyłeś instalację!"; $rows_affected = $wpdb->insert( $table_name, array( 'time' => current_time('mysql'), 'name' => $welcome_name, 'text' => $welcome_text ) ); } register_activation_hook(__FILE__,'jal_install'); register_activation_hook(__FILE__,'jal_install_data'); ?> Na czym polega problem w moim kodzie. Proszę pomóż.


title: Jak zadzwonić do Wordpress First Image Post lub załączony obraz lub domyślny?

text: Czy ktoś może mi pomóc opracować skrypt wordpress, który [JEŻELI] otrzyma pierwszy post z obrazem, a jeśli nie istnieje, [ELSE] dostanie pierwszy załączony (przesłany) obraz. **Teoretycznie:** [JEŻELI istnieje] <img src="<?php echo catch_that_image() ?>" /> [lub ELSE] ID) .'" alt ="Obraz główny" id="mainImage"" /> [lub ELSE] <img src="<?php bloginfo('template_url') ?>/images/default.png" /> **Mój obecny kod wygląda tak (AKTUALIZACJA.. PONOWNIE)** <?php $args = array( 'post_parent' => $post->ID, 'post_type' => 'attachment', 'post_mime_type' => 'image', 'orderby' => 'menu_order', 'order' => 'ASC', 'offset' => '0', 'numberposts' => 1 ); $attachments = get_posts($args); $images =& get_children( 'post_type=attachment&post_mime_type= image&post_parent=' .$post->ID );if ($attachments) { foreach ($attachments as $attachment) { if(wp_attachment_is_image($attachment->ID )) { echo 'ID) . '" alt="Obraz główny" id="Obraz główny"" />'; }}}  else { echo ''; } ?>


title: Jak mogę napisać funkcję get_categories_by_year()?

text: Muszę napisać **funkcję, aby uzyskać wszystkie kategorie na dany rok**. Ponieważ data utworzenia taksonomii nie jest przechowywana w bazie danych, nie jestem pewien, co robić. Moją pierwszą myślą było zebranie wszystkich postów z danego roku i znalezienie w jakiś sposób wszystkich kategorii związanych z tymi postami, ale nie jestem pewien, jak to zrobić i brzmi to przerażająco wolno. Być może mógłbym po prostu napisać trochę SQL, ale jestem znacznie lepiej zorientowany w PHP. Wracając więc do funkcji, wyobrażam sobie, że wyglądałoby to na coś takiego: function get_categories_by_year($year) { // Rób rzeczy... return $array_of_categories_in_year; } To jest właściwie dla niestandardowej taksonomii, ale ponieważ kategorie są domyślną taksonomią hierarchiczną, postanowiłem użyć jej jako przykładu. Chętnie udzielę więcej informacji o tym, jak dane wyjściowe powinny wyglądać, jeśli są istotne. Dzięki za pomoc!


title: Edytor WordPress WYSIWYG na żądanie, responsywny

text: Stworzyłem edytor WYSIWYG w metaboksie i załadowałem go na żądanie przez javasacript. Ale WYSIWYG nie reaguje, tak jak domyślny. Jak mogę sprawić, by był responsywny? Znajduje się wewnątrz stołu, a szerokość stołu jest ustawiona na 100%. Gdy wiersze stają się mniejsze, WYSIWYG pozostaje tego samego rozmiaru, ale część edytora zostaje ukryta. Próbowałem: .mceToolbarTop * { float:left; } .mceToolbarNajlepiej wybierz { width:auto!important; } .mceToolbarTop opcja { float:none; } Kod HTML jest tutaj naprawdę długi i trudny do sformatowania. Albo wkleiłbym to. Mój kontener zawierający WYSIWYG ma szerokość 80%, a style WYSIWYG są ustawione na 100%, więc nie wiem, dlaczego nie przestrzega ustawionych przeze mnie stylów.


title: Użyj $ wpdb w plikach motywów wordpress

text: Chcę użyć $wpdb w pliku motywu, ale to nie działa. Mój kod jest poniżej: <?php $action = $_POST['action']; $updateRecordsArray = $_POST['recordsArray']; if ($action == "updatelist") { $listingCounter = 1; $kolumna = $_GET['kolumna']; foreach ($updateRecordsArray as $key=>$value) { $wpdb->update('wp_postmeta', array('meta_value'=>$column), array('post_id'=>$value, 'meta_key'=>' dbt_tekst') ); $wpdb->update('wp_posts', array('menu_order'=>$listingCounter), array('ID'=>$value) ); $LicznikWykazów = $LicznikWykazów + 1; } } ?> Myślę, że $wpdb musi być zadeklarowany jako globalny lub muszę dołączyć określone pliki. Czy ktoś może mi w tym pomóc?


title: Jakie wtyczki najczęściej instalujesz w nowej instalacji WordPressa?

text: Chcę dowiedzieć się, jakie wtyczki są instalowane przez innych przez większość czasu w nowej instalacji WordPressa; wtyczki, które dodają wartość do prawie każdej witryny internetowej, na której działa WordPress. Moja lista najczęściej instalowanych wtyczek w nowej instalacji WP, w dowolnej kolejności: * Formularz kontaktowy 7 - Używaj, gdy potrzebuję formularza kontaktowego na stronie * Page.ly MultiEdit - Używaj, gdy potrzebuję wielu edytowalnych regionów * Blokada logowania - Zawsze używać na publicznej stronie internetowej. Pomaga zapobiegać brutalnemu atakowi na konto. * Zarejestruj Plus Redux Używaj, gdy witryna zezwala na rejestrację członka. * WP-PageNavi Użyj, gdy witryna będzie wyświetlać strony na stronach postów. Odpowiedz za pomocą najczęściej używanych zainstalowanych wtyczek w nowej instalacji WP.


title: Wskazówki z The Loop dla CMS

text: Może podchodzę do tego w niewłaściwy sposób, ale to jest mój scenariusz... Chciałbym używać WordPressa jako CMS, a nie platformy blogowej. Mam stronę internetową, która będzie miała od 25 do 50 stron i nie będzie zawierała żadnych postów. Zamierzam stworzyć własny motyw, który powinien być dość łatwy, jednak trochę się gubię przy korzystaniu z funkcji The Loop. Rozumiem, że: <?php if ( have_posts() ): while ( have_posts() ): the_post(); ?> jest używany dla strony, która pobiera x liczbę postów, jednak w moim scenariuszu chcę pobrać tylko zawartość strony, a nie x liczbę postów. Czy muszę tworzyć niestandardowe zapytania SQL? Wszystkie przykłady, na które natrafiam, używają The Loop do postów. Jeśli używam tylko stron statycznych, czy muszę w ogóle używać The Loop? Czy mogę po prostu użyć unikalnego adresu URL, aby wyciągnąć stronę z kolumny postu bazy danych MySQL? Mam nadzieję, że to ma sens.


title: Podwitryny w instalacji wielostanowiskowej wyrzucają błąd 404 na wp-admin w IIS 7

text: Napotkano problem, w którym podwitryny z wieloma witrynami (świeża instalacja 3.9 i brak wtyczek lub motywów) zgłaszają błąd 404 podczas próby uzyskania dostępu do sekcji wp-admin na podwitrynie. Działa na IIS7. * http://www.mojawitryna.com/subsite/wp-admin -> Zgłasza 404 * http://www.mojawitryna.com/subsite2/wp-admin -> Zgłasza 404 * http://www.mojawitryna.com /wp-admin -> Działa dla głównej witryny Kiedy logujemy się przez http://www.mysite.com/wp-admin i przechodzimy do podwitryny, a następnie próbujemy się wylogować, również wyrzuca błąd 404. Używał domyślnej sieci .config, dla reguł ponownego zapisu. Ale wszystkie podstrony zgłaszały błędy 404 w plikach css/js. Zmieniłem więc nieco zasady przepisywania, które możecie zobaczyć poniżej. <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="WordPress Rule 1" stopProcessing="true"> <match url= "^index\.php$" ignoreCase="false" /> <action type="Brak" /> </rule> <rule name="WordPress Rule 2" stopProcessing="true"> <match url="^( [_0-9a-zA-Z-]+/)?wp-admin$" ignoreCase="false" /> <action type="Przekierowanie" url="{R:1}wp-admin/" redirectType="Stałe " /> </rule> <rule name="WordPress Rule 3" stopProcessing="true"> <match url="^" ignoreCase="false" /> <conditions LogicGrouping="MatchAny"> <add input="{ REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" /> <add input="{REQUEST_FILENAME}" mat chType="IsDirectory" ignoreCase="false" /> </conditions> <action type="Brak" /> </rule> <rule name="WordPress Rule 4" stopProcessing="true"> <match url="^ ([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*)" ignoreCase="false" /> <action type="Przepisz" url ="{R:2 }” /> </rule> <rule name="WordPress Rule 5" stopProcessing="true"> <match url="^([_0-9a-zA-Z-]+/)?(wp-comments-post .*)” ignoreCase="false" /> <action type="Rewrite" url=“{R:2}” /> </rule> <rule name="WordPress Rule 6” stopProcessing="true"> <match url="^([_0-9a-zA-Z-]+/)?([_0-9a-zA-Z-]+/)?(.*\.php)$" ignoreCase="false" /> <action type="Przepisz" url="{R:2}" /> </rule> <rule name="WordPre ss Reguła 7” stopProcessing="true"> <match url="." ignoreCase="false" /> <action type="Rewrite" url="index.php" /> </rule> </rules> </rewrite> </system.webServer> </configuration> Czy brakuje mi innych przepisać zasady lub trzeba je zmienić? Tak więc podwitryny nie zgłaszają błędów 404 podczas przechodzenia do strony /wp-admin.


title: Znajdowanie rzeczywistych funkcji dodanych do hooków i filtrów

text: Próbuję dowiedzieć się, jak znaleźć rzeczywistą funkcję, która jest przypisana do haków i filtrów. Patrzyłem na inne pytania zadawane tutaj i znalazłem kilka wtyczek, które są pomocne w znajdowaniu add_actions i add_filters, które pokazują mi nazwę funkcji wywołania zwrotnego ... ale mam trudności ze znalezieniem tych rzeczywistych funkcji, więc Widzę, co robi. Nie zawsze znajdują się w tym samym pliku co add_action lub add_filter. Po prostu chcę to zrobić, aby lepiej zrozumieć koncepcję haków i filtrów. Na przykład, oto add_action w shortcodes.php w wierszu 335: add_filter('the_content', 'do_shortcode', 11); // PO wpautop() Oto rzeczywista funkcja w wierszu 144, chcę móc je łatwo znaleźć: function do_shortcode($content) { global $shortcode_tags; if (empty($shortcode_tags) || !is_array($shortcode_tags)) return $content; $wzór = get_shortcode_regex(); return preg_replace_callback( "/$wzór/s", 'do_shortcode_tag', $treść ); }      Jakieś wskazówki?


title: Nie można wyświetlić wyróżnionego obrazu w kanale RSS

text: Obecnie pracuję nad stroną testową na moim lokalnym serwerze używając WordPress w wersji 3.4.2. Próbowałem różnych rozwiązań. Niektóre obejmowały instalowanie różnych wtyczek, takich jak WP RSS Images i Featured Image w RSS. Wypróbowałem nawet niektóre rozwiązania z następujących postów: * wyświetlaj wyróżniony obraz w kanale RSS * Jak pobrać pierwszy obraz dołączony do posta i wyświetlić go w kanale RSS? * Dodaj miniaturę posta do kanału RSS z niestandardowym rozmiarem Jednak wygląda na to, że obrazy nie są publikowane w kanałach RSS. Czy istnieje inne rozwiązanie, które może rozwiązać ten problem? Kanał RSS, który próbuję dołączyć do zdjęć, to ten link. Każda pomoc jest mile widziana!


title: Wyklucz kategorię z get_the_category

text: Chcę wykluczyć określoną kategorię z pętli, oto co próbowałem: Oryginalny kod: // auto posty przez cat if( $bawmrp_options['auto_posts'] == 'cat' || $bawmrp_options['auto_posts'] == 'oba' ): $cat = get_the_category( $post->ID ); $cat_ids = wp_list_pluck($kot, 'term_id'); $args['kategoria'] = implode(',', $cat_ids ); endif; Moja próba: // auto posty przez kota if( $bawmrp_options['auto_posts'] == 'cat' || $bawmrp_options['auto_posts'] == 'both'): $cat = get_the_category( $post->ID ) ; if ($cat->cat_ID != '68') : $cat_ids = wp_list_pluck( $cat, 'term_id' ); endif; $args['kategoria'] = implode(',', $cat_ids ); endif; W swoim kodzie próbowałem wykluczyć kategorię 68, ale właściwie najlepiej byłoby, gdyby kategoria miała dzieci, to nie wchodzi w pętlę, tylko to dzieci


title: Błąd 404 na administratorze sieci i innych

text: Mam świeżą instalację w wielu witrynach w mojej domenie. Konfiguracja podfolderów. Administrator sieci w prawym górnym menu ma ten link `http://example.com/wp-admin/network/` i zwraca błąd 404. Inne linki, takie jak „Dodaj nowy”, również mają ten problem. Mogę ręcznie odwiedzić `http://example.com/subfolder/wp-admin/network/` i działa dobrze. Nie jestem dobry z .htaccess, ale myślę, że jest tam problem; czy możesz to sprawdzić proszę: RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] # dodaj końcowy ukośnik do /wp-admin RewriteRule ^wp-admin$ wp-admin/ [R=301,L] RewriteCond % {REQUEST_FILENAME} -f [LUB] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^(wp-(content|admin|includes).*) home/content/70/10156275/html/example.net/ subfolder/$1 [L] RewriteRule ^(.*\.php)$ home/content/70/10156275/html/example.com/subfolder/$1 [L] RewriteRule . index.php [L] Również nie jestem pewien, czy to pomaga, ale mój `wp-config.php` ma następujący kod: /* Multisite */ define( 'MULTISITE', true ); define( 'SUBDOMAIN_INSTALL', prawda ); $podstawa = '/'; define( 'DOMAIN_CURRENT_SITE', 'example.com' ); zdefiniuj( 'PATH_CURRENT_SITE', '/' ); zdefiniuj( 'SITE_ID_CURRENT_SITE', 1 ); zdefiniuj( 'BLOG_ID_CURRENT_SITE', 1 ); Przeszukuję Google od 2 dni i nie mogę tego naprawić… Problem polega na tym, że podfolder jest nieco pominięty w Administratorze sieci, a kilka…


title: Pobierz załączniki (get_posts) i nowy program do przesyłania WP 3.5

text:
Używam get_posts(), aby pobrać załączniki z postu i użyć go w suwaku. Problem polega na tym, że nowy uploader nie ma zakładki "Galeria", która byłaby do tego idealnie dopasowana. Wygląda również na to, że łamie oryginalny kod i nie możesz teraz usunąć / zmienić kolejności obrazów z tego nowego programu do przesyłania. Czy jest sposób, aby to naprawić? Kod jest poniżej:
 <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); $args = array( 'post_type' => 'attachment', 'numberposts' => -1, 'post_status' => null, 'post_parent' => $post->ID, 'order'=> 'ASC', ' orderby' => 'menu_order' ); $załączniki = get_posts( $args ); if ( $attachments ) { foreach ( $attachments as $attachment ) { echo '
'; echo wp_get_attachment_image( $attachment->ID, 'pełny'); echo '
'; } } koniec; endif; ?>


title: Osadź administratora Wordpress w ramce iframe

text: Próbuję osadzić stronę wordpress administratora „nowy post” w ramce iframe: `<iframe height="500px"frameborder="0"width="740px"src="my_wordpress_domain/wp-admin/post-new.php" />` Z jakiegoś powodu iframe ładuje pustą stronę. Sam link działa w osobnej zakładce, podobnie jak strona główna wordpress. Czy jest to kwestia bezpieczeństwa, jeśli tak, jak mogę ją obejść?


title: Rozróżniaj kategorie rodziców i dzieci

text:
Pracuję więc z motywem innym niż wordpress o nazwie „Misty” i używa tego kodu do pobierania kategorii:

<?php _e('Categories','ml'); ?>

 <?php if (function_exists('wp_list_categories')) { wp_list_categories("show_count=1&include=$catID&hierarchical=1&title_li="); wp_list_categories("show_count=1&child_of=$catID&hierarchical=1&title_li="); } else { wp_list_cats('optioncount=1'); } ?>

 Do bani jest to, że nie mogę zmienić stylu kategorii nadrzędnych / podrzędnych, chcę wciąć kategorie podrzędne, ale wszystkie idą według identyfikatora class=category `$catID`, tak chcę filtrować posty . 3 różne domeny pojawiają się na tym blogu, a ja biorę to, skąd pochodzą i filtruję posty w ten sposób. Do tej pory filtrowałem kategorię i pokazałem, że kategorie są podkategoriami, ale podkategorie nie mają możliwości stylizacji. Jaka jest dobra praca nad stylem kategorii podrzędnych? Czy jest gdzieś, gdzie mogę po prostu dodać kolejną klasę do LI dziecka?


title: Jak używać jednego repozytorium git (github) do kontroli wersji dla wielu motywów?

text: Zbudowałem i utrzymuję wiele motywów dla różnych klientów. Chciałbym móc umieścić je wszystkie na githubie, aby uzyskać cudowną kontrolę wersji. Jednak github staje się nieco droższy, gdy masz ponad 20 prywatnych repozytoriów. Będę miał około 30+. Motywy nie są używane razem, każdy z nich przeznaczony jest dla osobnego klienta. Wiem, że mogę hostować własną instalację git, ale wtedy tracę świetne narzędzia do porównywania i aspekty społecznościowe github. Fajnie jest też mieć cały kod w jednym miejscu. Zastanawiam się więc, czy istnieje inny sposób na umieszczenie wszystkich motywów w jednym repozytorium i oddzielenie ich w inteligentny sposób. Myślałem o użyciu gitignore, ale potem dla każdego klonu musisz zrekonstruować poprawny .gitignore. nie działa. Może używanie oddziałów jest właściwym podejściem, ale nie wiem, jak to działa. Jeszcze jeden aspekt: używam deployhq.com (świetna usługa) do wdrażania zmienionych plików na serwery przez ftp. I działa świetnie. A dla witryny, która wciąż jest w fazie rozwoju, tworzę git service hook i po każdym wypchnięciu projekt jest automatycznie wdrażany przez deployhq - niesamowite. Jakieś porady, jak to zrobić za pośrednictwem oddziałów lub inną metodą?


title: Czy tę stronę można zbudować za pomocą wordpress?

text: Chcę wiedzieć, czy tę stronę można zbudować za pomocą wordpress, jestem programistą i nic nie wiem o wordpressie, jak mam tylko uzyskać od was kilka dobrych rad: Głównym celem strony jest zezwól użytkownikom na przeglądanie kilku interesujących miejsc w kraju Administrator: - utwórz interesujące miejsce - dodaj, usuń, edytuj szczegóły, takie jak nazwa miejsca, adres, lokalizacja za pomocą mapy google, ocena (użytkownicy mogą głosować na miejsce), szerokość geograficzna, długość geograficzna -dodaj recenzje dla interesującego miejsca Użytkownicy: -zezwól użytkownikom na rejestrację -wspieraj witrynę, dodając interesujące miejsce ze wszystkimi jego szczegółami (zostanie następnie zaakceptowane przez administratora) -dodaj recenzje do interesującego miejsca -zagłosuj w górę lub w dół interesujące miejsce


title: register_deactivation_hook argument -> przekaż argumenty w wybranej funkcji

text: Szukałem minut, jak przekazać argumenty w `register_deactivation_hook` w następujący sposób: register_deactivation_hook(__FILE__, array(new Cpt, 'delete_cpt')) ); class Cpt { /** * Usuń niestandardowy typ posta */ public function delete_cpt($name = 'test') { /** * usuń pojedyncze dane */ require_once( ABSPATH . 'wp-admin/includes/upgrade.php ' ); $GLOBALS['wpdb']->delete('cpt', array('name'=>$name) ); $GLOBALS['wpdb']->show_errors(); echo $GLOBALS['wpdb']->ostatnie_zapytanie; echo $nazwa; umierać(); } } Funkcja jest wykonywana, ale zmienna `$name` pozostaje pusta. Chciałbym przekazać `$name` bezpośrednio w `register_deactivation_hook`; Czy to w ogóle możliwe ? Nigdzie nie widać.


title: Jak publikować zdjęcia na moim blogu z wcześniej zdefiniowaną ramką

text: Obrazy w tym poście na blogu: http://wordfruit.com/blog/the-hole-through-the-earth-3/ ... mają obramowanie wokół nich - kreskowane linie. Ale w tym poście: http://wordfruit.com/blog/copywriting-for-fish/ nie ma obramowania wokół obrazu. Wydaje mi się, że obrazy w pierwszym przykładzie powyżej zamieściłem za pomocą funkcji „Z adresu URL”. W drugim wymienionym przykładzie użyłem funkcji „prześlij” podczas publikowania obrazu. Czy istnieje sposób na publikowanie zdjęć za pomocą funkcji „prześlij”, aby pojawiła się ramka?


title: Paginacja w niestandardowej taksonomii

text:
Ciężko mi sprawić, żeby to zadziałało. To nie pierwszy raz, kiedy mam problemy z paginacją, czy raczej z systemem URL WPs. Zasadniczo mam ten adres URL: http://example.com/location/dc i ładuje szablon `taxonomy-location.php`. Teraz dodaję do motywu funkcję stronicowania. Więc mam ten adres URL: http://example.com/location/dc/page/2 i nie ładuje on szablonu `taxonomy-location.php`, faktycznie ładuje szablon **404**. Oto, co pokazuje pasek debugowania: > ![http://cl.ly/1u0F470k062o1Q121u15](http://i.stack.imgur.com/vuhdM.png) Wygląda na to, że uzyskuje właściwe wartości, WP jest po prostu nie załadował prawidłowego szablonu. * * * **EDIT** (Przeniesiono z linków do komentarzy) ## `functions.php` /* LOKALIZACJA */ add_rewrite_rule( 'lokalizacja/([^/]+)/strona/([0-9]{ 1,})/?$', 'index.php?location=$matches[1]&paged=$matches[2]', 'top' ); ## `taxonomy-location.php` <?php $paged = (get_query_var('paged')) ? get_query_var('stronicowane') : 1; query_posts($query_string.'&posts_per_page=2&paged='.$paged); ?>
"<?= ucwords(get_query_var('location')); ?>" Miejsca
 <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post (); ?> <artykuł>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?>
 <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('venue_thumb'); ?>
 <?php endwhile; ?> <?php wp_pagenavi(); ?> <?php else : ?>

Nie znaleziono postów

 <?php endif; ?>


title: Polecana strona z obrazem i fragmentem zamiast polecanego posta?

text: Czy istnieje sposób na umieszczenie linku z polecanym obrazem i fragmentem, który prowadzi do innej strony w Wordpress, a nie do polecanego posta? W tej chwili mam stronę, która zawiera linki do trzech polecanych kategorii, ale wolę, a raczej klient chciałby, aby jedno z tych trzech okien podglądu zawierało link do polecanej strony, a po zaktualizowaniu tej strony obraz podglądu tej strony i fragment zostanie zaktualizowany na pierwszej stronie (która zawiera linki do dwóch polecanych kotów i jednej polecanej strony). _Nie mam witryny online, ale mogę opublikować zrzut ekranu, jeśli nie wyjaśniam jej zbyt dobrze._ Dzięki


title: Jak sprawić, by kategoria nie wyświetlała się w poście z zapytaniem z paginacją strony?

text:
Zasadniczo mam tę pętlę, która pokazuje cały post. W jego wnętrzu chcę wykluczyć posty z kategorii obejmujących koszulki i bluzy, a także z kategorii galeria. Oto co mam do tej pory. kod działa bez 'cat=-gallery". Ale z tym nie pokazuje w ogóle żadnego posta. <?php $limit = 5; $paged = (get_query_var('paged')) ? get_query_var('paged' ) : 1; query_posts( 'cat=-gallery&showposts=' . $limit . '&paged=' . $paged ); $wp_query->is_category = true; $wp_query->is_home = false; ?> <----- mój blog ----> <?php endwhile; else: ?>
<?php _e('Przepraszam, żadne posty nie pasują do twoich kryteriów.'); ?>
 <?php endif; ?> <?php next_posts_link('Starsze wpisy »', 0); ?>


title: Załaduj skrypt, aby wpisać niestandardowy post w admin

text: Stworzyłem niestandardowy typ postu "portfolio" z czymś takim: $args = array( 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, ' query_var' => true, //'menu_icon' => get_stylesheet_directory_uri() .'/article16.png', 'rewrite' => true, 'capability_type' => 'post', 'hierarchical' => false, 'menu_position' => 4, 'taxonomies' => array('post_tag','category'), 'supports' => array('title','editor','comments','trackbacks','revisions','custom- pola','atrybuty-strony','miniaturka', 'wyciąg', 'tagi') ); register_post_type( 'portfolio' , $args ); I mam tam kilka innych niestandardowych pól z akcją: add_action("admin_init", "admin_init"); function admin_init(){ // add_meta_box( $id, $title, $callback, $page, $context, $priority ); add_meta_box("media", "Typ mediów", "media", "portfolio", "side", "high"); add_meta_box("map_meta", "Informacje o mapowaniu", "map_meta", "portfolio", "normalny", "wysoki"); } Chociaż kiedyś to działało, nie mogę się domyślić, aby załadować skrypty tylko dla tej strony. W tej chwili mam je po prostu z resztą `wp_enqueue_script` w ten sposób: function my_init() { if (!is_admin()) { .... } if (is_admin()) { wp_register_script('Gmaps', ' http://maps.google.com/maps/api/js?sensor=false', fałsz, '3.0', fałsz); wp_enqueue_script('Gmapy'); wp_register_style('admin_js', get_bloginfo('katalog_szablonu') '/admin.js'); wp_enqueue_script('admin_js'); wp_register_script('Zmaps', get_bloginfo('template_directory') .'/scripts/maps.js', array('Gmaps'), '1.0', true); wp_enqueue_script('Zmapy'); } } add_action('wp_enqueue_scripts', 'my_init'); Ale nic z tego dla mnie nie ładuje. Jak mogę załadować te skrypty na strony administracyjne? Jeszcze lepiej, jak mogę je załadować specjalnie dla stron edycji niestandardowego typu postu portfolio?


title: Jak mogę zarządzać ulubionymi postami zaznaczonymi przez użytkownika?

text: Moja witryna zawiera wiele postów i kiedy użytkownik jest zalogowany na stronie, może oznaczyć post jako "ulubiony post". Więc w zasadzie to, czego potrzebuję, to: > Jak użytkownik może oznaczyć post jako swój "ulubiony post", a następnie > Jak wyświetlić te "ulubione posty" na jednej stronie.


title: Czy muszę używać kategorii?

text: Nie chcę, aby mój blog używał „kategorii”, czy istnieje sposób na ich wyłączenie? Po prostu nie mogę zdefiniować żadnego, ale nadal są one wymienione jako „bez kategorii”


title: Wtyczka Najlepszych Współtwórców z niestandardowym typem posta

text: Używam wtyczki Najlepsi Współtwórcy. To bardzo pomocne dla wszystkich blogów. Ale problem z tą wtyczką polega na tym, że nie jest ona zintegrowana z niestandardowymi typami postów. Jak mogę rozszerzyć wtyczkę, aby to zrobić?


title: Dołączanie nowego kodu JavaScript dopiero po dodaniu komentarza

text: Chcę wywołać nową funkcję javascript dopiero po dodaniu nowego komentarza przez użytkownika. W szczególności chcę dołączyć nowy skrypt JavaScript do wynikowej strony przeładowania strony po przesłaniu nowego formularza komentarza w poście na blogu. Czy ktoś wie, jak to zrobić? Moim celem końcowym jest wykonanie połączenia za pomocą wywołania API javascript w Mixpanel (http://www.mixpanel.com) i wykonanie zdarzenia o nazwie „Dodanie komentarza” dla określonego użytkownika. Wiem, jak zrobić stronę mixpanelową, ale jestem zdezorientowany tym konkretnym przypadkiem użycia wordpress. Z góry dziękuję!


title: Zapytanie o niestandardowe posty z niestandardowej taksonomii

text:
Próbuję zrobić własny pokaz slajdów, ale mam problemy z zapytaniem o posty. Zdefiniowałem niestandardowy typ postu "slider" i niestandardową taksonomię "slideshow": * niestandardowy typ posta: function wms_slider_init() { $labels = array( 'name' => 'Slider', 'singular_name' => 'Slider' , 'add_new' => 'Dodaj suwak', 'add_new_item' => 'Dodaj nowy suwak', 'edit_item' => 'Edytuj suwak', 'new_item' => 'Nowy suwak', 'all_items' => 'Wszystkie suwaki ', 'view_item' => 'Wyświetl suwak', 'search_items' => 'Wyszukaj suwaki', 'not_found' => 'Nie znaleziono suwaka', 'not_found_in_trash' => 'Nie znaleziono suwaka w Koszu', 'parent_item_colon' = > '', 'menu_name' => 'Suwaki' ); $args = array( 'labels' => $labels, 'description' => 'Przechowuje dane specyficzne dla posta Slidera', 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu ' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'slider' ), 'capability_type' => 'post', 'has_archive' => false, 'hierarchical' => true, 'menu_position' => 5, 'supports' => array( 'tytuł', 'edytor', 'miniaturka', 'atrybuty-strony') ); register_post_type( 'suwak', $args ); } add_action( 'init', 'wms_slider_init' ); * niestandardowa taksonomia: add_action( 'init', 'wms_create_slider_taxonomies', 0 ); //utwórz kategorię pokazu slajdów dla funkcji typu "slider" wms_create_slider_taxonomies() { // Dodaj nową taksonomię, ułóż ją hierarchicznie (jak kategorie) $labels = array( 'name' => _x( 'Pokazy slajdów', 'nazwa ogólna taksonomii ' ), 'singular_name' => _x( 'Pokaz slajdów', 'taksonomia pojedyncza nazwa' ), 'search_items' => __( 'Wyszukaj gatunki' ), 'all_items' => __( 'Wszystkie pokazy slajdów' ), 'parent_item' => __( 'Nadrzędny pokaz slajdów' ), 'parent_item_colon' => __( 'Nadrzędny pokaz slajdów:' ), 'edit_item' => __( 'Edytuj pokaz slajdów' ), 'update_item' => __( 'Aktualizuj pokaz slajdów' ), 'add_new_item' => __( 'Dodaj nowy pokaz slajdów' ), 'new_item_name' => __( 'Nazwa nowego pokazu slajdów' ), 'menu_name' => __( 'Pokaz slajdów' ) ); $args = array( 'hierarchical' => true, 'labels' => $labels, 'show_ui' => true, 'show_admin_column' => true, 'query_var' => true, 'rewrite' => array( 'slug ' => 'pokaz slajdów' ) ); register_taxonomy( 'pokaz slajdów', array( 'suwak' ), $args ); } Utworzyłem w ramach taksonomii "pokaz slajdów" "kategorię" o nazwie - "homeslide" i umieściłem w niej "suwak" o nazwie "test". Próbuję ustawić zapytanie, aby pobrać wszystkie posty z "homeslide", ale zapytanie nie działa. oto moja funkcja zapytania i odpowiedzi wms_output_home_slides($cat) { // $cat = 'homeslide' $home_slides_args = array( 'post_type' => 'slider', 'posts_per_page' => -1, 'tax_query' => array( array( 'taksonomy' => 'slideshow', 'field' => 'slug', 'terms' => $cat ) ) ); $sliders_query = nowe WP_Query( $home_slides_args ); //$print_out = '
'.print_r($home_slides_args, true).'
'; //pętla if ($sliders_query->have_posts()) : $print_out .= '
'; while ($sliders_query->have_posts()) : $sliders_query->the_post(); $slider_id = $post->ID; $print_out .= '
'; $print_out .= $slider_id; $print_out .= '
'; koniec; $print_out .= '
'; endif; return $print_out; } Jakiś pomysł, dlaczego nie otrzymał identyfikatora posta?


title: Nowy użytkownik utworzony jako Uczestnik, a nie Współtwórca

text: W ustawieniach Wordpress mamy to ustawione tak, że nowy użytkownik powinien zostać utworzony jako Współtwórca: ![Ustawienia użytkownika](http://i.stack.imgur.com/0GJUG.jpg) Jednak wszyscy utworzeni użytkownicy są podani rola Uczestnika: ![Nowy Użytkownik jako Uczestnik](http://i.stack.imgur.com/VeEOn.jpg) Oznacza to, że nie mogą tworzyć własnego bloga. Jestem prawie pewien, że nie zawsze tak było. Aby uzyskać więcej informacji, uruchomiliśmy: * Wordpress 3.9 * BuddyPress * WangGuard Nie widzę żadnych ustawień, które mogłyby mieć wpływ na problem. Jakieś pomysły?


title: Lista niestandardowych typów postów w menu rozwijanym

text: Mam trzy typy niestandardowych postów, z których każdy ma około 5 taksonomii, a 2 typy niestandardowych postów mają dwie wspólne taksonomie. Mam już prawie wszystko skonfigurowane do publikowania z interfejsu użytkownika innego niż część listy rozwijanej, aby pokazać post_types. Ponieważ jest to teraz publikowanie z przodu, ale adresy URL są uszkodzone, ponieważ nie mają w nich niestandardowego typu postu, przeszukałem wszystko i mogę znaleźć zero na liście niestandardowych typów postów ... czy można to zrobić? Pozdrawiam Martin edit: Właśnie natknąłem się na to **w kodeksie**,


title: Jak tworzyć nieunikalne ślimaki podkategorii?

text: Jaki jest najlepszy sposób, aby Wordpress akceptował nieunikalne ślimaki podkategorii? Domyślnie Wordpress zapewnia, że każda „sluga” części adresów URL permalinków jest unikalna i jest bardzo sprytna w używaniu tego, aby upewnić się, że nigdy nie zobaczysz błędu 404 z pominięcia części adresu URL. Oznacza to, że jeśli moja struktura linków bezpośrednich to… http://site-root.com/category-name/sub-category-name/post-name/post-id Następnie…. * http://site-root.com/category-name/sub-category-name/post-name/post-id * http://site-root.com/category-name/sub-category-name/post -name * http://site-root.com/category-name/sub-category-name/post-id * http://site-root.com/sub-category-name/post-name/post-id wszyscy zabiorą mnie do tego samego postu. Ale jeśli tego rodzaju bezpieczne przekierowanie jest dla kogoś mniej ważne niż możliwość posiadania nieunikalnych slug (i ładnie ustrukturyzowanych katalogów), jestem SOL. Załóżmy, że piszę przewodnik po recenzjach restauracji w dużych miastach. Chcę, aby moje kategorie najwyższego poziomu były nazwami miast, a typy restauracji podkategoriami. Więc tworzę „Boston”, „Nowy Jork” i „Seattle”, a następnie dodaję podkategorie „Chińskie jedzenie”, „Włoskie restauracje” i „Luksusowe restauracje” do Bostonu. Ale kiedy próbuję dodać te same podkategorie do Nowego Jorku, nawet jeśli określam slugi URL, Wordpress zaczyna wymuszać slugi takie jak „http://[site-root].com/New-York/Chinese-Food-New -York/” — niepotrzebne powtarzanie i wydłużanie linków. Jeszcze gorzej, jeśli chcę mieć podkategorie. Nie udało mi się jeszcze znaleźć sposobu, aby zmusić Wordpress do akceptowania nieunikalnych ślimaków. Jak poleciłbyś mi to osiągnąć?


title: Wordpress nie wyświetla niestandardowej strony 404 dla nie znalezionych obrazów, plików zip

text: Mój blog nie znaleziono wszystkich stron internetowych z błędami pokazuje plik 404.php motywu. Ale jeśli ktoś kliknie link do pliku (.img, .zip), nie pokazuje, że motywy nie znalazły strony. Zamiast tego wyświetla stronę błędu przeglądarki internetowej „Nie można znaleźć strony internetowej”. Na przykład http://www.example.com/sample.img (jeśli ta strona nie istnieje, wyświetla stronę 404 przeglądarki, a nie stronę motywu) Zalogowany użytkownik może zobaczyć ten błąd (jeśli kliknie na nieprawidłowy zip lub img) "Błąd krytyczny: Wywołaj niezdefiniowaną funkcję get_option() w /home/xxxx/public_html/wp-content/themes/splash/404.php w wierszu 1". Używam kodu htaccess zabezpieczającego hotlink. Czy jest to problem z htaccess czy ze stroną 404? Czy jest jakiś sposób, aby to poprawić?


title: Dodawanie listy rozwijanej kategorii do strony opcji motywu

text: Próbuję dodać rozwijaną listę kategorii do mojej strony opcji motywu. Próbuję tak: <p> Wybierz styl z listy <?php $amp_categories_obj = get_categories('hide_empty=0'); $amp_categories = tablica(); foreach ($amp_categories_obj jako $amp_cat) { $amp_categories[$amp_cat->cat_ID] = $amp_cat->category_nicename; } $categories_tmp = array_unshift($amp_categories, "Wybierz kategorię:"); echo "<wybierz nazwę='amp_options[amp_cat]'>"; foreach ($amp_categories_obj jako $amp_cat) { $selected = ($options['amp_cat']==$amp_cat) ? 'selected="wybrane"' : ''; echo "<option value='$amp_cat' $selected>$amp_cat</option>"; } echo "</select>"; ?> </p> Nawiasem mówiąc, nie jestem zbytnio programistą PHP. Każda pomoc byłaby mile widziana.


title: Strona jako dziecko w niestandardowym slugu typu post?

text: Mam następującą strukturę: * `/projects` (archiwum cpt `projects` z szablonem `archive-projects.php`) * `/projects/project-1` (pojedynczy widok cpt z szablonem `single-projects.php `) * `/projects/downloads` (to jest strona) Kiedy próbuję otworzyć `/projects/downloads` otrzymuję błąd 404. Czy istnieje sposób na ustawienie strony w niestandardowej hierarchii typów postów?


title: Jak nie traktować kategorii jako tagów w kanałach?

text: Zasadniczo (nad) używamy kategorii, aby określić, czy post jest postem w wiadomościach, czy w blogu, a więc nie jest to kategoria w tradycyjnym sensie dla świata zewnętrznego. Chciałbym, aby kategoria nie była indeksowana przez czytniki kanałów/przeszukiwacze, tylko tagi. Znalazłem łatwy sposób na zrobienie tego z łatwą zmianą na 1 funkcję w rdzeniu, ale wolę tego uniknąć, jeśli to możliwe. Czy można to zrobić bez modyfikowania rdzenia? (W szczególności `get_the_category_rss` w `wp-includes/feed.php`) EDYCJA: Chodzi mi konkretnie o to, aby nie wymieniać kategorii w kanale. Na przykład tak wygląda część bieżącego kanału RSS2: <kategoria><![CDATA[blog]]></kategoria> <kategoria><![CDATA[test]]></kategoria> <kategoria>< ![CDATA[testowanie]]></category> <kategoria><![CDATA[tak!]]></category> „blog” to kategoria Wordpress, podczas gdy „test”, „testowanie” i „tak! " są tagami Wordpress. Chcę całkowicie wykluczyć wpis `<category><![CDATA[blog]]></category>` z kanału. To samo powinno dotyczyć kanałów Atom i wszelkich innych.


title: Jak mogę edytować dwadzieścia dziesięć motywów, aby usunąć pole komentarzy, gdy strona korzysta z określonego szablonu?

text: Jestem nowy w Wordpress i próbuję edytować motyw Twenty Ten, aby mój szablon dla podstawowych stron (basic-template.php) nie wyświetlał pola komentarzy. Chcę, aby pole komentarzy pojawiało się na innych stronach, takich jak posty na blogu. Jestem prawie pewien, że zmiany muszą zostać wprowadzone w loop.php, ale mój nie wydaje się mieć odpowiedniego efektu. Dla pola komentarzy edytowałem: <?php comments_template( '', true ); ?> wyglądać następująco. <?php wp_reset_query(); if ( is_page_template(‘podstawowy-szablon.php’)) { comments_template(); } else { szablon_komentarzy( '', prawda ); } ?> Kiedy pozbędę się instrukcji else, komentarze znikną, więc myślę, że problemem jest mój kod dla tej części. Wszelkie porady byłyby bardzo mile widziane!


title: Ajax z różnych wtyczek nie generujących odpowiedzi (niekończące się spinnery)

text: Nie jest to problem z konkretną wtyczką, ale ze wszystkimi moimi wtyczkami, które używają Ajax na interfejsie użytkownika (choć, co zaskakujące, żadne z żądań Ajax na zapleczu nie ma żadnych problemów). Pracuję z wtyczkami, takimi jak GD Star Rating i WP Polls, które przesyłają odpowiedź użytkownika za pomocą wywołania Ajax, wyświetlają spinner podczas oczekiwania na wynik, a następnie wyświetlają wynik statyczny. Wszystko, co dostaję, to spinner, chociaż zgłoszenie DZIAŁA, a dane są odbierane i przetwarzane. Sama odpowiedź nigdy nie przechodzi w obie strony. Jedyną rzeczą, o której mogę pomyśleć, jest to, że adres URL SITE to www.mojadomena.com, ale adres URL HOME to www.mojadomena.com/wordpress, co odpowiada rzeczywistej lokalizacji instalacji. Używam reguły przepisywania, aby wyglądało na to, że witryna to www.moja_domena.com. Czy ktoś ma jakieś sugestie, jak mogę naprawić problem z Ajaxem?


title: get_posts - dowiedz się, czy ciąg zapytania był bzdurą i użyto opcji zastępczej

text: Jeśli przekazujemy ciąg do funkcji takich jak `get_posts`, a ten ciąg nie jest znaczącym ciągiem zapytania (na przykład get_posts(' ')), funkcja zwraca wyniki domyślnego zapytania (ostatnie pięć postów lub takie). Czy można albo pominąć to zachowanie, albo - jeszcze lepiej - dowiedzieć się, czy ciąg był znaczącym ciągiem zapytania, czy też funkcja po prostu wróciła do wartości domyślnej, a więc tak nie było? Zmiana domyślnych ustawień zapytania nie jest rozwiązaniem, ponieważ nie chcę wpływać na główną pętlę, a jedynie wywołanie funkcji `get_posts` we wtyczce.


title: WP_Customize-> add_control Navbar Obraz tła

text: Mam problem z ustaleniem, jak prawidłowo dodać ustawienie w obszarze Nawigacja na stronie Dostosowywanie motywu, aby dostosować i określić obraz tła, który ma być używany na pasku nawigacyjnym.. podobnie do istniejącej wcześniej opcji menu wyboru tła- obraz. Oto, co mam do tej pory w moim kodzie: $wp_customize->add_section( 'nav', array( 'title' => __( 'Navigation', 'thetheme' ), 'theme_supports' => 'menus', 'priorytet' => 100, ) );


title: Klasy treści Headway i konflikt pamięci podręcznej stron W3TC

text: Obecnie pracuję nad stroną internetową wykorzystującą WordPress, Headway, Modernizr i W3 Total Cache. Problem, który mam, polega na tym, że W3TC buforuje tag body, co oznacza, że nie jest on aktualizowany w zależności od przeglądarki użytkownika przez Modernizr. Przykładem tego jest to, że modernizr dodaje klasę treści „firefox”, jeśli jest ona następnie buforowana, a następnie w chrome, mamy tę samą klasę treści „firefox”, co sprawia, że dowolny kod CSS w przeglądarce jest niedokładny. Próbowałem użyć `<!-- mfunc -->dowolnego kodu PHP<!-- /mfunc -->` otrzymanego z tej odpowiedzi Kod wygląda tak <!-- mfunc --> headway_page_top(); <!-- /mfunc --> Eksperymentowałem z użyciem tego samego wrappera mfunc wewnątrz funkcji headway_page_top(), tak aby znajdował się bezpośrednio wokół tagu body bez powodzenia. Otrzymany błąd pochodzi z W3TC i mówi „Nie można wykonać kodu:”, a następnie wszystkie znaczniki opakowane przez mfunc są drukowane (w trybie debugowania). Dzieje się tak również po wyłączeniu trybu debugowania. To wywołanie odbywa się wewnątrz wp-content/themes/headway-2012/header.php i dodałem tę ścieżkę do „Listy wyjątków pamięci podręcznej” w ustawieniach pamięci podręcznej stron W3TC bezskutecznie. Czy ktoś ma jakieś sugestie, w jaki sposób mogę uruchomić pamięć podręczną strony obok modernizr i nie mieć tego problemu? **EDYTUJ** : Ten problem w ogóle nie ma nic wspólnego z Modernizrem, rzuciłem broń myśląc, że tak. Firma Headway samodzielnie dodaje klasę ciała i nie używa w tym celu modernizr. Problem polega na użyciu W3TC i jego fragmentu, aby klasa ciała pozostała dynamiczna. Nie udało mi się w ogóle uruchomić buforowania fragmentów ani znaleźć na ten temat zbyt wiele dokumentacji. Czy buforowanie fragmentów jest wykonalnym rozwiązaniem? Wydaje mi się, że brakuje mi możliwych rozwiązań.


title: Pobieranie rozmiaru tablicy z danych serializowanych

text: Mam niestandardowe pole w meta użytkownika Wordpress, które przechowuje dane w serializowanej tablicy. Chcę pobrać liczbę tablic. Na przykład: `a:2:{blah blah}` * * * ![tu wpisz opis obrazu](http://i.stack.imgur.com/wJvQy.jpg) Zrzut ekranu mojego stołu * * * następujący kod, ale to nie działa. Powinien wydrukować 2 $number = $wpdb->get_var(" SELECT count(*) FROM wp_usermeta WHERE meta_key='bookmark_posts' AND meta_value LIKE '%".get_current_user_id()."%' "); if ( $liczba !== '' ) { echo 'Łączna liczba zakładek (' . $liczba . ')'; } Mam dziennik błędów. (john_newsite to nazwa bazy danych) > `Błąd bazy danych WordPress Tabela 'john_newsite.wp_usermeta' nie istnieje dla > zapytanie SELECT count(*) FROM wp_usermeta WHERE meta_key='bookmark_posts'` **edit:** kod. Działa, ale zlicza całkowitą liczbę zakładek od wszystkich użytkowników. Jak ograniczyć wynik według aktualnie zalogowanego użytkownika? $meta_key='bookmark_posts'; $number = $wpdb->get_var( $wpdb->prepare( "SELECT sum(meta_value) FROM $wpdb->postmeta WHERE meta_key = %s", $meta_key) ); echo "{$numer}";