If you’ve ever had to dig down into specific columns of a spreadsheet with > Z columns you probably know how annoying it is to try to convert something like ‘AQ’ to the appropriate index (e.g. row). Here’s a quick one-liner to convert a spreadsheet letter-based column to the equivalent zero-based index.
col2num(‘A’) -> 0
col2num(‘Z’) -> 25
col2num(‘BC’) -> 54
I created a simple plugin available at https://github.com/dbspringer/wp-frontend-media to demonstrate what you’ll need to do to get it working. There are some important caveats!
- You need to decide how you want to handle how it’ll work for users that aren’t logged in.
- You’ll also have to decide what to do about users without ‘upload_files’ permissions.
That said, let’s take a look!
- I’m calling
wp_enqueue_media() to load the media interface libraries.
- I’m filtering
filter_media() to retrieve only the images belonging to the user. If you don’t care about restricting the images just remove the filter.
- I’m checking
current_user_can( 'upload_files' ) in the shortcode to restrict access to the interface, you’ll need a similar check somewhere in your own code.
This is the meat of what you’ll need to use the media interface on the front-end. It’s actually pretty simple to summon the interface and then do something with the file that was retrieved. It’s all handled in these three easy steps:
- Create the file_frame object using
- Attach a
'select' listener to the
file_frame object to handle what you want to do when a file is selected. The
attachment variable will have an object containing all the metadata for the selected item. Just do a
console.log() to figure out what you’re getting.
- Tell the
file_frame to pop open the interface based on a click (or whatever) on an element somewhere.
There you have it! I’ll leave it up to you to do something non-trivial with it, but this should get you started. happy coding!
To get this new blog started I’m poaching an old post I made about scrambling words while retaining legibility. In the time since I originally posted this I found the source.
I was recently reading the Lucky Basartd page on the Stone Brewery website and I remembered an (unverified) study claiming “scrambled words are legible as long as first and last letters are in place.” For grins, I whipped up a Python script to scramble a word/sentence.