In my new plugin f(x) Maps, I create a location search with ability to get current address/location using HTML 5 Geolocation and Google Maps Geocoding API. And in this post I want to share how I did it.
In recent projects I use AJAX more, and I think it’s time to share my knowledge. This tutorial is just a simple guide to understand the basic about using AJAX in WordPress.
To follow this tutorial you will need to understand the basic of:
- Simple PHP
- How form works
- Register and Enqueue Scripts in WordPress
- Register WordPress shortcode (example plugin)
WordPress plugin have a activation method, It’s very useful, and we can use it for various things.
One of the popular method in plugin, is “Activation Redirect”, this is a method used by a lot ( I mean **A LOT**) of popular plugins to redirect user to plugin settings page, setup page, or even plugin about page (of course, within the admin panel) when user activate plugin.
This is (probably) useful for user on-boarding purpose, annoy user, keep the user inform about the feature of the plugin or help them setup the pages required by the plugin or install additional plugins/add-on.
Note: I actually really hate it when plugin/theme author did this. But in some case it could be useful.
Usually plugin use register_activation_hook() function to do this. But theme don’t have similar method/function. However, there’s a workaround for that.
Sometime we need to save API key, or password, for external services in our WordPress plugin. It’s problematic, since we have to use that key to make API connection, but we don’t want to save it in plain text (because it’s just plain dumb). So we need a way to encrypt this key and save it to database, and decrypt it to use.
You can download / check github repo for example plugin:
And here’s the video of the plugin in action:
In earlier tutorial, I cover all about the page builder design, and how to make all the control works (create, delete, and reorder rows).
In this post I want to explain how I structure the data and save it as custom fields. Specially in how to update the row order number so we can properly save each rows data.
Download example plugin to follow tutorial easier:
In this post I will explain how to create page builder from this:
to this fancy drag-and-drop UI:
To follow this tutorial easier, you can download the source code for this tutorial:
In this post, I will explain:
So, the basic idea is to register “Page Builder” page template, and use it to toggle/switch between Visual Editor and Page Builder when user change the page template.
To follow this tutorial easier, you can download the source code:
This is the introduction of Custom Page Builder Tutorials Series.
Page Builder is very popular in WordPress. This post is not about how to use page builder. In this tutorial, we are going to build page builder plugin from scratch.
It’s not going to be a complex page builder, a simple one so we can understand how the code works, and possibly use it as base/example for more complex system.
This is the page builder in action:
Today, this site finally reaches a new milestone, 500+ page views/day. Even though it’s very low, I decided to add ads in this blog.
This blog uses full content in archive, and I’m breaking long content using manual “read more tag” (not using excerpt).
Note: You can add more tag using the editor toolbar or using
<!--more--> in text editor.
I want to add the Ads in all blog post after read more tag, so technically when visitor click the read more, they will see ads on the top of the page.
It’s tricky because when we use
the_content filter, WordPress already transform
<!--more--> tag into HTML tag, something like
<span id="more-1325"></span>. Here’s the code:
When I write f(x) Photo Tag plugin, I think it’s best to put the menu under “Media” because it’s simpler, and also make sense.
Sometimes we want to add custom post type admin menu as sub-menu item on other post type or under settings page, because it make sense (not all post type need to be parent menu), and I like this approach because it make WordPress Admin cleaner.
And Here’s how I do that: