by karlosky | Lis 24, 2014 | Pluginy, Własne typy wpisów
Plugin Contact Form 7 to bardzo popularna wtyczka formularza kontaktowego. Posiada bardzo duże możliwości konfiguracji, przez co jest bardzo użyteczna i uniwersalna. Niestety, w standardzie nie posiada niektórych funkcji, które wydają się obowiązkowe dla tego typu modułów, np. zapisywanie wiadomości przesyłanych przez formularz. Moją propozycją sposobu zapisu wiadomości przesyłanych przez formularz wiadomości jest utworzenie nowego typu wpisów (custom post type) oraz zapisywanie każdej wiadomości jako nowy wpis. W tym celu musimy utworzyć nowy typ wpisu, np. „request”. add_action('init', 'register_request_post_type'); function register_request_post_type() { register_post_type( 'request', array( 'label' => 'Requests', 'description' => 'Our Requests', 'public' => false, 'show_ui' => true, 'show_in_menu' => true, 'capability_type' => 'post', 'map_meta_cap' => true, 'hierarchical' => false, 'rewrite' => array('slug' => 'request', 'with_front' => false), 'query_var' => true, 'supports' => array('title', 'editor'), 'labels' => array ( 'name' => 'Requests', 'singular_name' => 'Request', 'menu_name' => 'Requests', 'add_new' => 'Add new request', 'add_new_item' => 'Add new request', 'edit' => 'View message', 'edit_item' => 'View message', 'new_item' => 'New request', 'search_items' => 'Search request', 'not_found' => 'Not found', 'not_found_in_trash' => 'Not found in trash' ) ) ); } Kolejnym krokiem jest utworzenie funkcji zapisującej dane z formularza jako wpis utworzonego wcześniej typu. Funkcja ta musi być podpięta do funkcji wysyłania formularza wtyczki Contact Form 7. add_action( 'wpcf7_mail_sent', 'save_request' ); function save_request( $cf7 ){ $submission = WPCF7_Submission::get_instance(); if ( $submission ) { $posted_data = $submission->get_posted_data(); } $content = ' From: '.$posted_data['name'].' ('.$posted_data['email'].') Message Body: '.$posted_data['message']; $new_request = array( 'post_type' => 'request', 'post_title' => $posted_data['name'] . ' ('.$posted_data['email'].')', 'post_content' => $content, 'post_status' => 'private', 'post_author' => 1 ); wp_insert_post( $new_request ); } Tak utworzona funkcja zapisuje każdą wiadomość wysyłaną formularzem. Wiadomości te widoczne są...
by karlosky | Lis 23, 2014 | Obrazy, Pluginy
Opisywałem ostatnio sposób zmiany rozmiarów zdjęć uploadowanych do biblioteki multimediów WordPressa. Tak wprowadzone zmiany niestety nie poprawiają rozmiaru zdjęć dodanych wcześniej. Podobny problem występuje także podczas zmiany szablonu WP, gdy nowy szablon korzysta z innych rozmiarów miniatur, niż poprzedni. Aby uzyskać oczekiwany efekt i prawidłowe rozmiary zdjęć, możemy oczywiście załadować zdjęcia do WordPressa ponownie. Przy większej ilości zdjęć jest to jednak dosyć uciążliwe. Na szczęście baza pluginów do WordPressa posiada rozwiązanie tego problemu – plugin Regenerate Thumbnails. Po zainstalowaniu wtyczki wystarczy przejść od biblioteki multimediów (zakładka „Media”), zaznaczyć wybrane zdjęcia (lub wszystkie) oraz z menu masowych działań wybrać „Regenerate Thumbnails” i kliknąć „Zastosuj”. W zależności od ilości wgranych zdjęć proces ten może potrwać kilka minut. Wszystko przebiega jednak stosunkowo szybko i sprawnie, więc zdecydowanie warto skorzystać z takiego rozwiązania, zamiast ładować pliki...
by karlosky | Lis 19, 2014 | Pluginy
Według mojej opinii qTranslate jest, a raczej był najlepszym pluginem językowym dla WordPressa. „Był” ponieważ niestety nie jest już rozwijany. Pomimo tego, zarówno ja, jak i wiele innych osób, wciąż korzystam z tego wynalazku. Brak aktualizacji pluginów powoduje wiele problemów podczas aktualizacji samego WordPressa. Niektóre z tych bugów całkowicie dyskwalifikują wtyczkę, inne zaś są bardzo proste w usunięciu. Jednym z tych łatwiejszych do rozwiązania problemów jest niedziałający edytor wizualny w nowszych wersjach WordPressa (chyba od wersji 3.8). Edytując post otrzymujemy komunikat o treści: The qTranslate Editor has disabled itself because it hasn’t been tested with your WordPress version yet. This is done to prevent WordPress from malfunctioning. You can reenable it by clicking here (may cause data loss! Use at own risk!). To remove this message permanently, please update qTranslate to the corresponding version. Ten komunikat i wyłączenie wizualnego edytora treści wynika z niezgodności wersji zainstalowanego WordPressa oraz zdefiniowanej wersji obsługiwanej przez plugin qTranslate. Aby usunąć ten komunikat i włączyć edytor, musimy więc przekonać plugin, że wersje się zgadzają 🙂 Otwieramy i edytujemy plik wtyczki: wp-content/plugins/qtranslate/qtranslate_wphacks.php Wyszukujemy w nim warunek (linia 61): if($GLOBALS['wp_version'] != QT_SUPPORTED_WP_VERSION) { Stałą QT_SUPPORTED_WP_VERSION możemy zastąpić liczbą odpowiadającą używanej wersji WordPressa. Możemy też na przykład wstawić zmienną globalną 🙂 if($GLOBALS['wp_version'] != $GLOBALS['wp_version']) { W ten sposób obsługiwana wersja zawsze będzie się zgadzać 🙂 Możemy też usunąć cały warunek i wstawić po prostu „0”, aby alert nigdy się nie...