After months of hard work, my latest LinkedIn/Lynda.com video course has launched! The course walks through the entire process of getting WordPress installed and running on shared hosting. If you’re new to WordPress or the Internet in general, and want to start your own WordPress-powered website, this course will help you do it as quickly and inexpensively as possible. Continue reading »
After months of hard work, I am excited to announce the launch of my new video course on developing WordPress plugins. It covers the entire process of building, securing, and optimizing your own plugins, including 50+ ready-to-go plugin demos and examples. The course is focused on developing plugins using the WP API and Standards. Covers basics and gets into advanced topics like HTTP API, REST API, and WP Cron. Truly packed with practical examples and techniques to help you create […] Continue reading »
In this tutorial, I’m going to walk you through how you can add a new menu in WordPress Admin Area, where your users will be able to import any demo content — including widgets, their positions and navigation as well — by a single click. The code follows the best WordPress practices, uses WP Filesystem for file management, includes escaping and all text strings are prepared for translation. It also passes the WordPress theme check plugin! Continue reading »
After months of preparation and production, my new video course on developing secure WordPress sites is now available at Lynda.com. This is my second video course on securing WordPress; the first one was originally launched in 2011 and remained in Lynda’s library for over five years. I received a lot of great feedback on the course, and so I jumped on the opportunity to do another one. If there is one thing that I enjoy doing, it’s helping people with […] Continue reading »
This tutorial explains how to block user-enumeration scans in WordPress. As explained in greater depth here, user enumeration happens when some malicious script scans a WordPress site for user data by requesting numerical user IDs. For example, requests for author=1 through some number, say, author=1000, may reveal the usernames for all associated users. With a simple enumeration script, an attacker can scan your site and obtain a list of login names in a matter of seconds. Continue reading »
In this tutorial you will learn how to integrate Google’s new reCatcha model in WordPress Login, Comment, Registration and Lost Password Forms. Continue reading »
Book Launch! My fourth book, WordPress Themes In Depth, focuses entirely on WordPress theme development. It goes in-depth on how to build, customize, and distribute your own WordPress themes. It’s 10+ years of experience with WordPress jam-packed into 450 pages of non-stop theme-building action. Continue reading »
New version of Ajax-Powered Error Logs for WordPress now available for download. The functionality is the same, but the script is rewritten for better design, performance, and security. Continue reading »
It’s been quiet around here, but I have a good excuse. I spent the last six months writing, designing, and publishing my third book, The Tao of WordPress. This is an excellent book for beginners, students, designers, and basically anyone who wants to learn how to get the most from WordPress. The book “soft-launched” last week, and now I want to share the news with readers here at Perishable Press. Continue reading »
In this tutorial, you’ll learn how to install and run WordPress MultiSite on a MAMP webserver. Running multiple sites from a single installation simplifies and streamlines administration, and serving it all from a locally installed version of MAMP gives you everything you need to develop your network of sites for the Web. Continue reading »
Developing WordPress sites on a local MAMP server provides flexibility, privacy, and security throughout the development process. Setting up a WordPress environment on MAMP is definitely worth the effort, especially if you’re building and testing multiple sites using WordPress’ built-in MultiSite functionality. The easiest and recommended way of setting up WordPress MultiSite is to use sub-directories. So when you create a new site named “business”, it will be located at http://localhost/business/. Here’s a mini-tutorial on how to use sub-domains for […] Continue reading »
In my previous post, I share my technique for Ajax-Powered Error Logs. That tutorial shows you how to set up dynamic error monitoring on any typical website, but the script requires some tweaking to get it working with WordPress. In this quick post, I explain how to set up Ajax Error Logs specifically for WordPress sites. Continue reading »
In this “WordPress 101” video tutorial, we look at WP’s Admin Dashboard. We’ll see how it works, what it can do, and how to customize and clean it up. Customizing the WordPress Dashboard is a great way to help boost productivity and streamline your experience working in the Admin Area. This video screencast shows you how to be a Dashboard Ninja in around six minutes. Continue reading »
In this “WordPress 101” video tutorial, we’re going to start with the basics and just log into the WordPress Admin Area. It’s exciting stuff to be sure, but there are many reasons why this kind of information makes for a better screencast than a written post. This video screencast is about three minutes and shows how to login to the Admin Area with WordPress version 3.1.2. The general technique should work with any version of WordPress. The video shows several […] Continue reading »
Welcome to the first video tutorial in my “WordPress 101” series. It’s simply called “Welcome” and is just a quick introduction to the series, why I’m doing it, about me, and so on. Note that there’s nothing happening on-screen in this screencast – just a simple welcome message ;) Continue reading »
After implementing Chris Coyier’s More Sidebar technique here at Perishable Press, I needed a good source of “filler” content for the “more” blocks. After experimenting with multiple loops and template tags, the idea of sliding in RSS feeds seemed like a better solution. Replacing some empty space with great content is a win-win for everyone. For example, I display a few of my recent tweets in the sidebar to help fill a lil’ space. It’s a great way to share […] Continue reading »