Być Wtyczką, czy nie być Wtyczką?

Moja prezentacja WordCamp Lublin:

Być Wtyczką, czy nie być Wtyczką?

Filtr dnia: sanitize_file_name – czyli nazwy plików bez znaków specjalnych

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ć.

Jak radzić sobie z gwarancją i poprawkami po wdrożeniu?

Zacznijmy od początku. Od tego czym jest gwarancja. Słownik Języka Polskiego definiuje ją tak:

  1. ważne czasowo zobowiązanie producenta lub sprzedawcy do bezpłatnej naprawy lub wymiany zakupionego, wadliwego towaru;
  2. poręczenie prawdziwości, autentyczności czegoś; rękojmia;
  3. 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

Filtr dnia: comment_form_default_fields

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.

Dodaj użytkownika admin z hasłem admin

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]

Core Contributors to WordPress 4.5 – melduję się

Tak kronikarsko.

core-contributors-to-wordpress.4.5

Migracja danych Valhalla.pl

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.

Calendar - © Dafne Cholet 2011-01-20

Filtr dnia: get_the_date

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.

Akcja dnia: user_register

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ę:

Strona 4 z 42

Oparte na WordPress & Theme by Anders Norén