Moja prezentacja WordCamp Lublin:
Bardzo często przy migracji witryny występuje problem z nazwami plików, a dokładniej z kodowaniem polskich znaków diakrytycznych. Jeżeli szukasz jak masowo zamienić już istniejące pliki, to muszę cię rozczarować, ten wpis nie jest o tym. Ten wpis jest o tym, jak nie dopuścić do takiej sytuacji, czyli zgodnie z zasadą, że lepiej jest zapobiegać, niż leczyć.
Dla mnie, ten kawałek kodu jest czymś co zawsze instaluje na wszystkich WordPressach, w których mam prawo to zrobić.
Zacznijmy od początku. Od tego czym jest gwarancja. Słownik Języka Polskiego definiuje ją tak:
- ważne czasowo zobowiązanie producenta lub sprzedawcy do bezpłatnej naprawy lub wymiany zakupionego, wadliwego towaru;
- poręczenie prawdziwości, autentyczności czegoś; rękojmia;
- odpowiedzialność osoby trzeciej, np. banku, za zobowiązania dłużnika wobec wierzyciela, umowa zakładająca spłatę czyjegoś długu przy zajściu ustalonych warunków

Aby usunąć pole z formularza, należy sprawdzić czy istnieje i jeżeli istnieje, to je po prostu usunąć. Sprawdzenie jest bardzo ważna, nie chcemy przecież, żeby nasz skrypt sypał ostrzeżeniami do logów.

Często w czasie testowanie serwisu klienta pojawia się potrzeba utworzenia kopi serwisu na mojej lokalnej maszynie. Zazwyczaj używam do tego wtyczki Duplicator, która pozwala na szybkie i wygodne skopiowanie zarówno plików, jak i bazy danych. Często klient tworzy dla mnie konto, czasami nie.
Poniższy kod zmienia użytkownikowi „admin” lub zakłada użytkownika „admin” z hasłem „admin”.
require 'wp-load.php'; $admin = get_user_by( 'login', 'admin' ); if ( !empty( $admin ) ) { wp_set_password( 'admin', $admin->ID ); echo 'New password "admin" for user "admin" was set.'; return; } $admin_id = wp_create_user( 'admin', 'admin', sprintf( 'admin-%d@example.com', rand() ) ); $admin = new WP_User( $admin_id ); $admin->add_role( 'administrator' ); echo 'New user "admin" with password "admin" was created.'; |
Jak tego użyć?
Skopiuj kod do pliku w głównym katalogu WordPressa i uruchom go z przeglądarki. Pamiętaj, żeby go skasować po tym jak już dodasz admina.
Nigdy nie używaj tego na produkcji.
[zip href="http://iworks.pl/wp-content/uploads/2016/02/iworks-set-admin.zip"]iworks-set-admin.zip[/zip]Na początku jest wycena.
Ale jak wycenić coś, czego wycenić się nie da? Taka praca, która nie do końca wiadomo jak będzie przebiegać. Zupełnie inaczej niż z grafiką, którą po prostu trzeba zmienić w motyw. Tam widać. Choć czasem są ukryte kruczki, to jednak praca na obcej bazie danych jest jednym wielkim kruczkiem. Oczywiście wycena na podstawie dostarczonej bazy, ale … nie było schematu, baza bardzo prosta, bez kluczy obcych, więc moja obawa, że coś „zgubię” bardzo mocna.

Do testów motywów czy wtyczek używam danych testowych, ale tym razem potrzebowałem zmieniać daty wpisom.
Ponieważ ręczne zmiany nie wchodziły w grę, to musiałem napisać kawałek SQLa:
UPDATE wp_posts SET post_date = '2015-01-01' + INTERVAL rand()*300 DAY + INTERVAL rand()*6000 SECOND ; |
Powyższy kod całkowicie wystarcza, żeby „pomieszać” dowolnej liczbie wpisów datę publikacji.

Na jednej z grup na FB Artur opisał następujący problem:
Mam na swoim blogu szablon i wszystko byłoby w porządku gdyby nie problem z datą – wyświetla mi ją jako MM.DD.RRRR, a chciałbym by pokazywało ją po naszemu. W opcjach mam ustawione wyświetlanie daty na „3 listopada 2015”.
Szybka analiza motywu ujawniła, że na format daty, podany jest na sztywno w jednym z plików motywu w taki sposób: get_the_date('m.d.Y');
. Dokładne sprawdzenie wykluczyło możliwość stworzenia w prosty sposób motywu potomnego, bo zaciąganie pliku nie jest zrobione w zalecany dla motywu potomnego sposób.

Na jednej stronie mam problem z pojawiającymi się kontami użytkowników. Z tego co sprawdziłem problem sprawiała dziura we wtyczce fusion-core
, która jest wymaganą wtyczką motywu Avada
.
Nie mogę zrezygnować z tej wtyczki, więc naprawiłem ją ręcznie, kasując linię odpowiedzialną za import danych. Oczywiście problem wraca w czasie aktualizacji, więc w celu zapobieżenia ponownej sytuacji tego typu, napisałem krótką wtyczkę: