WordPress Planet

May 18, 2012

Matt: WP BBQ in Memphis

For the third year now I’m over in Memphis for the World Championship of BBQ, joined by Otto, Nacin, Scott, and Rose. Last year due to flooding the festival was moved to a fairgrounds inland, but there’s nothing quite like being right on the Mississippi with the sweet aroma of pork all around you. (An aroma that, incidentally, follows you home in your clothes. :) ) The team we sponsor, the Moody Ques, put together an impressive booth this year, which you can see coming up in the below timelapse:

The video doesn’t do justice to the delicious food being cooked inside, though, which you have to experience in person.

by Matt at May 18, 2012 04:30 PM under Asides

Matt: Building Have Baby / Need Stuff

Mark Jaquith writes How I built “Have Baby. Need Stuff!” — a nice overview of the latest and greatest in modern WP development.

by Matt at May 18, 2012 04:08 PM under Asides

May 17, 2012

Alex King: Social 2.5 beta 2

We’re just about ready to put a bow on version 2.5 of Social. If you’d like to test the second beta release, grab it from GitHub.

Social is a plugin that allows you to maintain a centralized conversation on your site, while also participating in conversations on Facebook and Twitter.

by Alex at May 17, 2012 09:44 PM under WordPress

Weblog Tools Collection: WordPress Plugin Releases for 5/17

New plugins

Monster Widget provides a quick and easy method of adding all core widgets to a sidebar for testing purposes.

Updated plugins

Bad Behavior complements other link spam solutions by acting as a gatekeeper, preventing spammers from ever delivering their junk, and in many cases, from ever reading your site in the first place.

Yepty is yet another pay per click advertising plugin.

by James at May 17, 2012 02:00 PM under WordPress

May 16, 2012

Weblog Tools Collection: WordPress Community Summit

The WordPress core team is pulling out all the stops this year and shooting for a big summit to be attended by prominent contributors and community members.

Instead of the traditional meet up, which is typically attended by only the core developers and their chosen guests, the core team is now looking for your nominations to decide who will attend the first ever WordPress Community Summit. The Summit will allow the core developers to get to work with the best and brightest of the WordPress community (support forum volunteers, the Theme Review Team, volunteer documentation editors, community organizers, theme shops, etc.), and who knows what amazing things they’ll come up with when they put their heads together!

If you have any favorite community members or companies, even that lone support forum volunteer who rescued your blog, make sure that you leave a nomination for them right away. Sure, you can nominate yourself too, but do be a good sport and nominate at least one other person or company.

by James at May 16, 2012 02:00 PM under community summit

WPTavern: Searching Only The Codex

When performing a search on the Codex, you’re presented with a slew of search results. However, not all of those results are within the Codex. The search portion of the Codex is powered by a Google custom search box which not only presents results from within the Codex, but from across WordPress.org as well, mainly the support forum.

Searching The Codex

While performing a search for Conditional Statements, the first result was the one I was looking for. However, if you want the results to strictly be within the Codex, I came across this link shared by Otto on the Documentation mailing list. While giving this method of searching the Codex a try, I found it difficult to find the Conditional Statements page I was looking for that was easily displayed by the Google Custom Search box. Even by checking each box, I failed at finding the page using both Conditional Statements and Conditional as my search terms.

My advice, stick to using the Search box that exists on the Codex page.

No related posts.

by Jeffro at May 16, 2012 01:00 PM under search

Donncha: Fatal error: Allowed memory size of 67108864 bytes exhausted

WordPress uses memory. Plugins and themes use memory. New versions of software may use more memory than before. When that happens and PHP on your server doesn’t have enough memory then PHP will stop with a fatal error like this:

Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 1203208 bytes) in /home/*****/public_html/wp-admin/includes/class-pclzip.php on line 4215

This happens quite a bit but it’s not a bug in WordPress or your new plugin or theme, you simply need to let PHP use more memory on your server. Thankfully WordPress makes it easy to do this. You must define a constant, WP_MEMORY_LIMIT in your server’s wp-config.php like this:

define(‘WP_MEMORY_LIMIT’, ’128M’);

The error message will give you an idea of how much memory is required. The error message says it tried to allocate 1203208 bytes or just over 1MB of memory. The limit here is 67108864 bytes, or 65536KB which is 64MB so here I’d need a WP_MEMORY_LIMIT of more than 66M. The error message will go away once PHP has enough memory but be sure to test it.

If you allocate too much memory your server could start eating into disk swap space. Also be aware that each Apache child process is allowed to use that much memory so if you had ten processes it could use ten times the memory limit in a worst case scenario. If that happens you’ll need more RAM or you’ll have to figure out what’s using so much memory.

There’s also a WP_MAX_MEMORY_LIMIT constant. By default it’s 256M and it’s currently only used when uploading images.

On the off chance that you don’t have WordPress installed and you came here from a search engine, then you’ll want to use ini_set() somewhere early in the PHP process to increase the memory limit:

ini_set(‘memory_limit’, ’128M’);

Finally, I love that the wp-config.php codex page is the first result of a search for WP_MEMORY_LIMIT.

Related Posts

by Donncha O Caoimh at May 16, 2012 12:50 PM under WP_MEMORY_LIMIT

May 15, 2012

Dev Blog: Calling All Contributors: Community Summit 2012

Each year, the WordPress core development team meets in person for a week to work together and discuss the vision for WordPress in the coming year. As annual events go, it’s easily my favorite. Don’t get me wrong, I love attending WordCamps and local WordPress meetups (which are awesome and you should try to attend if you are able), but at the core team meetup, the focus on working together and getting things done is unique, as is the experience of every person in the room being so highly qualified. This year, instead of just planning a core team meetup, I’m aiming a little higher and shooting for a full-on contributor/community summit.

Core code isn’t the only way to contribute to the WordPress project. We have an active theme review team, support forum volunteers, people writing documentation, plugin managers, community event organizers, translators, and more. The teams have been siloed for too long, so we’ve recently begun the process of bringing them together by having teams elect representatives to facilitate more communication between the contributor groups. These reps will form the nucleus of the contributor summit now being planned for a long weekend at the end of October in Tybee Island, GA. This is completely different from a WordCamp. It will be a combination of co-working, unconference, and discussions among the project leaders, and participation will be by invitation.

In addition to bringing together the active contributor team reps to work together, I think it’s important to include community members who don’t fall into that category (at least not yet!). Successful WordPress-based business, authors of popular plugins and themes, and people using WordPress in unexpected but intriguing ways should have a place at the table, too. That said, part of the magic of the core team meetup is the small size; it allows every voice not only to be heard, but to engage. Since this is my first attempt at bringing together so many groups and points of view, I want to try and keep it small enough to retain that personal atmosphere while at the same time ensuring that the best possible mix of people and businesses in the WordPress ecosystem is represented. This is where you come in!

Taking a cue from events with limited availability like AdaCamp (attendance) and the jQuery conference (speaker roster), I want you to nominate people and/or WordPress-based businesses to participate in the summit. Yes, you can nominate yourself.* You can nominate up to 10 additional people — be prepared to provide URLs and the reason you think they should participate. You can also nominate up to 10 WordPress-based businesses without naming individual people, so if there’s a theme or hosting company (for example) that you think should be there, you don’t need to go looking for employee names. This nomination process will hopefully ensure that we don’t overlook someone who is making a difference in our community when it comes time to issue invitations.

Nominations will be open for a week, after which the survey will be closed and the process of analyzing the results** will begin. The nominations process will lead to invitations in June, confirmations in July, planning in August and September, and the summit itself in October. Hopefully we can stream and/or record some of the activity to share online at WordPress.tv. Additional invitations may be extended up until the event if there are people/businesses that become more active in the community. If you’re thinking to yourself that maybe now’s the perfect time to start contributing time to the WordPress project, good thinking! In the meantime, if you want to weigh in, fill in the community summit nomination form. Thanks, and wish us luck!

* Nominating yourself: Do nominate yourself if you fall into one of the categories described in the post above, or if you believe that you have a unique point of view. Please do not nominate yourself if you just think it would be cool to hang out with this group. This is a working event, and everyone is expected to bring something special to the table.

** I (and/or a helpful community volunteer) will sift through the nominations and compile a shortlist of the most-nominated people/businesses and the most intriguing underdogs. This list will be reviewed by the summit planning committee (made up of team reps) to create the invitation list.

by Jane Wells at May 15, 2012 10:36 PM under Events

Alex King: WP App Store

Congratulations to Brad on today’s launch of WP App Store. I’m very pleased to see this come to life. It’s an idea we toyed around with several years ago, but decided not to pull the trigger on – I hope it’s a huge success.

Crowd Favorite Themes

We’ve put our FavePersonal and FaveBusiness themes along with our RAMP plugin into the app store. If you’d like to check it out, download the plugin and start browsing. There is a great group of companies represented already and I’m sure we’ll see more additions as the project grows.

by Alex at May 15, 2012 09:18 PM under WordPress

Mark Jaquith: How I built “Have Baby. Need Stuff!”

Have Baby. Need Stuff! is a baby gear site that my wife and I just launched. I thought I’d share how I built it.

WordPress Core

WordPress is a Git submodule, with the content directory moved to the /content/ directory. This makes my Git repo smaller, as WordPress isn’t actually in it.

Underscores

For a theme base, I started with the Underscores starter theme by the theme team at Automattic. Underscores is not a theme itself… it’s a starting point for building your own theme.

Bootstrap

Next, I integrated Bootstrap, by Twitter, to handle the CSS base and the grid system. Bootstrap is a really powerful framework, and version 2.0 has great responsive design support, which allowed me to create a single design that scales up to big screens or down to tablet or phone screen sizes. Try resizing it in your browser to see the responsiveness in action!

The CSS for the site is authored using LESS, which plays well with Bootstrap. I’m compiling/minifying/concatenating the CSS and JS using CodeKit, an amazing Mac OS X app that makes development a breeze.

Typekit

For web fonts, it’s hard to beat Typekit.

Subtle Patterns

I needed some patterns to use on the site, but I was frustrated with the licensing terms on many pattern sites I was finding. And then I found Subtle Patterns. Gorgeous, subtle patterns, liberally licensed. And hey, their site is WordPress powered too!

Posts 2 Posts

The site has the concepts of Departments, Needs, and Products. Each Department has multiple Needs. Each Need has multiple Products. I used Scribu’s phenomenal Posts 2 Posts plugin to handle these relationships.

Here’s the basic Posts 2 Posts connection code:

<?php

function hbns_register_p2p_relationships() {
	if ( !function_exists( 'p2p_register_connection_type' ) )
		return;

	// Connect Departments to Needs
	p2p_register_connection_type( array(
		'name' => 'departments_to_needs',
		'from' => 'department',
		'to' => 'need',
		'sortable' => 'to',
		'admin_box' => 'to',
		'admin_column' => 'any',
		'cardinality' => 'one-to-many',
	) );

	// Connect Needs to Products
	p2p_register_connection_type( array(
		'name' => 'needs_to_products',
		'from' => 'need',
		'to' => 'product',
		'sortable' => 'from',
		'admin_column' => 'any',
		'admin_box' => array(
			'show' => 'any',
			'context' => 'advanced',
		),
		'cardinality' => 'many-to-many',
		'fields' => array(
			'description' => 'Description',
		),
	) );
}

add_action( 'wp_loaded', 'hbns_register_p2p_relationships' );

I created a Custom Post Type for each of Departments, Needs, and Products, and connected them all using Posts 2 Posts. The connection between a Need and a Product also contains description metadata, as seen here:

Since Posts 2 Posts was a required plugin for the site to function, I didn’t want there to be any possibility of accidental deactivation. So I wrote a quick mu-plugins drop-in to “lock” certain plugins on.

<?php
class HBNS_Always_Active_Plugins {
	static $instance;
	private $always_active_plugins;

	function __construct() {
		$this->always_active_plugins = array(
			'batcache/batcache.php',
			'posts-to-posts/posts-to-posts.php',
			'login-logo/login-logo.php',
			'manual-control/manual-control.php',
		);
		foreach ( $this->always_active_plugins as $p ) {
			add_filter( 'plugin_action_links_' . plugin_basename( $p ), array( $this, 'remove_deactivation_link' ) );
		}
		add_filter( 'option_active_plugins', array( $this, 'active_plugins' ) );
	}

	function remove_deactivation_link( $actions ) {
		unset( $actions['deactivate'] );
		return $actions;
	}

	function active_plugins( $plugins ) {
		foreach ( $this->always_active_plugins as $p ) {
			if ( !array_search( $p, $plugins ) )
				$plugins[] = $p;
		}
		return $plugins;
	}
}

new HBNS_Always_Active_Plugins;

Custom Post Types

I’m using the Products post type in a slightly odd way. You don’t ever go to a product URL. You instead go the URL for the Need that the Product fulfills, and that page lists all of the connected Products. As such, I wanted to make it so that URLs for products pointed to their Need, and I wanted to add an admin bar Edit link for the primary product on its Need page.


<?php
/*
Plugin Name: Post Links
Version: 0.1
Author: Mark Jaquith
Author URI: http://coveredwebservices.com/
*/

// Convenience methods
if(!class_exists('CWS_Plugin_v2')){class CWS_Plugin_v2{function hook($h){$p=10;$m=$this->sanitize_method($h);$b=func_get_args();unset($b[0]);foreach((array)$b as $a){if(is_int($a))$p=$a;else $m=$a;}return add_action($h,array($this,$m),$p,999);}private function sanitize_method($m){return str_replace(array('.','-'),array('_DOT_','_DASH_'),$m);}}}

// The plugin
class CWS_HBNS_Post_Links_Plugin extends CWS_Plugin_v2 {
	public static $instance;

	public function __construct() {
		self::$instance = $this;
		$this->hook( 'plugins_loaded' );
	}

	public function plugins_loaded() {
		$this->hook( 'post_type_link' );
		$this->hook( 'add_admin_bar_menus' );
	}

	public function add_admin_bar_menus() {
		$this->hook( 'admin_bar_menu', 81 );
	}

	public function admin_bar_menu( $bar ) {
		if ( is_single() && 'need' == get_queried_object()->post_type ) {
			$primary_product = new WP_Query( array(
				'connected_type' => 'needs_to_products',
				'connected_items' => get_queried_object(),
			) );
			if ( $primary_product->have_posts() ) {
				$bar->add_menu( array(
					'id' => 'edit-primary-product',
					'title' => 'Edit Primary Product',
					'href' => get_edit_post_link( $primary_product->posts[0] ),
				) );
			}
		}
	}

	public function post_type_link( $link, $post ) {
		switch ( $post->post_type ) {
			case 'product' :
				$need = new WP_Query( array(
					'connected_type' => 'needs_to_products',
					'connected_items' => $post,
				) );
				if ( $need->have_posts() )
					return get_permalink( $need->posts[0] );
				break;
		}
		return $link;
	}
}

new CWS_HBNS_Post_Links_Plugin;

For entering data about Products, I made a custom Meta Box that provided a simple interface for entering the Amazon.com link, the approximate price, and then a freeform textarea for key/value pairs and miscellaneous bullet points.

Misc

Because I’m using a Git-backed and Capistrano-deployed repo, I don’t want any local file editing. So I dropped this code in:


<?php

define( 'DISALLOW_FILE_EDIT', true );

function hbns_disable_plugin_deletion( $actions ) {
	unset( $actions['delete'] );
	return $actions;
}

add_action( 'plugin_action_links', 'hbns_disable_plugin_deletion' );

I was playing a lot with different Product thumbnail sizes, so Viper007Bond’s Regenerate Thumbnails plugin was invaluable, for going back and reprocessing the images I’d uploaded.

And of course, no WordPress developer should make a site without Debug Bar and Debug Bar Console.

Nginx and PHP-FPM

My server runs Nginx and PHP-FPM, in lieu of Apache and mod_php. My normal setup is to use Batcache with an APC backend to do HTML output caching, but I also have an Nginx “microcache” that caches anonymous page views for a short amount of time (5 seconds). But with this site, I wanted to cache more aggressively. Because there are no comments, the site’s content remains static unless we change it. So I cranked my microcache up to 10 minutes (I guess it’s not a microcache anymore!). But I wanted a way to purge the cache if a Product or Post was updated, without having to wait up to 10 minutes. So I modified the Nginx config to recognize a special header that would force a dynamic page load, effectively updating the cache.

Here’s the relevant part of the Nginx config:

	location ~ \.php$ {
		# Set some proxy cache stuff
		fastcgi_cache microcache_fpm;
		fastcgi_cache_key $scheme$host$request_method$request_uri;
		fastcgi_cache_valid 200 304 10m;
		fastcgi_cache_use_stale updating;
		fastcgi_max_temp_file_size 1M;

		set $no_cache_set  0;
		set $no_cache_get  0;

		if ( $http_cookie ~* "comment_author_|wordpress_(?!test_cookie)|wp-postpass_" ) {
			set $no_cache_set 1;
			set $no_cache_get 1;
		}

		# If a request comes in with a X-Nginx-Cache-Purge: 1 header, do not grab from cache
		# But note that we will still store to cache
		# We use this to proactively update items in the cache!
		if ( $http_x_nginx_cache_purge ) {
			set $no_cache_get 1;
		}

		# For cached requests, tell client to hang on to them for 5 minutes
		if ( $no_cache_set = 0 ) {
		        expires 5m;
		}

		# fastcgi_no_cache means "Do not store this proxy response in the cache"
		fastcgi_no_cache $no_cache_set;
		# fastcgi_cache_bypass means "Do not look in the cache for this request"
		fastcgi_cache_bypass $no_cache_get;

		include        /etc/nginx/fastcgi_params;
		fastcgi_index  index.php;
		try_files      $uri =404;

		fastcgi_pass phpfpm;
	}

Now I just needed to have WordPress ping those URLs with that header to refresh them when something changed. Here’s the “meat” of that code:

<?php
	public function transition_post_status( $new, $old, $post ) {
		if ( 'publish' !== $old && 'publish' !== $new )
			return;
		$post = get_post( $post );
		$url = get_permalink( $post );

		// Purge this URL
		$this->purge( $url );

		// Purge the front page
		$this->purge( home_url( '/' ) );

		// If a Product changes, flush its Need and that Need's Department
		if ( 'product' === $post->post_type ) {
			// Flush the connected need
			$need = new WP_Query( array(
				'connected_type' => 'needs_to_products',
				'connected_items' => $post,
			) );
			if ( $need->have_posts() ) {
				$this->purge( get_permalink( $need->posts[0] ) );
				// Now this need's connected Department
				$department = new WP_Query( array(
					'connected_type' => 'departments_to_needs',
					'connected_items' => $need->posts[0],
				) );
				if ( $department->have_posts() )
					$this->purge( get_permalink( $department->posts[0] ) );
			}
		// If a Post changes, flush the main Blog page
		} elseif ( 'post' === $post->post_type ) {
			$this->purge( home_url( '/blog/' ) );
		}
	}

	private function purge( $url ) {
		wp_remote_get( $url, array( 'timeout' => 0.01, 'blocking' => false, 'headers' => array( 'X-Nginx-Cache-Purge' => '1' ) ) );
	}

Boom. Now I get the benefit of long cache times, but with the ability to have updates go live quickly when I need to. The upshot here is that while I have Batcache installed, it’s not really going to get a lot of use, as the outer Nginx caching layer should handle everything. This doesn’t just mean that the site scales (Apache Bench has it handling many thousands of requests a second with ease), but that the site is really, really fast to browse. Your experience will vary according to network and geography, of course. But for me, I’m getting 34ms HTML delivery times for pages in the Nginx cache.

Questions?

So that’s how I did it. Let me know if you have any questions!


by Mark Jaquith at May 15, 2012 08:18 PM under WordPress

Matt: Diary Of A WordCamp

With all the hubaboo going on about WordCamps right now, it’s nice to read Siobhan McKeown’s Diary Of A WordCamp on Smashing WordPress, a great story about her experience at WordCamp Netherlands.

by Matt at May 15, 2012 03:41 PM under Asides

Weblog Tools Collection: WordPress Theme Releases for 5/15

Flourish is a lovely, simple, pastel theme with subtle decorative flourishes in the background and accents and features a vibrant, colorful image of needlework in the header.

Galaxy is a professional theme for corporate business websites and blogs.

by James at May 15, 2012 02:00 PM under wordpress themes

May 14, 2012

Matt: WP Businesses and Contributions

10up partner Helen is now a core WP contributor and 10up highlights that contribution on their blog. It’s very exciting to see more core involvement springing up all over the WP ecosystem, as it has a big impact on the quality of the core software we all depend on. Let me know if you spot any more examples and I’ll share them here.

by Matt at May 14, 2012 12:54 AM under Asides

May 13, 2012

Weblog Tools Collection: WordPress Plugin Releases for 5/13

New plugins

Add To Post allows you to add additional content to either the start, end or both areas of your blog posts.

Rewrite Rules Inspector is a straightforward WordPress admin tool for inspecting your rewrite rules.

WP2Cloud seamlessly integrates with Amazon S3 to provide high availability, high reliability, quick and easy disaster recovery, and serving content in a highly scalable fashion.

Updated plugins

Fast Secure Contact Form lets your visitors send you a quick e-mail message and blocks all common spammer tactics. Additionally, the plugin has a multi-form feature, optional extra fields, and an option to redirect visitors to any URL after the message is sent.

Yepty is yet another pay per click advertising plugin.

by James at May 13, 2012 02:00 PM under WordPress

May 12, 2012

WPTavern: My Apologies To The WordPress Foundation

First off, I want to offer my sincere apologies to the WordPress Foundation. In a previous article, I incorrectly labeled the foundation as harming WordCamps. My main gripe was with the fact that some WordCamp organizers were being denied the ability to have high sponsorship caps and thus, it sometimes adversely affected the event either in terms of it’s size or type of venue they could hold the event in. As time has gone by, I’ve learned that the biggest mistake I made was contributing the organizing and running of WordCamps to the WordPress Foundation which is incorrect. WordCamp Central is the group responsible for all things WordCamp related while the WordPress Foundation oversees the use of the WordPress and WordCamp trademarks. Unfortunately in the original discussion, WordCamp Central and the WordPress Foundation were used interchangeably which muddied the conversation.

Perhaps I should have known better, but even though I’ve been apart of the WordPress community for two years, the project has grown far beyond just being publishing software. There is the foundation, WordCamp Central, Automattic, WordPress.com, various Automattic owned services, Audrey.co, etc. It’s hard to place blame or hold anyone accountable when you have no idea who that person is or what project or group they belong to. It’s frustrating for me but I wonder if many people simply don’t care, just as long as WordPress remains awesome, easy to use publishing software? I’ve often felt that there should be some sort of WordPress White Pages so that the public can know who is responsible for what within the WordPress project. But since so many individuals mingle with various parts, that project would soon be a waste of time.

P.S. There is hope for things to change for the better.

Related posts:

  1. WordPress Foundation To Foot The Bill For Meetup.com Organizer Dues
  2. Virtual WordCamp Virtually Disappears
  3. All We Want To Know Is Why?

by Jeffro at May 12, 2012 12:40 PM under wordpress

May 11, 2012

Donncha: Super Cache for the Weekend

WP Super Cache 1.0 came out several months ago and while it worked fine for most people there’s always room for improvement and bug fixes. Here are some of the bug fixes and improvements coming in the next version which I plan on releasing next week.

There are a lot of changes there so if you have a self hosted blog I would really appreciate if you download the development version, wp-super-cache.zip and install it in your plugins folder.

  • Use $_SERVER[ 'SERVER_NAME' ] to create cache directories.
  • Only create blogs cached directories if valid requests and blogs exist.
  • Only clear current blog’s cache files if navigation menu is modified
  • Added clean_post_cache action to clear cache on post actions
  • Removed garbage collection details on Contents tab
  • Added wp_cache_check_mobile cacheaction filter to shortcircuit mobile device check.
  • Don’t delete cache files for draft posts
  • Added action on wp_trash_post to clear the cache when trashed posts are deleted
  • Show a warning when 304 browser caching is disabled (because mod_rewrite caching is on)
  • New check for safe mode if using less that PHP 5.3.0
  • Added wp_supercache_remove_cookies filter to disable anonymous browsing mode.
  • Fixed garbage collection schedule dropdown
  • Fixed preload problem clearing site’s cache on “page on front” sites.
  • Fix for PHP variable not defined warnings
  • Fixed problem refreshing cache when comments made as siteurl() sometimes didn’t work
  • Preloading of taxonomies is now optional
  • Domain mapping fixes.
  • Better support for https sites. Remove https:// to get cache paths.
  • Added AddDefaultCharset .htaccess rule back in and added an option to remove it if required.
  • Added multisite plugin that adds a “Cached” column to Network->Sites to disable caching on a per site basis.
  • Added WPTouch plugin to modify browser and prefix list in mobile detection code. Added support for that plugin’s exclude list.
  • Fixed cache tester
  • Filter the tags that are used to detect end-of-page using the wp_cache_eof_tags filter.

Related Posts

by Donncha O Caoimh at May 11, 2012 03:23 PM under wp-super-cache

Weblog Tools Collection: WordPress Theme Releases for 5/11

Blossom is a very simple and colorful layout with a floral theme and faint pinstripe background in an earthy green.

Live Wire was designed with a mobile-first attitude, supports post formats, and is translation-ready.

by James at May 11, 2012 02:00 PM under wordpress themes

May 09, 2012

Weblog Tools Collection: WordPress Plugin Releases for 5/9

New plugins

Ad Code Manager allows you to manage your ad codes through the WordPress admin in a safe and easy way.

Updated plugins

FoxyPress is a custom plugin made to integrate FoxyCart e-commerce functionality into your WordPress website.

Simple Google Connect is a framework and series of sub-systems that let you add any sort of Google based functionality you like to a WordPress blog.

by James at May 09, 2012 02:00 PM under WordPress

May 08, 2012

WP Android: Version 2.1 Now Available

Device examples of version 2.1 of WordPress for Android

The dev team is excited to announce that version 2.1 of WordPress for Android is now available! This release adds some great new features, read on to find out more.

WordPress for Android LogoWhat’s New

Comment Editing:

You can now easily edit comments in the app. Just tap the new ‘Edit’ button when viewing a comment and you will be taken to a new screen where you can edit the comment information including the name, email, url, comment text, and status. Big thanks to contributor aerych for adding this feature!

Post Autosave:

To better protect the content you are creating, the app will now autosave posts you are editing every 60 seconds. We’ve also added a safeguard that will make sure that you want to overwrite local changes you’ve made to a post before refreshing the posts list.

New Scaled Image Setting:

Instead of only linking to the full size image, you can now set the width of the linked image to whatever you’d like. To activate the new setting, tap ‘Settings’ and then tap the ‘Upload and link to scaled image’ checkbox. Another big thanks to contributor dolittledk for adding this feature!

Additional Changes:

In addition to these great features, there’s also some other great new additions in the app:

  • Small updates to the UI
  • New app icon
  • Reliability improvements
  • Performance tweaks

WordPress.com

New Reader:

There’s an all-new reader in the app that makes it easier than ever to follow your favorite blogs on WordPress.com. We’ve added a bunch of great new features including simplified navigation between posts, the ability to comment on articles you like, and the ability to easily share posts to other apps on your Android device.

Contributors

A round of applause for the fine folks who have worked on this release: dolittledk, aerych, isaackeyet, mrroundhill, are you next?

Get it!

We hope that version 2.1 will make it easier than ever for you to blog while on the go. The app is available today for Android, Nook, and BlackBerry PlayBook devices:

How do you like version 2.1 of WordPress for Android? Let us know in the comments section below or tweet us @WPAndroid.


by Dan at May 08, 2012 09:01 PM under 2.1

Weblog Tools Collection: WordPress 3.4′s Theme Customizer

WordPress 3.4 will ship with a powerful theme customizer to make alternations to some of the most basic aspects of any theme without even affecting your live site while you tinker. It’s a very fascinating tool, and WordPress superstar Samuel “Otto” Wood has created this short video highlighting some of its features.

Now that you’ve seen the video, head on over to Otto’s incredibly detailed post on how to bring support for the new customizer into your own themes.

by James at May 08, 2012 03:30 PM under themes

Matt: Three Laws of Makerbot

The landlord at 87 Third Avenue included a lease clause requiring that MakerBot comply with science-fiction writer Isaac Asimov’s “three laws of robotics,” which require that robots follow orders, not injure humans, and protect their own existence.

Makerbot has a fun article in the WSJ today about moving office space. (Makerbot is an Audrey company.)

by Matt at May 08, 2012 03:21 PM under Asides

May 07, 2012

Weblog Tools Collection: WordPress Theme Releases for 5/7

Futuristica is a futuristic, modern, customizable, clean, and readable theme with a custom created background.

Lugada is a simple minimalist responsive two column theme with a built in slider.

Wheels is an eye-catching, lively, colorful theme on a dark background featuring an image of a classic, vintage pickup truck in bright blue against a sunset background of varying shades of orange.

by James at May 07, 2012 02:00 PM under wordpress themes

May 05, 2012

Weblog Tools Collection: WordPress Plugin Releases for 5/5

New plugins

SPD Shortcode Slider is a jQuery featured content slider controlled completely by shortcodes for easy template integration.

Yepty is yet another pay per click advertising plugin.

Updated plugins

Bad Behavior complements other link spam solutions by acting as a gatekeeper, preventing spammers from ever delivering their junk, and in many cases, from ever reading your site in the first place.

Sharexy is a powerful social sharing, bookmarking, and blog monetization tool.

by James at May 05, 2012 02:15 PM under WordPress

May 04, 2012

WPTavern: WordPress Foundation Harming Rather Than Helping WordCamps

WordCamp San Francisco 2012 has released their sponsorship package prices and once again, the prices almost demand that you include your first born with the top spot. In 2009, the top sponsorship spot for the event was $15,000. In 2010 the top sponsorship spot would have cost you the same amount, $15,000. Last year, the top spot would have set you back $40,000. While the sponsorship prices are astronomical compared to any other WordCamp in the U.S., the real issue lies within the fact that there appears to be a double standard when it comes to setting caps for sponsorship money.

An article on Perezbox that talks about the issue has so far, generated a number of comments from WordCamp organizers. It was disheartening to read so many organizers with roughly the same complaint. Here are a few excerpts from their comments to give you a better idea of the crux of the matter.

Couldn’t agree more. I remember being told by the WP Foundation that the highest level sponsorship package for WordCamp Philly was too high. The price was $2,500, so we were forced to bring it down to $2,000. So our HIGHEST level was identical to their LOWEST level.- Brad Williams organizer of WordCamp Philadelphia

I organized Chicago in ’09 and ’10. The 2010 camp hosted 580 attendees and in Chicago, that is no small task. Each city has its own things to deal with … in Chicago its unions. 2010 cost us roughly $42,000.00 (and, in my opinion, it was a bare bones camp) – – and we raised that much through sponsorships, so we broke even. That was a couple of months before the Foundation took over. I was told that $30K for a local WordCamp was a ridiculous amount and way too much for a local camp…which is why the Foundation would be taking over to help local camps deal with these financial issues. – Lisa Sabin-Wilson organizer of WordCamp Chicago

As last years organizer of WordCamp Las Vegas I can totally understand and feel the frustration with the sponsorship package limits being set in place by the foundation, especially once you see that the price points for WCSF are so far above and beyond what is allowed. Overall I think the limits that are put in place for all of us common folk to follow is pretty low and should be revisited as the cost of WordCamp’s can vary on geographical location. – Shelby DeNike organizer of WordCamp Las Vegas

I am one of the organizers of the Seattle WordCamp. We have almost 900 people in our local Meetup community and I know we easily could have packed in a 600 person crowd between us and the rest of the community with no problem, and we wanted to! We ran into a brick wall with the Foundation limitations that wound up restricting us to a 300 person venue due to lack of flexibility primarily in sponsorship abilities. – Ben Lobaugh organizer for WordCamp Seattle

If the WordPress Foundation is going to tell WordCamp organizers what the limit is on their sponsorship packages and quite possibly make it too low which can make or break an event, WordCamp San Francisco should be held to the same procedures. If WordCamp San Francisco can not put on a successful event because of the regulations of the WordPress Foundation, they should change its name so they can hold an event without anyone telling them what to do. But, I don’t think they’ll be doing that anytime soon.

This site reaches thousands of people. I’m especially interested in hearing from WordCamp organizers. I want to know if the experiences described by others were also experienced by you.

No related posts.

by Jeffro at May 04, 2012 07:00 PM under wordcamps

WPTavern: PressNomics – Conference Specifically For Commercial WordPress Entities

Pressnomics LogoIn what I believe is the first of it’s kind, PressNomics aims to bring together the various commercial entities that are successfully making a living around WordPress. The conference is being held in Chandler, Arizona which by the way, is a great name for a city between November 8th and 10th, 2012. There is room for around 150-200 attendees with ticket prices starting at $150.00. The tickets go on sale starting in June but most of the attendees will be personally invited. While Joshua and Sally Strebel are among those organizing the conference, this is not a Page.ly focused event. Among the list of confirmed speakers thus far include Mark Jaquith and Mikkel Svane, the CEO of ZenDesk.

When I asked Josh why he’s helping to put on this event, here was his response:

I had this idea for a while and finally decided to execute on it after discussing it with others. People seem to agree that having a meet up of sorts to discuss best practices and learn from each others experiences and stories would be helpful. The programming is for the benefit of the businesses that drive the WordPress economy, not so much the end user of WordPress. + it is a good excuse to get together with our peers.

Sounds like a great idea to me. There is already a lot of collaboration between commercial WordPress entities in the community but I think this will do a lot of businesses some good to get together in person, especially to share success and failure stories. One thing worth noting is that this is definitely not a WordCamp event as illustrated via their disclaimer.

This is not a WordCamp, and it has not been endorsed by or is affiliated with the WordPress Foundation. WordPress is a trademark of the WordPress Foundation, respect.

While organizing an event like this is not easy, it has to be considerably easier to be able to put on a conference about a specific aspect of WordPress with 0 restrictions.

Related But Not Required Reading:

The Concept Of A PressNomics Conference

No related posts.

by Jeffro at May 04, 2012 01:00 PM under economics

May 03, 2012

WP Blackberry: WordPress for PlayBook Update

An update to WordPress for PlayBook is now available on the BlackBerry App World. We’re pleased to introduce version 2.1, which adds some totally radical stuff!

What’s new:

  • Comment editing: tap the new ‘Edit’ button when viewing a comment and you will be taken to a new screen where you can edit the comment information including the name, email, URL, comment text, and status.
  • Post Autosave: to better protect your content, the app will now autosave posts you are editing every 60 seconds.
  • New Scaled Image Setting: you can now set the width of linked images. Tap ‘Settings’ and then tap the ‘Upload and link to scaled image’ checkbox.

Minor changes:

  • Small improvements to the UI, most notably the delete post button has been moved to a less prominent spot to prevent accidental taps.
  • Reliability improvements.
  • Updated translations.
  • New app icon.

WordPress.com:

  • New WordPress.com Reader: There’s an all-new reader in the app that makes it easier than ever to follow your favorite blogs on WordPress.com. We’ve added a bunch of great new features including simplified navigation between posts and the ability to comment on articles you like.

Getting WordPress for PlayBook

Make sure you’re running BlackBerry PlayBook OS 2.0 or higher, then simply click here to download the app and get started.

Contributors

Huge thanks to the fine folks who have worked on this release: dolittledk, aerych, isaackeyet, mrroundhill, daniloercoliand you?

Feedback

Be sure to subscribe to this blog to stay up to date with the latest happenings around WordPress for PlayBook and WordPress for BlackBerry.

How do you like WordPress for PlayBook? Let us know in the comments section below, or tweet us @WPBlackBerry.


by Danilo at May 03, 2012 07:54 PM under WordPress for PlayBook

Weblog Tools Collection: WordPress 3.4 Beta 4 Released

WordPress 3.4 Beta 4 has been released, with quite possibly the most brief, and yet most simply descriptive, release announcement yet. I’ll take the liberty of forever preserving it below in all its glory:

Less bugs, more polish, the same beta disclaimers. Download, test, report bugs. Thanks much. /ryan #thewholebrevitything

So, let’s break that down just a bit in case you’re not yet familiar with what’s going on. First, WordPress 3.4 Beta 4 has less bugs and is a bit snappier and cleaner than the previous beta releases, but the same disclaimers are still valid. This is not yet meant for live sites, but please do take a few swings at it on a test installation, especially if you are a plugin or theme developer. If you find any bugs, please report them, and contact the support forums if you need any help.

by James at May 03, 2012 02:00 PM under wordpress 3.4

Dev Blog: WordPress 3.4 Beta 4

Less bugs, more polish, the same beta disclaimers. Download, test, report bugs. Thanks much. /ryan #thewholebrevitything

by Ryan Boren at May 03, 2012 02:52 AM under Releases

May 01, 2012

BuddyPress: BuddyPress at Newham Bridge Primary, UK

This post was written by Adam Heward, a member of the BuddyPress community and ICT Manager at Newham Bridge Primary School.

Facebook is an endemic problem for UK schools. Issues from outside of the classroom are being brought into school as a result of Facebook interactions and schools are powerless to do anything about it. I found out on my first day in my new job as ICT manager in a primary school in Middlesbrough, UK when I was asked “What can we do about Facebook?”

Our school had experienced everything from name calling to death threats, doctored pictures to stolen identities; all of this from users who were still at least 4 years short of Facebook’s (all too easy to avoid) minimum age requirement of 13 years old. We needed to steer our students away from Facebook and toward something the school could police, and make sure we catch the others before opening Facebook accounts.

That’s where BuddyPress came in.

BuddyPress enabled us to start our own school-oriented social network, where children can communicate with their classmates in a safe and monitored environment. Every child was given a username and password as well as training on how to use the platform. We encourage responsible use of the Internet through teaching our children how to be good e-citizens. Our social network is treated like the children’s school books where the children should produce their best work at all times. This is imposed to produce an environment of high quality writing (typing) which in turn breeds good writing habits both online and in the rest of their school work.

Our social network is hosted on the Internet rather than any internal school server and so it is easily accessible to the children at home which has further encouraged participation. The children have really enjoyed engaging with their classmates, and even their teachers, on the school social network; sharing brief conversations about both in school and out of school matters. Teachers are able to set tasks for whole class groups or give encouragement to individual learners. It’s a valuable tool to enhance communication between teaching staff, reminding colleagues of events, sharing resources for lessons, and taking care of administrative and social notices.

The basic functionality of BuddyPress can be further extended through the use of the ever expanding Plugins library. We use BuddyPress Docs where children can collaborate on a shared piece of work and teachers can make comments and suggestions to help the children to enhance it. We also have the CubePoints for BuddyPress plugin to encourage participation on our social network. Children are awarded points for logging in daily and posting comments and a chart showing to top users is displayed in the sidebar. Points can also be deducted for any issues both online and offline.

In addition to the masses of free plugins that are available, we have a paid subscription to WPMUDEV’s BuddyPress Calendar Plugin to help us to plan events in the school calendar such as Sports Day and Summer Fairs, or for individual groups such as fixtures for the school football team.

BuddyPress is the perfect fit for our school. The flexibility and extensibility of the WordPress platform, the continually updated plug-in environment, well documented support, and the fact it’s all free, leads me to the conclusion that it can be just as successful in all other schools as it has been with ours. Thank you for the opportunity to share our story!

by Paul Gibbs at May 01, 2012 09:05 PM under uses

WPTavern: Import/Export Options Now Available With Widget Logic

The latest release of one of my favorite plugins, Widget Logic, now has the option to import and export options. The options are saved to a text file which contains all of the conditional logic.

Widget Logic Export Import Options

Widget Logic Text File

Conditional Logic Saved Within A Text file

Despite using this particular plugin for a long time, it never really occurred to me how nice it would be to have such a feature. This really comes in handy for those times when you want to reformat your website and instead of remembering the conditional logic for each widget, you simply import the text file and the configuration is taken care of.

While I didn’t dedicate much time to it, there is an additional enhancement that comes with Version .52 of the plugin. You can now select when the logic code runs. Here is a screenshot that should help clarify what it does.

Oh, and if you get lost trying to find out where the new features are located, you’ll find them at the bottom of your Widget configuration page.

No related posts.

by Jeffro at May 01, 2012 07:15 PM under widgets