Wordpress limits - system design consideration - php

I am designing a system for a customer. We are thinking about using Wordpress as a main platform (instead of writing our custom software), and customize it using addons or hiring developers to write some custom modules.
We need to have an ability to have some static pages, few php pages, and lot of user generated content.
What limits do Wordpress have? I have searched website, but did not found any info about for example max number of users. I am interested in experience-based opinions.
So, how Wordpress performs on multi-user websites? Or - do you think it is better to leave Wordpress, and swithch to some other open-source CMS?
Edit
The core functionality about the system will be to allow user to put text content and photos on categorized pages. Some users need an ability to have classic blog on the site, while others will only occasionally publish some content. Some data will be polled by RSS from users’ blogs on the other platform (with a respect to copyrights and legal stuff).
So as far as now I have identified a lot of blog-like functionality.

I have had some pretty good success using Drupal. If you aren't trying to build a blog there are much better things out there for dynamic CMS. Wordpress is a great piece of blogging software. Try to make it do something else? It becomes a big pain to do. Having developed "applications" in both. If a blog is not the primary component (which a news site would also follow suit) then use a true CMS and not a blogging platform.

WordPress places no maximum on users, posts, etc. beyond that of the underlying technologies (your database, mainly). WordPress.com runs on the WordPress MultiUser platform and it has six million blogs, a billion monthly pageviews, and 200k new posts a day.
Your limitations will be more structural - WordPress is designed first and foremost as a blogging platform. If its interface and methodology fit your project well, go for it, but if you're going to be hacking the shit out of it, a more generalist system like Drupal may suit you better.

If it's a blogging platform you are designing, then WordPress should fit you needs. You can also look into Movable Type (Perl).
If you are looking for a Content Management System (CMS), then you should look at Drupal and/or Joomla. Movable Type is actually starting to integrate with Drupal.
Wordpress has some performance issue, about a dozen pages/sec in default setup. But using plug-ins like SuperCache, it can get it to scale pretty well fairly easily. You can do anything you want with a custom "theme". But WordPress isn't going to manage the content in the "theme" for you, just display it.

If your doing a lot of User stuff then it's probably worth starting with BuddyPress instead of WordPress, you can still use a lot of WordPress plugins but it's better to start with a framework which is built to deal with a lot more users.

If you are interested in WordPress for a multi-user environment, perhaps you should look at WordPress MU, which is the software that runs WordPress.com. I'm not sure how the plugins work with WordPress MU as I've never looked at it in-depth.
If you need more of a social aspect, then you can refer to Tom's answer of using BuddyPress, which adds functionality on top of WordPress MU.

Depending on the type of User Generated content WP might work. You could use the Contributor Role to allow users to create content that site admins could then moderate before making it live.
Drupal seems to have more tools for Community type sites, but I have very little experience with it.

Related

Finding a CMS with custom editable content and restrictive admin panel

I am developing a PHP website. The client need to update some part of the site :
for example modify the title, modify the introduction paragraph etc.
But he can also post news and add products (which consist of text + picture) via his admin interface.
I am thinking of developing his administration panel from scratch, but i would prefer to find a simple CMS that would do the job and make the dev process faster.
Most of the CMS i found online are mostly too complicated (they allow the user to create pages, templates, etc). In my case the administration panel must be really simple and restrictive, just allow the user to modify or add the content i predefined.
Do you have suggestions on CMS that would fit my criterias? Or a php library that would help me (in terms of writing the less PHP / HTML,Js code as possible)
I hope my english is not too bad and this post is understandable.
Thank you very much for your help
The learning curve can be a bit steep but I'd suggest Drupal. It's a very powerful CMS and you can set use roles with whatever permissions you want. Make yourself admin and then set up a client user role with limited permissions and you're away.
You can also download themes for Drupal or build your own. In theory you could install Drupal and a theme, set the permissions and not actually write any code.
http://drupal.org/
Drupal. In my opinion Drupal is not ideal choice. Drupal is complecated.
Joomla. A lot of info inside admin part, but you can restrict a lot of things. It's simple to use and setup. Try it.

Integrating my php application to a wordpress site pros/cons

I'm developing a car buying and selling website in php, currently what i'm planning is all the pages and the blog will be done using wordpress and other functionalities i'll develop as independent application and will connect it with wordpress using the function.php file. Only user management and posting for page and blog will be done by wordpress.
Including the database table will be custom. Is this a good idea? Will i get into any bottleneck?
Admin will only be uposting to news. Users will post their cars for sale after login. They can search and rate also...
To answer your question, let's look at the most common options:
Build from Scratch
Build using Framework such as Zend, Cake, etc...
Build using Content Manager such as Joomla, Drupal, etc..
Build using WordPress
Build from Scratch
This is the most time consuming. The benefits include complete control over the database and code - perhaps giving improvements in speed and resource management. The cons are the time to develop with additional time needed for testing and debugging (since all of the code is untested).
Build using Framework
A framework gives you the pieces that you need to build the site. It includes many of the benefits from the build from scratch option without the concern of 100% untested code. The only downside is having to take time to learn the framework and its gotchas (they all have little things that will bite during the learning curve).
Build using Content Manager
WordPress is not a true CMS like Drupal or Joomla. A CMS gives the ability for users to edit pages (with permission) while allowing customization via plug-in or code change. Like WP a CMS may have plug-in functionality to do everything you need. However, if there is a problem then you may find yourself debugging someones plug-in code.
Build using WordPress
WP is a blogging platform. It is now being used in a more CMS like fashion with the aide of plug-ins and developer know-how. If you have a news site, blog, media site, etc... then WP is excellent. If you are creating a site for buying and selling then there are plug-ins to do that. However, you still have the same problems of the CMS in that if there is a bug you may have to figure out plug-in code to fix.
Conclusion:
The idea of using anything other than write from scratch is to speed up development time and make the end result more solid in terms of pre-tested code. WP is a great platform and could serve you well but if the only thing being posted is news then a simple PHP blog class may do the trick.
If you are going to spend allot of time customizing WP (especially the database) then I would recommend using a Framework like Cake or Zend and writing most of it yourself. If you are writing a site to display media then WP is a no brainer.
What do you mean by "connect it with wordpress using the function.php file"?
I've delevoped http://storelocator.no on top of WP.
I've created WP templates which have custom code and retrieves data from it's own tables. This way I can create pages in WP and select which template to use. Good for page navigation.
As for pages that is completely separeted from WP, but you still want to use WP functions, just include the following at the top of the PHP file:
require_once($_SERVER['DOCUMENT_ROOT'].'/wp-blog-header.php');
You can use WP function to validate data instead of creating your own validation code (you can save time here). See available functions here: http://codex.wordpress.org/Function_Reference/get_template_directory_uri

Advice for integrating a blog and wiki in a custom site

I've been tasked with building a site for a client. They want it to include a WordPress blog and a wiki with both integrated apps sharing the look and feel of the main site. Currently, they use MediaWiki and would like to stick with it, but they are flexible with respect to the software we choose.
I've nailed down two fairly discrete approaches to this problem:
Build custom themes for both WordPress and MediaWiki
Strip WordPress and MediaWiki of most of their respective visuals and include them both in the site using iframes.
I'm fairly comfortable with the technical requirements of option 1 and am only entertaining option 2 because the allotted development time for this project is extremely limited. My experience with framing external sites is fairly limited and thus I am not entirely sure what the technical ramifications are for option 2. For instance, will it require a ton of extra work to link to specific pages within the blog/wiki if I'm using an iframe? What about forms included in the framed pages?
I guess I'm just wondering what you fine people would do here. Any advice/insight you may provide is appreciated!
Personally I'd plump for option 1, but I can see the benefits of option 2. A possible option 3 is to use the Wordpress Comments extension to MediaWiki, or look at a similar integration of the two (see this StackOverflow thread), so you only have to change the look and feel of one product.
It is almost always a mistake to try to strip out functionality and do things the "wrong way" in an effort to save time. It's really not that hard to make a WordPress or MediaWiki theme. Just look at some of the themes that are there and take out the tags that you don't like.
Maintaining a stripped-down version of WP or MW will become a maintenance nightmare for you. What do you do when security problems are discovered?
If there isn't enough time or money to do this job right, don't do it the wrong way --- avoid the job. Because they won't have enough time and money for maintenance or fixing, either.

Developing an Application using Wordpress as a base?

Lately I've been thinking a lot about building a website/blog/community oriented site. However I can't decide if it's a good idea to build it using Wordpress as a base.
I've been reading around the Internet, and I've seen that many users have trouble with Wordpress using lot of CPU and other resource related problems.
So, what do you think? Is it wise to actually build an application based on Wordpress? Or it would probably lead to undesired results?
Any opinions would help.
WordPress is quite flexible once you get the hang of its WordPress Loop, Page Templates and how to create a customised homepage. Using some plugins, such as the Page Redirect To and Custom Taxonomy, you can have a pseudo-CMS. There are also widgets and plugins that let WordPress mimics CMS-like behaviour, such as listing all sub-pages within a pages, customize how categories are shown and etc.
If you can handle the WordPress loop and use Page Templates, WordPress is okay to build on-top of. However, its database schema is quite confusing. Depending on your goals, you may want to use CodeIgniter or something else.
If you to get really farther than a blogging software, maybe you can have a look at more generic CMSes.
I kinda like Drupal (which has a lot of plugins that can help you do almost whatever you want on your site) ; as a reference point, it is used by many quite big sites, so, if correctly configured, can hold a bit of load.
Just a remark : you might need at least a couple of day to learn how to use it well, because it is quite rich, has lots of features, and you will probably want to have a look at many modules, to get the ones you need/like. (But that would be true for any CMS, I guess)
I recommend using WordPress MU with the BuddyPress plugin for building a community site. BuddyPress is actively maintained, and the set of features are comparable to the basics of Facebook (wall, groups, pages, etc.). Not to mention all of the plugins. Also, with a little extra effort, you can have bbPress (WP forum software) in your community app too. I am working on a big project using each of these products right now, and it has been much less of a nightmare than the times I've done something similar in the past, using other community apps or forum software.
Well that's basically what Wordpress is for :P I've never heard of any issues with Wordpress using lot of CPU and other resource related problems. It seems perfect for what you want to do. Are you familiar with PHP?
Any moderately-sized site should have a cache in front of WordPress. WP Super Cache is one of the more popular ones. Basically, WordPress should be generating pages only when needed. In all other cases, the page should be served from cache.
Wordpress is open, so you can use it if you want.
But I think building a plugin and hook to Wordpress's main feature is a better ideal.
And btw, What is the meaning of "application" you are developing.

Advice on building a distributed CMS?

I'm in the process of designing a PHP-based content management system for personal use and eventually to be distributed. I know there are a lot of CMS's already out there, but I really haven't found one that meets my all of my needs and I also would like to have the learning experience. Security is a large focus, as are extensibility and ease of use. For those of you out there who have built your own CMS, what advice can you offer? What features are essential for a core? What are must have add-ons? What did you wish you knew before starting? What's the biggest potential roadblock/problem? Any and all advice is welcome.
Edit: Any advice on marketing do's and don't's would also be appreciated.
In building a few iterations of CMSs, some of the key things turned out to be:
Having a good rich text editor - end-users really don't want to do HTML. Consensus seems to be that FCKEditor is the best - there have been a couple of questions on this here recently
Allowing people to add new pages and easily create a menu/tab structure or cross-link between pages
Determining how to fit content into a template and/or allowing users to develop the templates themselves
Figuring out how (and whether) to let people paste content from Microsoft Word - converting magic quotes, emdashes and the weirdish Wordish HTML
Including a spellchecking feature (though Firefox has something built-in and iespell may do the job for IE)
Some less critical but useful capabilities are:
- Ability to dynamically create readable and SEO-friendly URLs (the StackOverflow way is not bad)
- Ability to show earlier versions of content after it's modified
- Ability to have a sandbox for content to let it be proofread or checked before release
- Handling of multiple languages and non-English/non-ASCII characters
Well, building your own CMS actually implies that it is not an enterprise-level product. What this means is that you will not be able to actually implement all features that make CMS users happy. Not even most features. I want to clarify that by CMS I actually mean a platform for creating web applications or web sites, not a blogging platform or a scaled-down version. From personal experience I can tell you the things I want most in a CMS.
1. Extensible - provide a clean and robust API so that a programmer can do most things through code, instead of using the UI
2. Easy page creation and editing - use templates, have several URLs for a single page, provide options for URL rewriting
3. Make it component-based. Allow users to add custom functionality. Make it easy for someone to add his code to do something
4. Make it SEO-friendly. This includes metadata, again URL rewriting, good sitemap, etc.
Now there are these enterprise features that I also like, but i doubt you'll have the desire to dive into their implementation from the beginning. They include workflow (an approval process for content-creation, customizable), Built-in modules for common functionality (blogs, e-commerce, news), ability to write own modules, permissions for different users, built-in syndication, etc.
After all I speak from a developer's point of view and my opinion might not be mainstream, so you have to decide on your own in the end. Just as ahockley said - you have to know why you need to build your own CMS.
If you ask 100 different CMS users about the most important thing about their CMS, you'll probably get 80+ different answers.
The biggest roadblock is probably going to be people asking you why you built a new CMS from scratch.
If you don't know the answer to that question, I'm not sure why you're going down this path.
One thing to keep in mind is that for an internet CMS, folks are going to want integration points with many of the "usual" services. Leverage existing services such as photo sharing sites, Twitter, OpenID and the like before building your own proprietary solutions.
well i wrote a CMS for personal use and released it to the biggest chorus of chirping crickets ever! no biggie, though. i did learn a lot and i encourage you to move forward. my clients use it and like it and it's holding up fine.
but if i were to start over (and i might) here's the advice i would give myself:
scrub everything everything everything entered from the user
user administration is a product differentiator. bonus points for being able to handle someone copy/pasting from WORD.
extensibility. 90% of the comments i get are from developers who want to use the cms to host "some" of the website pages but not others. or they want to embed their custom scripts into the page among the content. my next cms will be as modular as i possibly can handle.
many folks are absolutely fanatic about clean urls.
From marketing point of view:
1) Make it templateable.
2) Make CMS SEF and have SEOed URLs.
If you need to build custom functionality where your CMS is really a window to the rest of your business layers, then use something like PyroCMS or FuelCMS which are based off of CodeIgniter framework.
Developers usually get lost in the weeds with Drupal and Joomla! / Wordpress quickly become spaghetti code-laced doozies over time. Its how much you have already drank from the Kool-aid punch bowl.
I know this isn't a direct answer to what you're looking for but if you haven't looked at it yet I'd recommend checking out CMS made simple. It has much less bloat than other CMS's and is fast and efficient. It's open source so it may be a good reference point for any questions you will run into.
Just use Drupal.
Out of the box it is very light and fast. You add modules for virtually everything, so that can be daunting but it is fantastic.
Its secure (NASA and The White House use it), its modular, its open-source, it is well supported, has a reputation for clean APIs, and has hundreds of modules from SEO to Wysiwyg....

Categories