I plan some sort of an event website. There are organisations, which can host zero, one or multiple events. Events are never published on their own. Events will be published as ‘inline’ snippets only, say on the frontpage, their respective organisation’s detail page, the search result page and such.

I already have the whole frontend (HTML5, CSS, JavaScript) including design and frontend logic readily developed. Now I want to use WordPress as a backend. Editors shall be able to

  • add, edit, deactivate, delete organisations
  • add, edit, deactivate, delete events (belonging to an existing organisation)
  • set (amongst others) start date and end date for an event

The backend should manage events in a way, that it can automatically disable an event, if the ‘end date’ is due or simply tell the frontend, that the event has already expired (but still needs to be rendered on the page).

Is WordPress out of the box able to provide these features in a way, that I just need to develop a custom theme to transfer the existing frontend dummy into WordPress? Or do I rather have to get into plugin development and write a plugin for that?

1 Answer
1

WordPress will not automatically provide these features. From what you are describing, you will want to create custom post types, a taxonomy or two for classification and custom fields for the post types.

You COULD build all of this into a WordPress theme but the generally advised approach is to wrap your functionality into one or more plugins.

There is not a great deal of difference in the code you would write for this but plugins are independent of themes and provide more flexibility in that separation.

You will find plenty of good resources on crafting a plugin for WP:
https://codex.wordpress.org/Writing_a_Plugin

Registering new post types:
https://codex.wordpress.org/Function_Reference/register_post_type

Custom fields:
https://codex.wordpress.org/Function_Reference/register_taxonomy

… and specific questions or sticking points are welcome in a Q&A form on WPSE.

Good luck!

Leave a Reply

Your email address will not be published. Required fields are marked *