Starting out with Wordpress - Creating a text book application - wordpress

I am basically a Java/Oracle guy. I was told that it is possible to build any simple Web app with Wordpress.
I successfully installed Wordpress on my machine and am trying to create a text book app. For this purpose, it is an employee database, with fields Name, Address, Department, Designation. I need to have the usual create/edit/search/delete functionality.
The problem with Wordpress is, I really don't know where to start, or how to customize pages.
Am I barking up the wrong tree? Is Wordpress more for blogging/news style websites than for traditional database applications? If not, how do I customize Wordpress to create the application described above?
Thanking you in advance.

Viability
Wordpress is a great system for many different applications, not just blogging/news style websites.
There are many articles out there that go in to great depth on this, but here is a good one right of: http://torquemag.io/app-dev/
Getting Started
As with any project, there clearly is more than one way to skin this cat, but right off, here are some basics I'd recommend you check out about customizing your Wordpress install:
How to create a child theme: http://codex.wordpress.org/Child_Themes
How to create a page template: http://codex.wordpress.org/Page_Templates
How to develop a plugin: http://codex.wordpress.org/Writing_a_Plugin
Plugins
In addition to this, i'd highly recommend a few plugins, which will help make things easy for you:
Advanced Custom Fields
•Makes it really easy to add Custom Fields, to allow you to store custom information, associated with a post, page, taxonomy, user etc. really easy to use, has great documentation and support, as well as a really nice UI. I'd also recommend paying the 25 bucks for the repeater field, which is really useful.
Custom Post Type UI
•Easy way to add custom post types to your wordpress instal, the default post types are: posts, links, pages. With this plugin you can add custom post types for things like say, employees.
Conclusion
In conclusion, I don't think you're barking up the wrong tree, I think that wordpress can be a simple elegant solution for a web application, and can easily be molded into almost anything you can come up with.

For developed such kinds of application you need to develop a wordpress plugins. You can handle any kinds of database operation there. You can add create/edit/search/delete functionality

Related

Advanced Custom Fields in wordpress

I am making my first steps learning to code. I made some courses on Internet and now I am building a Wordpress theme to continue learning from the experience.
The thing is that I am learning how to install a jquery slider plugin and I see that it's necessary to install advanced custom fields plugin and the repeater plugin that is only available in his pro version ($25) and that's not cool...
Now I would like to know if there is some free good plugin with the same functions of advanced custom fields?
I am just starting my experiments with wordpress to learn everything that I need to start building sites, so I don't have the enough experience to know if it worth to pay the $25 for the advanced custom fields plugin or not.
Do you have some suggestion? It will be something useful in the future? Are there other plugins that you recommends to download even if I have to pay for them?
There's so little context around what you're using the slider for and how much the site admins would need to update slides, etc., but I have two comments:
Do you need to use that specific slider? You could rig something up with custom post types, hide the editor and metaboxes, leave only a field for an image upload and whatever meta you like, and have the admin user just add a new post for each slide. Generate those posts in the PHP and have the jQuery slider take it from there. If you're just learning code, that might be more of a challenge, though. I just tend to resist paying for things when there are reasonable alternatives out there.
ACF is a worthwhile plugin. If the general context-free question is "Is ACF worth the $25?", the answer is 100% 'yes.' I use it virtually every day and often wonder how I'd make use without it. In your case, if you have other potential use for the project you're on, then yes, I'd say it's worth it. But still, in the simple context of a jQuery slider, I'm hesitant to purchase it just for that.

Custom code in Wordpress: what are the programming limitations?

I have a website (www.easterisland.travel) that I'm considering converting into a Wordpress site. Why? Basically for the following reasons:
1: To use a CMS, so that I can teach others to further add content to the website without having programming knowledge. I would built the advanced pages myself though, and the pages that others would manage would be simple information pages.
2: Access to all of these great plugins, for example the "similar pages" plugin at the bottom of each page (which I haven't found as a independent solution for raw webpages), which is just fantastic to keep people reading.
At my site I have lots of custom stuff like booking systems that I've created. There's an AngularJS shopping cart (www.easterisland.travel/tours/), instant online booking and payment (using PayPal's Express Checkout) etc. There's a page for cruise ship shore excursions (www.easterisland.travel/cruise-ship/) that's automatically generated from database data, and I've created a system where I can add cruise ships and shore excursions (adding correct itinerary, price, info etc). Passengers can also log in and communicate to other future fellow travelers within the same group, and get organized for meeting up on the tour day. I have many more plans to go as well, for example showing hotel info, displaying TripAdvisor data (using TripAdvisor API) etc.
The million dollar questions are:
1) Can all of this be achieved in a Wordpress site? Can I add all of these systems using this platform? What are the limitations?
2) Would it make sense to change to Wordpress?
3) What implementation should be used? I don't want my code to be removed or altered when Wordpress is automatically updated.
Thank you!
Wordpress doesn't have any limitations, you can extend its default functionality if it can't accomplish what you need with either plugins or custom code. and having a framework is always better than building from scratch in many ways.
HOWEVER, wordpress was originally design as blogging platform, and if you plan on extending its simple functionality you should take some time to understand how it works to properly integrate your custom needs or things could get ugly,
If you know how to interact with the database, you can easily do what you want, there are built-in functions you can use according to your needs for database interactions or just create your own if it doesn't fit well very much.
just a quick overview with wordpress database.
wp_posts - where sites main front-end data are stored, like posts, pages,
wp_postmeta - storage for additional data that are stored on wp_posts
wp_comments - storage for user interaction data for wp_posts like comments, I've also used these before to store user/admin messages.
wp_terms - use for dividing/categorizing wp_posts data, like categories and tags,
wp_options - use for back-end storage data and configuration.
You'd need to check out these functions as you're probably will encounter them in the future
https://codex.wordpress.org/Function_Reference/add_post_meta
https://developer.wordpress.org/reference/functions/get_post_meta/
https://codex.wordpress.org/Function_Reference/update_post_meta
https://codex.wordpress.org/Function_Reference/register_post_type
https://codex.wordpress.org/Function_Reference/register_taxonomy
https://codex.wordpress.org/Class_Reference/WP_Query
If you also need database interaction, check out https://codex.wordpress.org/Class_Reference/wpdb
and for front-end implementation, check this out https://developer.wordpress.org/themes/basics/template-hierarchy/, though I never used any other wordpress theme except Genesis Framework for these past 5 years as I never had to mess too much with HTML codes and almost everything can be customize using actions & filters. I advise you to use Theme Framework (and remember to always use CHILD THEME to be safe from Main Theme upgrade)
You might also want to check -> https://github.com/WebDevStudios/CMB2 (I prefer to use this than Advance Custom Fields plugins.)
Booking system in wordpress is a bit complex, I've successfully use gravity form as booking system with AngularJS + Ajax, but never tried a custom one from scratch and don't have a chance to use booking plugin as never encountered a cleint that wants a simple booking system.
Just to answer your question.
Yes, It can, for comparison, take a look at woocommerce plugin functionality and features, I believe thats more complex than what you need.
It would make sense to convert a site built from scratch to any CMS (wordpress is an option), the CMS is up to you, though its better to use the one that you know more for easier integration and customization.
You can use your child theme "functions.php" for extending your custom functionality, like create a folder in your theme for all your custom code and include/require it on your child theme functions.php or better create your own plugin to properly integrate them, you can divide the functionality in plugins, like plugin for booking system and plugin for payment functionality. check this out https://github.com/hlashbrooke/WordPress-Plugin-Template
I hope this would give you an idea.
Yes you can do all that. You will need someone with knowledge in wordpress themes and plugins but it is possible. The beauty of wordpress is, that you can write "bare" php code, and the small amount of functions to interact with wordpress are well documented.
Wordpress itself, is structured "simple" (compared to fancy tools like magento for example). So all it manages, are posts / pages / ... which, more or less derive from the same database object. You can add functionality to those things (for example, make posts cruise ships and other posts to shore excursions) or you can add your own database structure on top.
The theme system is bare php code, so you dont have to crawl through a thousand lines of xml codes to adjust little things.
Wordpress power derives from its simplicity of the "core wordpress" and the feature volume based on all those plugins. I believe alot of people would say, that you should go for a custom solution (based on symfony for example), or a CMS that already comes with more of your desired functions (like magento which has the checkout / paypal included), but I (as a wordpress fan) would see no problem to take wordpress.
I have never failed to find a plug-in to do what I needed! I manage three WordPress sites - although none of them is commercial. (Yacht Club, Cycling Club and Political Party EDA).
There is a plug in that allows PHP on any WordPress page, but it means that the Editors all have to write using the text (HTML) view rather than Visual tab. I found that useful for some of my pages - and I'm the only "Editor."
There's also a plug-in that allows you to code PHP in Widget. That doesn't have the above disadvantage.

What is the difference between wordpress plugin and widget?

Can anyone help me to get this answer with a small example as I have been trying to be cleared about this two things.
According to, and elaborating on the WordPress Codex:
Plugins
Plugins are ways to extend and add to the functionality that already exists in WordPress. The core of WordPress is designed to be lean and lightweight, to maximize flexibility and minimize code bloat. Plugins then offer custom functions and features so that each user can tailor their site to their specific needs.
So this should be thought of as a way of extending WP's underlying / core functionality. Remember, WP's Roots is that of a blogging CMS, but developers over the years have been hell bent on making it do anything and everything treating WP kind of like a framework, but not to be confused with one. For example, WordPress does not have a contact form built in for users, therefore I can plug in a 3rd party module which will permit the administrator to set up and use such functionality.
Widgets
WordPress Widgets add content and features to your Sidebars. Examples are the default widgets that come with WordPress; for post categories, tag clouds, navigation, search, etc. Plugins will often add their own widgets.
This is not as straight forward due to the concept being quite abstract. Think of a widget of extending the template dynamically by allowing a webmaster to deploy 3rd party plugins (as well as default plugins). Developers tend to use such functionality to display information that is not mission critical, non intrusive and easy to use / manipulate.
However, to clarify, you don't necessarily require widgets to use plugins. In the case you use Akismet, it will simply extend WP to prevent against spam without ever displaying anything to the user.

Is WordPress suficient for this project or should I use a framework or a different CMS?

I am a web Designer that recently decided to expand into developer waters as well :). What I have in mind is to build an elaborate portfolio site that will also contain a blog. The sites sections will be standard for such a project - something like Home, About, Portfolio, Contact and Blog.
The Home page will contain some static parts but also feeds from the latest additions to the portfolio and the blog.
The Portfolio page will have sections on the different types of portfolio pieces (like logo, print, web etc).
The About will be completely static.
The Contact page will be static and will have a contact form.
The Blog page will basically have your standard WordPress blog structure.
At first I was thinking of doing the whole thing in WordPress (since I already have some experience with it) but what got me thinking about different options was the portfolio part. I want the portfolio page to be quite differently stylized than the blog page and yet I want to have the possibility of doing quick and easy additions to it trough an admin panel.
So please give me suggestions and direction about what would be best for me to do? Is this thing possible with WordPress? Should I instead code the whole project with CodeIgniter (or a similar framework)?
I am quite good with HTML & CSS. Comfortable with jQuery. Trying to get better with PHP :).
I am willing to learn and improve and wouldn't mind trying a CMS or a Framework that Ive not had experience with before.
Thank you.
Wordpress is more than sufficient. You might want to find some plugins that allow you to add special content like videos, scripts and other things to portfolio pages. Also knowing html, css well is important if you want to build or modify a theme a lot to your liking. It is also very helpful to know some php if not be very experienced with it. MySql is helpful as well but not as need to know.
This Wordpress PHP function sheet is very helpful at times.
The Wordpress Codex page is also very good. Not an end all be all, you'll still need to know how to do things on your own, but it defiantly will get the ball rolling if want want any custom functions, or want to modify functions.
If you know wordpress a little bit, I hope you will able to make your desired project. Using wp you can do several types of project.
Read some wp books or tutorial and learn wp functions.
Essential wp functions sheet https://codex.wordpress.org/Function_Reference
I hope it will help you.

Can a WordPress site be made to be more than a blog?

I want to use WordPress for my personal website, but it isn't going to be structured like a blog. Can someone help me with a few concerns I have before I get too deep into it?
I want it to have a main page, and a hierarchy of content pages. Can I make the default page be a home page, and not a big chronological listing of posts?
I see that the DotNetNuke CMS has built-in support for auto generating your menus based on the pages you create. Does WordPress have anything like this?
Can I make the blog post section come up in a sub-directory like mysite.com/blogposts?
Is there anything about WordPress that makes it an obvious bad choice for a general purpose website? Does it have extensibility for thinks like shopping carts or whatever in case I want to add them in the future? I just want to make sure I am not doing something stupid by choosing a blogging software for a general purpose website with future requirements that aren't yet known.
Yes, current versions of Wordpress support designating a content page as the home page.
Yes, Wordpress will generate a set of nested lists that represent your content pages; it would be the job of the theme to style this into an appropriate menu (and most themes do not).
You can set up your permalink structure to do this, yes.
Wordpress is a good choice up to a point for many kinds of web sites, but if you want to integrate with a shopping cart or other complex application, I'd suggest looking at Drupal instead. Wordpress's developer ecosystem is mostly set up around extending its existing capabilities (blogging and content management) not on adding other unrelated functionality. Drupal is much more of a general-purpose framework for any kind of application or site.
I've set up Wordpress for several non-blog sites without issue.
Yes, you can create a static Page in Wordpress and set it as the default page. Read more about Wordpress Pages here: http://codex.wordpress.org/Pages
Yes, you can generate menus of Pages, both flat and hierarchal. Most themes will include a Page sidebar that will show Pages you have created. You can of course code and style your own to your liking. For example, this bit of php will pull out the top level Pages in your hierarchy and generate html for a series of <li> elements:
wp_list_pages('meta_key=page_title&depth=1&sort_column=menu_order');
Yes, you can have the blog section come up as a subdirectory.
Wordpress is a fine choice for a general purpose personal or even small business website. It only takes a little effort to convert your own custom layout into a Wordpress Theme, or you can choose from thousands of ready made Themes. You can do a lot with the base install, and its always being updated. Plugins and Widgets allow you to add all sorts of new functionality to Wordpress with ease. If all else fails, you can always write your additions own with a little effort.
That said, Wordpress is primarily blogging software. It has some decent CMS features, but its not the core focus. If you aren't going to do any actual blogging, Drupal is a solid option.
I'm not a heavy user of WordPress but my feeling for it is that it is primarily a blogging tool. It sounds like you want a full CMS. I'd have a look at Drupal (as PSU_Kardi suggests) or Joomla. Both have built-in support for or add-ons for blogs, e-Commerce, ...
2: Multi-level navigation plugin: http://pixopoint.com/multi-level-navigation/
4: Some e-commerce plugins: http://wordpress.org/extend/plugins/search.php?q=e-commerce
Yes, available by default, configurable via control panel
Yes, it's usually on by default on modern templates (unless you're using something extremely exotic)
Yes, you can do pretty much everything with permalinks
I really don't see a reason why wouldn't you choose wordpress... many plugins available for this platform can do almost everything - even more than standard cms solutions. There are SEO plugins, e-commerce plugins, security plugins, forum plugins, modern anti-spam protection, design enhancements, advanced templates with easy to use control panels...

Resources