2010-10-29 4 views
16

Sono nuovo nello sviluppo di plugin. Quindi per favore correggimi, ovunque mi sbagli.Sviluppo di plugin per WordPress usando OOP

Ho un sito web che ha bisogno di un giocatore plugin con le seguenti esigenze: -

  • Un amministratore modulo controllabile per la registrazione il giocatore, con alcuni dettagli di loro.
  • Una pagina di elenco in cui devono essere mostrati tutti i giocatori registrati.
  • I giocatori registrati possono essere eliminati & confrontati l'uno con l'altro.
  • Mostrando alcuni giocatori registrati (10 giocatori casuali) nel tema WordPress nel front-end.

Ho completato l'attivazione del plug-in, insieme alla creazione della tabella del database e alle opzioni del menu amministratore per questo plug-in. Ho anche completato l'interfaccia di registrazione del lettore, ma senza il codice di inserimento del database. Ma tutti questi sono stati fatti usando il normale modo procedurale.

ora hanno due mal di testa nel completamento dello sviluppo di questo plugin: -

  • sviluppare questo plug-in nel formato OOP, per il sostegno alle future versioni di WordPress.
  • Completa gli altri requisiti di questo plug-in.

Come procedere con quanto segue (anche con un po 'di condivisione delle conoscenze)?

  • Creazione di un plug-in WordPress da zero utilizzando il modo OOP.
  • Chiamare un modulo Web (come per la registrazione del lettore) utilizzando OOP.
  • Invio di tutte queste informazioni sul lettore nel database utilizzando OOP.
  • Mostrare una pagina di elenco (come per i giocatori registrati e posizionarli) usando OOP.
  • Visualizzazione di alcuni giocatori nel front-end del tema WordPress, utilizzando i tag dei modelli o direttamente con l'aiuto del plug-in.

Ho cercato Google, ho cercato di trovare alcune informazioni in Internet su questi, ma non ho avuto successo con la cosa OOP.

EDIT: - Sarà molto utile e piacevole per tutti noi (una novità per lo sviluppo plugin per WordPress OOP) per avere qualche frammento di codice evidenziando il suo utilizzo. Se possibile, puoi anche fornire alcuni link agli articoli che descrivono correttamente come scrivere tali plugin OOP.

articoli, come quello che "gulbrandr" fornito, era disponibile, e mi piacerebbe anche grazie "kovshenin" per la condivisione/menzionare i link di alcuni plugin OOP; ma sarà molto bello se si possano fornire altri articoli o uno snippet di codice, descrivendo i passaggi appropriati per sviluppare i plugin OOP.

+0

non c'è qualcuno che ha fatto un buon lavoro su WordPress Plugin Dev usando la caratteristica di programmazione orientata agli oggetti? –

risposta

7

Io non sono un guru, ma ho lavorato con WordPress per diversi anni e ho un bel numero di plugin alle mie spalle. Il tuo primo errore che posso sottolineare è

con database di creazione della tabella

Questo è sbagliato. Non si creano tabelle quando si lavora con WordPress, lo schema predefinito è abbastanza flessibile da adattarsi a qualsiasi cosa tu abbia in mente. Anche plugin complicati come WP-eCommerce vengono riscritti (o già non sanno) per adattarsi allo schema standard di WordPress. Soprattutto dal momento che WordPress 3.0 è già uscito. Questo è stato menzionato su WordCamp all'inizio di quest'anno.

Puoi facilmente inserire i tuoi giocatori nella tabella Utenti. I loro attributi potrebbero essere memorizzati nella tabella Meta degli utenti, in più potresti assegnare loro ruoli speciali e/o privilegi.

Ora, se sei veramente interessato a OOP, dovresti scaricare alcuni interessanti plugin e leggere il codice per vedere come gli altri lo fanno. Ad esempio, potrei menzionare uno dei miei plugin chiamato Twitter Friendly Links - non è il miglior OOP in circolazione, ma è sicuramente un inizio;)

In seguito, puoi dare un calcio a W3 Total Cache, dove vedrai cose molto impressionanti e organizzazione del codice (grazie a Frederick Townes).

Inoltre, alcune parti del Codex ora mostrano esempi in stile OOP - l'API Widget per esempio. Spero di vedere presto e hurray per OOP in WordPress! È una buona cosa che la gente faccia queste domande, è ciò che motiva gli sviluppatori principali :)

+0

Grazie per queste informazioni e collegamenti. Lo esaminerò sicuramente. Inoltre ricorderò sempre il tuo punto sull'utilizzo dello schema del database di solo WordPress. Grazie ancora. –

+1

Non dovresti dire "tu * non creare * tabelle". Dispongo di un plug-in per l'accodamento della posta che utilizza una tabella personalizzata per la coda e lo schema WP standard per tutto il resto. L'uso di 'wp_post'_meta per tutti i miei dati della coda di posta è quantomeno troppo complesso e introduce rischi che preferirei non prendere, specialmente con query di join troppo complicate tra' wp_post' e 'wp_post_meta'. Quindi * creo * un tavolo. – ProfK

+0

'Non creare tabelle' è qualcosa di molto sbagliato. Le tabelle di Wordpress sono gonfiate nel tempo perché quasi tutti i plug-in utilizzano la struttura di tabelle wordpress per archiviare i propri dati, causando problemi con grandi siti o siti che conservano grandi quantità di dati. Se si utilizzano tabelle di wordpress e un determinato sito contiene un mucchio di dati memorizzati in esso da altri plugin o wordpress stesso, anche le query verranno interessate, anche se il plug-in utilizza poca memoria di database. E questo è ancora prima di entrare in complessi join che possono richiedere un plugin avanzato. – unity100

1

Prova ad utilizzare i tipi di post personalizzati incorporati di WP e l'API di campi/tassonomie personalizzati. Se non è sufficiente per il tuo compito, puoi provare ad aggiungere un ORM come, ad esempio, Doctrine per il back-end. Inoltre, recentemente ho sviluppato un semplice framework che fornisce alcune funzionalità di base per aggiungere l'approccio MVC a WP (routing di richieste di base, API di generazione HTML e "modello" basato sui post di wordpress e campi personalizzati). Non è perfetto - ma posso condividere il codice e potrebbe essere che ti aiuterà.

+0

Non proprio, quello che stavo cercando, poiché intendevo utilizzare le funzionalità e le API di WordPress esistenti. Ma quello che mi piace del tuo punto è la tua sperimentazione sulla fusione della struttura MVC con WordPress, insieme a Doctrine. Davvero eccezionale - +1 –

+1

Quello che sto offrendo è l'estensione API WP che abbiamo sviluppato per supportare il nostro sviluppo quotidiano :) Se stai cercando un buon modo per strutturare il codice del tuo plugin - presta attenzione alla risposta di gulbrandr. L'articolo a cui fa riferimento è davvero eccezionale e descrive un ottimo approccio "una classe per funzione" che mantiene pulito il tuo codice. – karevn

10

Spesso scarica i plug-in per vedere il codice sperando di imparare qualcosa dai metodi degli sviluppatori e dallo stile di codifica. Spesso mi ritrovo frustrato a leggere i plugin scritti male. Non è che siano cattivi sviluppatori, semplicemente non si sono concentrati su stili di codifica alternativi e hanno perfezionato il modo in cui programmano i loro plug-in. Ecco un rapido passo dopo passo su come scrivo i miei plugin WordPress sperando di influenzare altri sviluppatori.

passaggi su come iniziare a lavorare con plugin di sviluppo

Fase 1 - Creare il file e ha fatto sapere come plugin

Passo 2 - Creare gli oggetti del vostro plugin

Passaggio 3: aggiunta di azioni e filtri

Passaggio 4 - Aggiunta di impostazioni/opzioni al plug-in

finire il codice

Riferimento: Writing a WordPress Plugin Using Classes

+1

Potete fornire maggiori informazioni (come come procedete quando create/modificate un modulo di amministrazione, quando inserite/aggiornate dati nel database usando una nuova tabella personalizzata, quando fornite il supporto per la visualizzazione di categorie al nuovo plugin e così via), oltre al link fornito? Perché il collegamento menziona solo una parte dello sviluppo del plugin usando OOP, e non le complessità di cui sto parlando. Per favore, cerca di capire il mio requisito. ** Se necessario, tornerò di nuovo per un'opzione di taglia, ma ho bisogno di alcune buone risposte male. ** Grazie a tutti per il loro contributo. –