Jak zbudować własną wtyczkę WordPress
Opublikowany: 2016-07-13Stworzenie wtyczki do WordPressa może wydawać się ogromnym przedsięwzięciem. W niektórych przypadkach to prawda – niektóre wtyczki mogą być niezwykle złożone. Ale w zależności od funkcjonalności, którą chcesz dodać, wiele z nich jest w rzeczywistości dość prostych do zbudowania. Tworzenie wtyczki można wykonać szybko, mając podstawową wiedzę na temat tego, jak to wszystko działa.
Gdzie są wtyczki?
Struktura folderów WordPress
Zanim rozpocznie się programowanie, dobrze jest wiedzieć, dokąd należą wtyczki. Przyjrzyjmy się strukturze folderów WordPress w podstawowych katalogach aplikacji. Wewnątrz folderu wp-content zobaczysz katalog wtyczek. Tutaj będą znajdować się wszystkie Twoje indywidualne wtyczki.
Wtyczki w tym folderze mogą być pojedynczymi plikami lub podkatalogami. Mniejsze wtyczki zazwyczaj wymagają tylko jednego pliku .php. Złożone wtyczki mogą mieć wiele typów plików (HTML, CSS i JavaScript to wszystkie możliwości). Tworzenie podkatalogu jest pomocne w przechowywaniu różnych plików wraz z funkcjami .php wtyczki.

Akcje i filtry
Zanim zacznie się tworzenie wtyczek, dobrze jest poznać podstawy, aby zacząć. Kiedy zaczynasz kodować własne wtyczki, dobrym miejscem do rozpoczęcia jest poznanie działania akcji i filtrów. Znajomość podstaw będzie pomocna, a ponieważ masz więcej pytań na ten temat, Kodeks WordPress jest świetnym źródłem informacji.
Przed opracowaniem wtyczki
Metainformacje są niezwykle ważne i są to również informacje, które mówią WordPressowi o szczegółach wtyczki. Wtyczki mają opcje do zainstalowania, usunięcia, aktywacji i dezaktywacji. Z technicznego punktu widzenia wszystko, czego potrzebujesz, to nazwa wtyczki dla WordPress, aby ustawić swój plik jako wtyczkę. Dobrą praktyką jest jednak podanie innych informacji, ponieważ będą one pomocne dla Ciebie i Twoich użytkowników.
<?php /** * Plugin Name: Example Plugin * Plugin URI: http://mysite.com/ * Description: A brief description about your plugin. * Version: 1.0 (or whatever current version your plugin is on) * Author: Plugin Author's Name * Author URI: Author's website * License: A "Slug" license name e.g. GPL12 */
Bardzo prosta wtyczka
Rozpoczęcie od małych to dobry sposób na ułatwienie tworzenia wtyczek. Stwórzmy bardzo prosty przykład. Akcje i filtry sprawiają, że wszystko się dzieje, więc dodajmy wiersz tekstu po wszystkich postach, aby przetestować rzeczy.
Zawsze dobrze jest pracować w środowisku programistycznym, a jest to szczególnie ważne, gdy eksperymentujesz z wtyczkami.
Najpierw utwórz nowy plik i upewnij się, że znajduje się we właściwym miejscu. Skopiuj i wklej ten kod do głównego pliku wtyczki i zapisz go. To jest wklejane po metainformacji.
add_action( 'the_content', 'test_example_text' );
function test_example_text ( $content ) {
return $content .= '<p>This is my first plugin!</p>';
}
To przykład ciężkiej pracy haka. Podpinając się do akcji the_content , działa to, gdy WordPress renderuje treść posta. WordPress wywołuje funkcję test_example_text zdefiniowaną poniżej add_action call .
Widzę wtyczkę w akcji
Prawdopodobnie robiłeś to już wcześniej, ale po zalogowaniu się do administratora WordPressa zobaczysz opcję wtyczki po lewej stronie. Pojawia się nasza wtyczka i teraz trzeba ją aktywować. Po aktywacji pojawia się na końcu posta.


Bardziej złożona wtyczka
Ten przykład pokazuje podstawy działania wtyczek, ale co, jeśli chcesz zrobić coś bardziej przydatnego? Niestandardowe typy postów są dość często używane w niestandardowych projektach witryn, więc zacznijmy od tego. Istnieją istniejące wtyczki, z których można korzystać, ale utworzenie jednej od podstaw to dobry sposób na ułatwienie tworzenia wtyczek.
Co to jest niestandardowy typ posta w WordPressie?
Strony i posty to najpopularniejsze typy treści w WordPressie, ale co, jeśli chcesz czegoś bardziej konkretnego? Strony i posty mogą być w niektórych okolicznościach zbyt ogólne, dlatego niestandardowy typ posta staje się przydatny. Dobrym przykładem jest portfolio typu custom post. Pomysł polega na stworzeniu zwykłego posta z dołączoną wartością innego typu posta.
Jak stworzyć witrynę z portfolio na WordPress
Posiadanie strony portfolio na stronie internetowej może służyć do wielu rzeczy. Z definicji jest to coś, co służy do przechowywania materiałów takich jak papiery, mapy, rysunki, zdjęcia itp. Portfolio w ujęciu finansowym ref....
Możesz dowolnie nazywać swoje niestandardowe typy postów. Na przykład, jeśli prowadzisz witrynę kulinarną, możesz utworzyć przydatny typ postu z przepisami. Ten typ posta może mieć różne pola niestandardowe z własną niestandardową strukturą kategorii.
Tworzenie niestandardowych typów postów
Pierwszą rzeczą, którą musisz zrobić, jest utworzenie niestandardowego typu posta. Korzystając z tej samej struktury plików, co powyżej, dodajmy nasz folder i plik .php. Zakładając, że meta-informacje zostały utworzone, dodamy naszą funkcjonalność po metabloku.
Zamierzamy stworzyć wtyczkę do niestandardowego typu posta o nazwie „Przepisy”, aby zademonstrować podstawy tworzenia bardziej złożonej wtyczki.
Wersja podstawowa
Jeśli spojrzysz na poniższy fragment, na początku jest to dość proste. Zobaczymy niestandardowy typ posta w lewym menu, aby upewnić się, że to działa. register_post_type() jest używana w funkcji, która łączy się z akcją init . Istnieją dwa argumenty, którymi są niestandardowy typ wiadomości i tablica argumentów.
function recipe_custom_post_type() {
register_post_type( 'recipe', array( 'public' => true, 'label' => 'Recipes' ) );
}
add_action( 'init', 'recipe_custom_post_type' );


Wersja zaawansowana
Ta podstawowa wersja wtyczki faktycznie będzie działać, jednak potrzebna jest większa funkcjonalność, aby naprawdę była cudowna. Na przykład etykiety nadal czytają „Dodaj nowy post”. Chcemy, aby było to bardziej specyficzne dla receptury; w końcu dlatego nie używamy zwykłego posta. Dostosowań można dokonywać za pomocą właściwości etykiety.

Teraz zarysujmy to, co właśnie zrobiliśmy, i użyjmy tego:
add_action( 'init', 'recipe_custom_post_type' );
add_filter( 'post_updated_messages', 'recipes_messages' );
function recipe_custom_post_type() {
$labels = array(
'name' => 'Recipes',
'singular_name' => 'Recipe',
'menu_name' => 'Recipe',
'name_admin_bar' => 'Recipe',
'add_new' => 'Add New',
'add_new_item' => 'Add New Recipe',
'new_item' => 'New Recipe',
'edit_item' => 'Edit Recipe',
'view_item' => 'View Recipe',
'all_items' => 'All Recipes',
'search_items' => 'Search Recipes',
'parent_item_colon' => 'Parent Recipes:',
'not_found' => 'No recipes found.',
'not_found_in_trash' => 'No recipes found in Trash.'
);
$args = array(
'public' => true,
'labels' => $labels,
'rewrite' => array( 'slug' => 'recipe' ),
'has_archive' => true,
'menu_position' => 20,
'menu_icon' => 'dashicons-carrot',
'taxonomies' => array( 'post_tag', 'category' ),
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'custom-fields', 'comments' )
);
register_post_type( 'recipe', $args );
}
function recipes_messages( $messages ) {
$post = get_post();
$messages['recipe'] = array(
0 => '',
1 => 'Recipe updated.',
2 => 'Custom field updated.',
3 => 'Custom field deleted.',
4 => 'Recipe updated.',
5 => isset( $_GET['revision'] ) ? sprintf( 'Recipe restored to revision from %s',wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
6 => 'Recipe published.',
7 => 'Recipe saved.',
8 => 'Recipe submitted.',
9 => sprintf(
'Recipe scheduled for: <strong>%1$s</strong>.',
date_i18n( 'M j, Y @ G:i', strtotime( $post->post_date ) )
),
10 => 'Recipe draft updated.'
);
return $messages;
}

Widzisz, jak tekst na górze brzmi teraz „Dodaj nowy przepis”? Zrobiliśmy to, dostosowując „dodaj nowy element” z żądanym tekstem.


Dużo się tu dzieje, a podczas pracy z argumentami sprawy stają się dość szczegółowe. Jedną, która jest wizualnie oczywista, jest właściwość supports . W tym miejscu zadeklarowaliśmy, że tytuł, redaktor, autor, miniatura, fragment, pola niestandardowe i komentarze zostaną uwzględnione. Są one wyświetlane w interfejsie użytkownika administratora, a także w niektórych częściach interfejsu użytkownika. Właściwość taksonomii umożliwia przypisanie niestandardowych taksonomii do typu postu niestandardowego.

Wiadomości interakcji typu post
Za każdym razem, gdy zapisujesz, usuwasz, wyszukujesz itp., otrzymujesz domyślną wiadomość. W naszej funkcji recipes_messages znajduje się lista tych wiadomości. Zdefiniowanie tablicy dla niestandardowego typu postu z odpowiednimi komunikatami zapewni, że wszystko będzie czytać tak, jak lubisz dla niestandardowego typu postu. Sformułowanie jest bardzo specyficzne dla przepisu, więc pasuje to do niestandardowego typu posta.

Po ukończeniu wtyczki możesz opublikować ją w katalogu wtyczek WordPress, aby inni również mogli ją pobrać. W takim przypadku dołączenie pliku readme.txt jest pomocne dla tych, którzy szukają wtyczki takiej jak Twoja. Zasadniczo ten plik będzie zawierał Twoje imię i nazwisko oraz działanie wtyczki, ale możesz również dołączyć szczegóły dotyczące każdej wersji i szczegóły dotyczące aktualizacji.
Jak widać, wtyczki mogą być bardzo proste lub złożone. Tworzenie wtyczki nie jest tak trudne, jak mogłoby się wydawać na pierwszy rzut oka i jest dobrym nawykiem podczas tworzenia witryn WordPress. Pozwalają na łatwą organizację i możliwość ponownego wykorzystania w wielu witrynach, dzięki czemu tworzenie WordPressa jest bardziej wydajne.

