Categories
WordPress

Update to REST API Post Embeds: category and tag filters work again!

The past few weeks have been interesting. WordPress 4.7 is coming up, and everyone is talking about the WP REST API.

I took that opportunity to look at one of my plugins, REST API Post Embeds, and make sure it was compatible with the upcoming WordPress 4.7. It turns out it wasn’t!

(more…)

Categories
WordPress

Manage your Custom Post Types on WordPress.com

I’ve talked about the WordPress.com REST API on this blog before. I even created a plugin allowing you to make use of it on your own site. This API powers WordPress.com, the desktop WordPress.com apps, and is used in more and more areas of the Jetpack plugin.

Did you know that API also allows you to manage your Custom Post Types via the WordPress.com interface?

Discover how to manage Custom Post Types via WordPress.com

Categories
WordPress

A custom theme for SyntaxHighlighter

I’ve used SyntaxHighlighter Evolved on that site for as long as I can remember. It was always my plugin of choice to display code on this site. I’ve played with other tools, like Prism.js or  Pastacode, but I’ve added so many code snippets to this site, it wouldn’t be easy to switch to something else now. Let’s see how I customized that plugin to fit my needs.

(more…)

Categories
WordPress

Automating my local dev environment with Laravel Valet and WP-CLI

When I set up my new machine, I decided to get rid of MAMP and Vagrant, my previous local development tools of choice. While they worked well for me, I needed something a bit different. I need to be able to spin up a fresh installation of WordPress, run a few tests, and burn it all down a few minutes later.

A few months ago, I discovered Laravel Valet. Valet is a tool relying on Caddy and Dnsmasq, allowing you to spin up PHP projects in a few seconds. You can learn more about it here. It seemed like the perfect tool for me, so I decided to combine it with WP-CLI to quickly launch WordPress sites on my laptop.

Let’s dive into the different steps I follow to get this to work.

Categories
Tutorials WordPress

Jetpack: Add Related Posts to your RSS feed

I got an interesting question in the Jetpack support forums today. Levy wanted to display Related Posts in their RSS feed.

Jetpack displays Related Posts at the bottom of single posts by default, but like with other modules, you can customize Related Posts. In this post, we’ll use the the_content filter and the raw Jetpack Related Posts class to build our own unordered list of Related Posts, and add it to the bottom of the post content in RSS feeds.

Quick note before we start:

  • You’ll want to add that code to a functionality plugin like this one.
  • Nothing will happen if you’re not using Jetpack and its Related Posts module.
/**
 * Add Jetpack Related Posts to RSS feed.
 *
 * @see https://wordpress.org/support/topic/2927523
 */
function jeherve_related_posts_feed( $content ) {
	// Return early if we're not in the RSS feed.
	if ( ! is_feed() ) {
		return $content;
	}

	// If Jetpack and Related Posts are active, let's get started.
	if ( class_exists( 'Jetpack_RelatedPosts' ) && method_exists( 'Jetpack_RelatedPosts', 'init_raw' ) ) {
		$related = Jetpack_RelatedPosts::init_raw()
			->set_query_name( 'jetpackme-shortcode' ) // Optional, name can be anything
			->get_for_post_id(
				get_the_ID(),
				array( 'size' => 3 )
			);

		if ( $related ) {
			$related_list = '';

			foreach ( $related as $result ) {
				// Get the related post IDs
				$related_post_id = get_post( $result[ 'id' ] );

				/**
				 * From there you can do just about anything, using the post IDs.
				 *
				 * In this example, we'll build an unordered list.
				 */
				$related_list .= sprintf(
					'<li><a title="%1$s" href="%2$s">%3$s</a></li>',
					esc_attr( get_the_title( $related_post_id ) ),
					get_permalink( $related_post_id ),
					get_the_title( $related_post_id )
				);
			}

			/**
			 * Let's wrap all those related posts in ul tags, and add that list to the end of our post content.
			 *
			 * We will also add a headline, but only if it was set to be displayed in your Jetpack Related Posts settings.
			 */
			$related_options = Jetpack_Options::get_option( 'relatedposts' );
			if ( $related_options['show_headline'] ) {
				$headline = sprintf(
					'<h3 class="jp-relatedposts-headline"><em>%s</em></h3>',
					esc_html__( 'Related', 'jetpack' )
				);
			} else {
				$headline = '';
			}

			return sprintf(
				'%1$s%2$s<ul class="jp-relatedposts">%3$s</ul>',
				$content,
				apply_filters( 'jetpack_relatedposts_filter_headline', $headline ),
				$related_list
			);
		}

		return $content;
	}

	// Last fallback, just in case Jetpack and Related Posts aren't there anymore.
	return $content;
}
add_filter( 'the_content', 'jeherve_related_posts_feed' );
Categories
WordPress Work

Come see me at WordCamp Europe

Are you at WordCamp Europe this weekend? Come say hi, I am at the Jetpack booth! ? ☺ 

Categories
WordPress

REST API Post Embeds: alter API query based on custom shortcode parameter

I got an interesting question from @slotty7130 in the WordPress.org support forums today: they wanted to use the REST API Post Embeds plugin to display posts from one of their websites, but only in a specific language as defined in WPML.

(more…)

Categories
WordPress Work

A week in Dublin

Working for Automattic is pretty great. I work from home, and also get to travel from time to time. After Hawaii, India, San Francisco, Spain, and a few other places, we decided to head to Dublin for a week to meet, and work on delivering better support for Jetpack, VaultPress, and Akismet users.

(more…)

Categories
WordPress

Color Posts update for AMP

If you follow the news, you most likely heard about the Accelerated Mobile Pages Project in the past few weeks. This open source initiative, lead by Google and a few big publishing and technology companies, allows you to serve super fast pages to mobile readers, when they come from a Google Search result or from an app using AMP:

How AMP looks like when launching a Google search

Automattic joined the project and released the AMP plugin, so you can enable AMP on your own site with a few clicks.

It’s not super pretty, though. By default, AMP pages sport a standard blue title bar. That’s where Color Posts comes in! ?  I just updated the plugin, and it will now change the look of the title bar to match the post’s main color.

All you have to do is install the AMP plugin, and update Color Posts!

Categories
WordPress

Developers: discover Jetpack’s little secrets

You probably already know the Jetpack plugin. But did you know it included developer features you can use when building sites for your clients?

In this article we’ll discover some of Jetpack’s little secrets, and learn how to use them in our projects.

Discover Jetpack’s secrets