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
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.
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 to wielojęzyczna wtyczka do WordPressa, która pozwala stworzyć stronę internetową w wielu językach.
Ta wtyczka eksponuje języki i tłumaczenia Polylang w schemacie GraphQL.
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.
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.