JS Capitalize a String

Just a simple String prototype to capitalize the first letter of the string.

 

Convert Form to JS Object

Every have a form you get the data from so you can manipulate it in JS? Good news! Dave over at Stack Overflow has the function for you!

Usage is as simple as:

var formObject= $(‘form’).serializeObject();
Requires jQuery

Search Post Title and Meta

Unfortunately when you are doing a custom query in WordPress by default you can’t search by the “s” parameter and a meta_query. A common technique was to just do two queries and merge them. That works, but it is not efficient.

User Satbir Kira over at StackOverflow posted this great solution. Simply add this function to your functions.php file and replace the “s” parameter in your custom query with a “_meta_or_title” parameter.

Here is what an example query might look like.

 

Limit User Role to Certain Posts

There are a variety of plugins out there for managing user role access. User Role Editor (URE) and Advanced Access Manager (AAM) are both good plugins I can recommend.URE is great for…editing roles. The problem with URE is that it doesn’t allow more narrowly scope restrictions…like to single posts. AAM is great at limiting individual posts and hiding admin menus. AAM however requires a LOT of setup if you have a lot of pages / a lot of roles and starts to become unpractical for highly restrictive page editing.

All that said, I ended up turning to good ol’ taxonomies.

First, setup your taxonomy for your posts. In this case I am targeting a “Departments” custom post type.

See jp_register_cpt and jb_register_taxonomy for info on these functions.

Second, setup your roles with URE. I’ll leave this to you, but I usually start with copying either the “Contributor” or the “Subscriber” default roles and going from there. Mine looks like this:

Third, Add a new admin taxonomy in the net taxonomy you just created. Make sure to give it the same slug as the user role ID, this is just for ease of use later and for reference. Example:

Forth, add this function to your PHP file.

All done! Now this user role should not be able to view or edit any posts that do not have this category.

Using TinyMCE outside of WordPress

Recently we had to setup a TinyMCE WYSIWYG outside of WordPress so we couldn’t use the wp_editor function.

TinyMCE has changed a lot since I last used it as a stand alone feature so I wanted to make a post about how to set this up so I don’t have to look around for this info again.

Step number one is setting up the script, like so

Unfortunately you do need to setup an account and get an API key in order to correctly use TinyMCE. You also need to setup the domains you want this script to work on, this is done in your TinyMCE account.

Once we have that in place we can setup our WYSIWYG!

And there we go! That is all you need to get a basic TinyMCE instance going.

NOTE: I had to make sure I had the editor.on(‘change’) function working or else my textarea wasn’t updating quite right. You might not need this for your use case.

TinyMCE also offers additional plugins which are really neat, unfortunately they require paying a monthly subscription 🙁

If you are using TinyMCE in multiple places and NEED those plugins, it would definitely be worth it, but the default functionality is probably good enough for most users.

Get Vimeo Thumbnail

Vimeo updated their API to version 3. In the process they have not only deprecated their previous, simple, API. They have also created a giant unwieldy monster that is unusable by 90% of developers in 90% of cases.

Sure, if you want to build an application around the use of vimeo for hosting your videos, this new API may be worthwhile.

But if you are like 99% of people who just want to display a thumbnail of a video hosted on Vimeo, you are **** out of luck. You need to setup library, and run through a bunch of oAuth bullshit. Dashron over on stack overflow seems to be the lead developer for this API and I am sure he had his reasons. I just can’t fathom what they could be.

ANYWAY, angry rant aside I found a workaround for this on Brian Coords website. The following code is his, but I needed to save it here for my future use since there is no way I will ever setup an entire library in a project just to get a thumbnail.

Now to use this function you simple have to pass it the embed URL of your video, like this.

This should return the URL of your thumbnail which you can stick directly into your image src.

Thanks Brian!