WordPress to świetna platforma do tworzenia stron internetowych lub blogów. Istnieje już od ponad dekady i wciąż rośnie jego popularność. To jeden z najpopularniejszych systemów zarządzania treścią w internecie, używany przez miliony ludzi i tysiące firm.

Ale czy wiesz, że WordPress może być również używany jako API dla oddzielnego frontu?

W tym artykule przedstawię zestaw wtyczek i konfiguracji, aby łatwo wykorzystać WordPressa jako API dla frontendowej lub mobilnej aplikacji.

W swoim projekcie testowym na domenie głównej umieściłem aplikację frontendową, natomiast WordPress został zainstalowany na subdomenie api.domain.com.

Dla api warto albo w pliku .htaccess abo też w jednym z plików php (np. functions.php użytej templatki) zrobić przekierowanie do domeny głównej dla adresów innych niż /wp-admin, /wp-login i /index.php?graphql.

Pluginy i narzędzia

WP GraphQL

Dzięki wtyczce WP GraphQL możesz uzyskać dostęp do wszystkich danych WordPressa za pomocą GraphQL API. Zapewnia łatwiejszy i szerszy dostęp do danych w porównaniu do domyślnego interfejsu REST API.

GraphQL code generator

Generator kodu GraphQL może być używany do generowania kodu JavaScript takiego jak typowane zapytania, mutacje, subskrypcje i typowane resolwery GraphQL. Tutaj jest świetny artykuł o tym, jak go skonfigurować.

Polylang

Polylang to wielojęzyczna wtyczka do WordPressa, która pozwala stworzyć stronę internetową w wielu językach.

WP GraphQL Polylang

Ta wtyczka eksponuje języki i tłumaczenia Polylang w schemacie GraphQL.

WPGraphQL Cors

Powinieneś również rozważyć użycie WPGraphQL Cors pozwalająca ustawić nagłówki CORS które GraphQL zaakceptuje, co oznacza, że domyślne pliki cookie auth WordPressa będą akceptowane.

SQLite Database Integration

Jeśli chcesz uprościć konfigurację, możesz użyć SQLite zamiast bazy danych MySQL.

Custom fields:

Jeśli potrzebujesz używać pól własnych, możesz je włączyć w: New post => Preferences => Panel => Additional => Custom fields.

Następnie zarejestruj typ niestandardowy, aby można go było pobrać za pomocą GraphQL:

add_action('graphql_register_types', function() {
    register_graphql_field('Post', 'CUSTOM_FIELD_NAME', [
       'type' => 'String',
       'description' => __('CUSTOM_FIELD_DESCRIPTION', 'wp-graphql'),
       'resolve' => function($post) {
         $field = get_post_meta($post->ID, 'CUSTOM_FIELD_NAME', true);
         return ! empty($field) ? $field : null;
       }
    ]);
});

Ogólnie rzecz biorąc, WordPress API to potężne i wszechstronne narzędzie, które pozwala programistom stworzyć całkowicie niestandardowy frontend dla swojej witryny WordPress. Jest łatwy w użyciu i zrozumieniu, a także wysoce rozszerzalny, co czyni go wartym do rozważenia wyborem dla programistów, którzy chcą stworzyć niestandardowe funkcjonalności dla swojej witryny. Dzięki API WordPressa programiści mogą łatwo dodawać nowe funkcjonalności, a także integrować inne usługi i aplikacje z platformą WordPress.