Cum să-ți creezi propriul plugin WordPress

Publicat: 2016-07-13

Poate părea un angajament uriaș de a crea un plugin WordPress. În unele cazuri, acest lucru este adevărat – unele plugin-uri pot fi incredibil de complexe. Dar, în funcție de funcționalitatea pe care doriți să o adăugați, multe sunt de fapt destul de simplu de construit. Crearea unui plugin se poate face rapid cu o înțelegere de bază a modului în care funcționează totul.

Unde merg pluginurile?

Structura folderelor WordPress

Înainte de a începe dezvoltarea, este bine să știți unde aparțin pluginurile. Să aruncăm o privire asupra structurii folderelor WordPress din directoarele de bază ale aplicațiilor. În folderul wp-content , veți vedea un director de pluginuri. Aici vor locui toate pluginurile tale individuale.

Pluginurile din acest folder pot fi fișiere individuale sau în subdirectoare. Pluginurile mai mici necesită de obicei doar un singur fișier .php. Pluginurile complexe pot avea mai multe tipuri de fișiere (HTML, CSS și JavaScript sunt toate posibilități). Crearea unui subdirector este utilă pentru a găzdui diferitele fișiere împreună cu funcțiile .php ale pluginului.

cum-se-build-wordpress-plugin-plugin-file-path

Acțiuni și filtre

Înainte de a începe construirea pluginului, este bine să cunoașteți câteva elemente de bază pentru a începe. Când începeți să vă codificați propriile pluginuri, un loc bun pentru a începe este să aflați cum funcționează acțiunile și filtrele. Cunoașterea elementelor de bază va fi utilă și, pe măsură ce aveți mai multe întrebări despre aceasta, WordPress Codex este o resursă excelentă.

Înainte de dezvoltarea pluginului

Meta-informațiile sunt incredibil de importante și sunt, de asemenea, informațiile care spun WordPress detalii despre plugin. Pluginurile au opțiuni pentru a fi instalate, șterse, activate și inactivate. Din punct de vedere tehnic, tot ce aveți nevoie este numele pluginului pentru WordPress pentru a vă stabili fișierul ca plugin. Cu toate acestea, este o practică bună să furnizați celelalte informații, deoarece vă vor fi de ajutor pentru dvs. și pentru utilizatorii dvs.

<?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

*/

Un plugin foarte simplu

A începe cu mic este o modalitate bună de a facilita construirea de pluginuri. Să creăm un exemplu foarte simplu. Acțiunile și filtrele fac lucrurile să se întâmple, așa că haideți să adăugăm o linie de text după toate postările pentru a testa lucrurile.

Este întotdeauna bine să lucrezi într-un mediu de dezvoltare, iar acest lucru este deosebit de important pe măsură ce experimentezi cu pluginuri.

Mai întâi, creați un fișier nou și asigurați-vă că este în locul corect. Copiați și inserați acest cod în fișierul principal de plugin și salvați-l. Aceasta se lipește după metainformații.

add_action( 'the_content', 'test_example_text' );

function test_example_text ( $content ) {
    return $content .= '<p>This is my first plugin!</p>';
}

Acesta este un exemplu de cârlig la lucru. Prin conectarea la the_content , aceasta funcționează atunci când WordPress redă conținutul postării. WordPress apelează funcția test_example_text care este definită sub add_action call .

Văzând pluginul în acțiune

Probabil ați mai făcut acest lucru, dar când v-ați conectat la administratorul WordPress, veți vedea opțiunea de plugin în partea stângă. Pluginul nostru apare și acum trebuie activat. Odată activat, apare la sfârșitul postării.

lista-cum-se-creează-plugin-wordpress-plugin-listing

cum-se-creează-plugin-wordpress-primul-plugin

Un plugin mai complex

Deci, acest exemplu demonstrează elementele de bază ale modului în care funcționează pluginurile, dar ce se întâmplă dacă doriți să faceți ceva mai util? Tipurile de postări personalizate sunt folosite destul de frecvent în designul personalizat de site-uri, așa că să începem cu asta. Există pluginuri existente pe care le puteți utiliza, dar crearea unuia de la zero este o modalitate bună de a facilita dezvoltarea pluginurilor.

Ce este tipul de postare personalizat în WordPress?

Paginile și postările sunt cele mai populare tipuri de conținut în WordPress, dar ce se întâmplă dacă doriți ceva mai specific? Paginile și postările pot fi prea generale în anumite circumstanțe, motiv pentru care un tip de postare personalizat devine util. Un bun exemplu este un tip de postare personalizat de portofoliu. Ideea este de a crea o postare obișnuită cu o valoare diferită de tip de postare atașată.

Cum să creezi un site de portofoliu pe WordPress

A avea o pagină de portofoliu pe un site web poate fi folosit pentru atât de multe lucruri. Prin definiție, este ceva folosit pentru a deține materiale precum hârtii, hărți, desene, fotografii etc. Un portofoliu în termeni financiari se referă...

Puteți numi tipurile de postări personalizate cum doriți. De exemplu, dacă conduceți un site cu alimente, puteți crea un tip de postare de rețetă la îndemână. Acest tip de postare poate avea diferite câmpuri personalizate cu propria sa structură de categorie personalizată.

Crearea unor tipuri de postări personalizate

Primul lucru pe care trebuie să-l faceți este de fapt să creați tipul de postare personalizat. Folosind aceeași structură de fișiere de mai sus, să adăugăm folderul și fișierul .php. Presupunând că metainformația a fost creată, vom adăuga funcționalitatea noastră după metablocul.

Vom crea un plugin pentru un tip de postare personalizat numit „Rețete” pentru a demonstra elementele de bază ale creării unui plugin mai complex.

Versiunea de bază

Dacă aruncați o privire la fragmentul de mai jos, este destul de simplu la început. Vom vedea un tip de postare personalizat în meniul din stânga pentru a ne asigura că funcționează. register_post_type() este folosit într-o funcție, care se conectează la acțiunea init . Există două argumente care sunt tipul de post personalizat și o matrice de argumente.

function recipe_custom_post_type() {
	register_post_type( 'recipe', array( 'public' => true, 'label' => 'Recipes' ) );
}
add_action( 'init', 'recipe_custom_post_type' );

cum-se-creează-plugin-wordpress-tip-post-personalizat-01

Versiunea avansată

Această versiune de bază a pluginului va funcționa cu adevărat, cu toate acestea, este nevoie de mai multe funcționalități pentru a o face cu adevărat minunată. De exemplu, etichetele încă citesc „Adăugați o postare nouă”. Vrem ca aceasta să fie mai specifică rețetei; la urma urmei, acesta este motivul pentru care nu folosim doar o postare simplă. Personalizările pot fi făcute folosind proprietatea labels.

cum-se-construiți-plugin-wordpress-adăugați-noi-postări

Acum, să renunțăm la ceea ce tocmai am făcut și să folosim asta în schimb:

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;
}


cum-se-construiește-plugin-wordpress-adăugați-nouă-rețetă

Vedeți cum textul din partea de sus scrie acum „Adăugați o rețetă nouă”? Am făcut acest lucru să se întâmple personalizând „adăugați un articol nou” cu textul dorit.

cum se construiesc elementele-ui-plugin-wordpress

cum-să-creezi-wordpress-plugin-primire-postări

Se întâmplă multe aici și lucrurile devin destul de detaliate atunci când lucrezi cu argumente. Una care este evidentă vizual este proprietatea supports . Aici am declarat că trebuie incluse un titlu, un editor, un autor, o miniatură, un fragment, câmpuri personalizate și comentarii. Acestea sunt afișate în interfața cu utilizatorul de administrare și în unele părți ale front-end-ului. Proprietatea taxonomies vă permite să atribuiți taxonomii personalizate tipului de post personalizat.

cum-se-creează-plugin-wordpress-ui-nou

Mesaje de interacțiune de tip post

Ori de câte ori salvați, ștergeți, căutați etc., primiți un mesaj implicit. În funcția noastră recipes_messages , există o listă a acestor mesaje. Definirea matricei pentru tipul de postare personalizat cu mesajele adecvate va asigura că lucrurile vor fi citite așa cum doriți pentru tipul de postare personalizat. Lucrurile par foarte specifice rețetei cu formularea, așa că aceasta se potrivește bine cu tipul de postare personalizat.

cum se construiește textul-rețetei-plugin-wordpress

După ce ați finalizat pluginul, îl puteți publica în Directorul de pluginuri WordPress, astfel încât și alții să îl poată descărca. Dacă acesta este cazul, includerea unui readme.txt este utilă pentru cei care caută un plugin ca al tău. Practic, acest fișier va include numele dvs. și ceea ce face pluginul, dar puteți include și detalii despre fiecare revizuire și detalii despre actualizări.

După cum puteți vedea, pluginurile pot fi foarte simple sau complexe. Crearea unui plugin nu este atât de complicată pe cât ar putea părea la început și este un obicei bun în care trebuie să intrați atunci când dezvoltați site-uri WordPress. Acestea permit o organizare ușoară și capacitatea de reutilizare pe mai multe site-uri, făcând dezvoltarea dvs. WordPress mai eficientă.

cum-se-construiește-plugin-wordpress-ebook-cta