outbox update

2025년 3월 20일, 목요일

test

Material Design Theme for WordPress

Banner
The official Material Design Theme for WordPress.

Contributors: google, materialdesign, xwp
Requires at least: 5.6
Tested up to: 5.8.2
Stable tag: 0.5.1
License: Apache License, Version 2.0
Requires PHP: 5.6

Description

The official Material Design Theme for WordPress – from the team behind Google’s open-source design system. Apply Material Design principles and Material Theming to your site, and customize its style. Pair this with the official Material Design for WordPress plugin to customize your site’s navigation, colors, typography, and shapes, use Material Components, and choose from over 1,000 Google Fonts and Material Design icons.

Installation

  1. In your admin panel, go to Appearance > Themes and click the Add New button.
  2. Click Upload Theme and Choose File, then select the theme’s .zip file. Click Install Now.
  3. Click Activate to use your new theme right away.

Frequently Asked Questions

Don’t see an answer to your question? Please search the support forum to see if it has already been discussed. Otherwise, please open a new support topic.

Does this theme support any plugins?

The Material Design theme includes support for Infinite Scroll in Jetpack.

Contributors

Material Design is a design system created by Google and backed by open-source code that helps teams build high-quality digital experiences.

Changelog

For the theme’s changelog, please see the Releases page on GitHub.

Copyright

Images in screentshot are self-created and released under GPL

Material Design logo and Illustrations
Copyright (c) 2014-2020 Google, Inc.
License: MIT License, https://opensource.org/licenses/MIT
Source: https://material.io/

Material Design bundles the following third-party resources:

TGMPA
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Source: https://github.com/TGMPA/TGM-Plugin-Activation


<?php
/**
 * Plugin Name: Material Design
 * Plugin URI: https://github.com/material-components/material-design-for-wordpress
 * Description: The official Material Design plugin for WordPress. Customize your site’s navigation, colors, typography, and shapes, use Material Components, and choose from over 1,000 Google Fonts and Material Design icons. From the team behind Google’s open-source design system.
 * Version: 0.10.0-beta
 * Requires at least: 5.9
 * Requires PHP:      5.6.20+
 * Author:  Material Design
 * Author URI: http://material.io
 * License: Apache License, Version 2.0
 * License URI: https://www.apache.org/licenses/LICENSE-2.0
 * Text Domain: material-design
 *
 * Copyright 2020 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * @package MaterialDesign
 */

if ( version_compare( phpversion(), '5.6.20', '>=' ) ) {

	// Gutenberg v8.6.0 was bundled with WP 5.6, which is the earliest required.
	$gb_supported = defined( 'GUTENBERG_VERSION' ) && version_compare( GUTENBERG_VERSION, '8.6.0', '>=' );
	$wp_supported = version_compare( get_bloginfo( 'version' ), '5.6', '>=' );

	if ( ! $gb_supported && ! $wp_supported ) {
		_material_design_error( '_material_design_gutenberg_text_only', '_material_design_gutenberg_error' );
	} else {
		require_once __DIR__ . '/instance.php';

		register_activation_hook(
			__FILE__,
			'_material_design_activation'
		);

		/**
		 * Setup Material Design plugin.
		 *
		 * @codeCoverageIgnore
		 *
		 * @return void
		 */
		function _material_design_load_plugin() {
			$material_design_plugin = \MaterialDesign\Plugin\get_plugin_instance();
			$material_design_plugin->init();
		}

		add_action( 'plugins_loaded', '_material_design_load_plugin' );
	}
} else {
	_material_design_error( '_material_design_php_version_text', '_material_design_php_version_error' );
}

/**
 * Display errors.
 *
 * @param string $text_function The callback function to be used for text error.
 * @param string $html_function The callback function to be used for HTML error.
 *
 * @return void
 */
function _material_design_error( $text_function, $html_function ) {
	// @codeCoverageIgnoreStart
	if ( defined( 'WP_CLI' ) ) {
		WP_CLI::warning( call_user_func( $text_function ) );
	} else {
		add_action( 'admin_notices', $html_function );
	}
	// @codeCoverageIgnoreEnd
}

/**
 * Admin notice for incompatible versions of PHP.
 */
function _material_design_php_version_error() {
	printf( '<div class="error"><p>%s</p></div>', esc_html( _material_design_php_version_text() ) );
}

/**
 * String describing the minimum PHP version.
 *
 * @return string
 */
function _material_design_php_version_text() {
	return esc_html__( 'Material Design plugin error: Your version of PHP is too old to run this plugin. You must be running PHP 5.6.20 or higher.', 'material-design' );
}

/**
 * Admin notice if Gutenberg is not available.
 */
function _material_design_gutenberg_error() {
	printf( '<div class="error"><p>%s</p></div>', wp_kses_post( _material_design_gutenberg_text() ) );
}

/**
 * String describing the Gutenberg error.
 *
 * @return string
 */
function _material_design_gutenberg_text() {
	$update = sprintf(
		'<a href="%1$s">%2$s</a>',
		esc_url( admin_url( 'update-core.php' ) ),
		esc_html__( 'update your site', 'material-design' )
	);

	$install = sprintf(
		'<a href="%1$s">%2$s</a>',
		esc_url( admin_url( 'plugin-install.php?tab=plugin-information&plugin=gutenberg' ) ),
		esc_html__( 'Gutenberg WordPress Plugin', 'material-design' )
	);

	return wp_kses_post(
		sprintf(
			'Material Design plugin is not available since your version of the Block Editor is too old. You will need to %s to WordPress 5.2 or later or install the %s.',
			$update,
			$install
		),
		'material-design'
	);
}

/**
 * Get Gutenberg error with all HTMl stripped.
 *
 * @return string
 */
function _material_design_gutenberg_text_only() {
	return esc_html( wp_strip_all_tags( _material_design_gutenberg_text() ) );
}

/**
 * Function to fire after plugin is activated.
 *
 * @return void
 */
function _material_design_activation() {
	update_option( 'material_plugin_activated', true, false );
	set_transient( '_material_activation_redirect', 1, 30 );
}

=== Material Design for WordPress ===
Contributors: google, materialdesign, xwp
Requires at least: 5.6
Tested up to: 5.8.2
Stable tag: 0.5.1
License: Apache License, Version 2.0
License URI: https://www.apache.org/licenses/LICENSE-2.0
Tags: material-design, material-theming, google, blocks, gutenberg, theme-builder, accessibility, dark-mode

The official Material Design plugin for WordPress. Customize your site’s navigation, colors, typography, and shapes, use Material Components, and choose from over 1,000 Google Fonts and Material Design icons. From the team behind Google’s open-source design system.

== Description ==

The official Material Design plugin for WordPress. Customize your site’s navigation, colors, typography, and shapes, use Material Components, and choose from over 1,000 Google Fonts and Material Design icons. From the team behind Google’s open-source design system.

It’s easy to get up and running with Material Design for WordPress:

=== Install Material Theme & examples ===
The theme applies Material Design principles and Material Theming to your site, so you can customize its style. Example layouts include pages for home, about, projects, blog, and contact.

=== Customize your Theme ===
Set up and preview your global theme styles within the customizer. Choose colors, typography, shapes, and icons to express your unique style.

=== Build with Material Blocks ===
Add Material Components like buttons and cards, and create layouts for things like image-heavy pages or styled contact forms. Customize the look of your blocks by adjusting global theme styles, or setting the style of a single component in the block editor.

=== Apply your Theme ===
Implement your colors, shapes, and typography for built-in WordPress elements like your site’s header and footer.

== Installation ==

  1. Upload the folder to the /wp-content/plugins/ directory.
  2. Activate the plugin through the ‘Plugins’ menu in WordPress.

== Frequently Asked Questions ==

Don’t see an answer to your question? Please search the support forum to see if it has already been discussed. Otherwise, please open a new support topic.

== Screenshots ==

  1. Start from our existing styles and use Material Theming to create a custom look and feel. (Baseline)
  2. Start from our existing styles and use Material Theming to create a custom look and feel. (Crane)
  3. Start from our existing styles and use Material Theming to create a custom look and feel. (Fortnightly)
  4. Start from our existing styles and use Material Theming to create a custom look and feel. (Blossom)
  5. Choose from more than 1,000 typefaces in Google Fonts to set your headline and body styles.
  6. Material Icons are included with this plugin. Choose from Filled, Sharp, Rounded, Outlined, or Two-Tone styles.
  7. Add Material Components like buttons and cards, and create layouts for things like image-heavy pages or styled contact forms.
  8. Choose colors, typography, shapes, and icons to express your unique style.

== Contributors ==

Material Design is a design system created by Google and backed by open-source code that helps teams build high-quality digital experiences.

== Changelog ==

For the plugin’s changelog, please see the Releases page on GitHub.


=== Jetpack – WP Security, Backup, Speed, & Growth ===
Contributors: automattic, adamkheckler, adrianmoldovanwp, aduth, akirk, allendav, alternatekev, andy, annamcphee, annezazu, apeatling, arcangelini, arsihasi, azaozz, barry, batmoo, beaulebens, bindlegirl, biskobe, bjorsch, blobaugh, brbrr, brileyhooper, cainm, cena, cfinke, cgastrell, chaselivingston, chellycat, clickysteve, csonnek, danielbachhuber, daniloercoli, davoraltman, delawski, designsimply, dkmyta, dllh, drawmyface, dsmart, dun2mis, dzver, ebinnion, egregor, eliorivero, enej, eoigal, erania-pinnera, ethitter, fgiannar, gcorne, georgestephanis, gibrown, goldsounds, hew, hugobaeta, hypertextranch, iammattthomas, iandunn, joen, jblz, jeffgolenski, jeherve, jenhooks, jenia, jessefriedman, jgs, jkudish, jmdodd, joanrho, johnjamesjacoby, jshreve, kbrownkd, keoshi, koke, kraftbj, lancewillett, leogermani, lhkowalski, lschuyler, macmanx, martinremy, matt, mattwiebe, matveb, maverick3x6, mcsf, mdawaffe, mdbitz, MichaelArestad, migueluy, miguelxavierpenha, mikeyarce, mkaz, nancythanki, nickmomrik, njweller, nunyvega, obenland, oskosk, pento, professor44, rachelsquirrel, rdcoll, renatoagds, retrofox, richardmtl, richardmuscat, robertbpugh, roccotripaldi, ryancowles, samhotchkiss, samiff, scarstocea, scottsweb, sdixon194, sdquirk, sermitr, simison, stephdau, thehenridev, tmoorewp, tyxla, Viper007Bond, westi, williamvianas, wpkaren, yoavf, zinigor
Tags: Security, backup, malware, scan, performance
Stable tag: 14.4
Requires at least: 6.6
Requires PHP: 7.2
Tested up to: 6.7
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Improve your WP security with powerful one-click tools like backup, WAF, and malware scan. Includes free tools like stats, CDN and social sharing.

== Description ==

JETPACK – THE BEST WORDPRESS PLUGIN

Jetpack is a WordPress plugin that helps you create better content, grow your subscribers, earn money from your website and keep it safe, fast, and secure. You can grow and keep track of your website traffic with Jetpack stats, and create better content with Jetpack AI. You can start a newsletter and grow your audience, turning fans into paying subscribers. Create beautiful content with Jetpack Creator and keep your site fast with Jetpack Boost.

= HOW TO GET STARTED WITH JETPACK =
Installation is free, quick, and easy. Set up Jetpack in minutes. Take advantage of more robust features like WordPress site security and design and growth tools by upgrading to a paid plan.

= NEED EXPERT SUPPORT? =
We have a global team of Happiness Engineers ready to provide incredible support. Ask your questions in the support forum or contact support.

WHY USE JETPACK ON YOUR SITE

= Safer. Faster. More traffic. =

WordPress security, performance, marketing, and design tools — Jetpack is made by WordPress experts to make WP sites safer and faster, and help you grow your traffic.

= 24/7 AUTO SITE SECURITY =
We guard your site so you can run your site or business. Jetpack Security provides easy-to-use, comprehensive WordPress site security including auto real-time backups and easy restores, malware scans, and spam protection. Essential features like brute force protection and basic downtime / uptime monitoring are free.

  • Back up your site automatically in real time and restore to any point with one click. Cloud storage starts at 10GB, which is more than enough for most sites, with additional storage options available if needed. Great for eCommerce stores especially Woo.
  • Manage migration to a new host, migrate theme files and plugins to a new database, easily duplicate websites, create full database backups, clone websites, repair broken websites by restoring older backups or easily set up a test site by creating a duplicate of your existing WP website.
  • See every site change and who made it with the activity log, great for coordination, debug, maintenance, or troubleshooting.
  • Examine incoming traffic to your WordPress site with our WAF (Web Application Firewall) and decide to allow or block it based on various rules.
  • Add an important layer of protection to your site with our WAF (Web Application Firewall), particularly when attackers actively exploit unpatched vulnerabilities.
  • Automatically perform malware scans and security scans for other code threats. One click fix to restore your site for malware.
  • Block spam comments and form responses with anti spam features powered by Akismet.
  • Brute force attack protection to protect your WordPress login page from attacks.
  • Monitor your site uptime / downtime and get an instant alert of any change by email.
  • Secure WordPress.com powered login used by millions of sites with optional 2FA (two factor authentication) for extra protection.
  • Auto update individual plugins for easy site maintenance and management.

You can purchase all of Jetpack’s security features in our Security bundle, or VaultPress Backup, Scan, and Akismet Anti-spam can each be purchased individually.

= PEAK SPEED AND PERFORMANCE =
Get blazing fast site speed with Jetpack. Jetpack’s free CDN (content delivery network) auto optimizes your images. Watch your page load times decrease — we’ll optimize your images and serve them from our own powerful global network, and speed up your site on mobile devices to reduce bandwidth usage and save money!

  • Image CDN for images and core static files, like CSS and JavaScript, served from our servers, not yours, which saves you money and bandwidth.
  • Unlimited, high speed, ad free video hosting keeps the focus on your content, not on ads or recommendations that lead people off site.
  • Custom site search is incredibly powerful and customizable. Helps your visitors instantly find the right content so they read and buy more. Works great with WooCommerce / eCommerce sites to help filter products so customers get what they want on your site faster.
  • Recommended to use with Jetpack Boost for ultimate WordPress site speed.

= POWERFUL TOOLS FOR GROWTH =
Create and customize your WordPress site, optimize it for visitors and revenue, and enjoy watching your stats tick up. Build it, share it, and watch it grow.

  • Auto publish blog posts and products to social media by simply using our tools to connect to Facebook, Bluesky, Threads, Tumblr, Mastodon, LinkedIn, and Nextdoor.
  • Easily share Instagram posts on your pages and blog posts.
  • Collect a payment or donation, sell a product, service, or membership with simple integrations with PayPal and Stripe.
  • Grow traffic with SEO tools for Google, Bing, Facebook, and WordPress.com. XML sitemap created automatically.
  • Advertise on your site to generate revenue. The ad network automatically does the work for you to find high-quality ads that are placed on your site.
  • Manage Jetpack features from anywhere with the official WordPress mobile app, available for Apple iOS (iPhone or iPad) and Google Android.
  • Looking for Customer Relationship Management? Check out the Jetpack CRM plugin which works alongside Jetpack to give you a simple and practical way to build relationships with your customers and leads.

= POWERFUL STATS TO GROW YOUR SITE =
With Jetpack Stats, you don’t need to be a data scientist to see how your site is performing.

  • Advanced site stats and analytics to help you understand your audience.
  • Discover your top performing posts & pages.
  • See who is creating the most popular content on your team with our author metrics.
  • Easily keep track of your content creation habits & trends over the years.
  • View weekly and yearly trends with 7-day Highlights and Year in Review.
  • See what popular social networks your content is being shared to the most.
  • Explore real-time data on visitors, likes, and comments.
  • Get detailed insights on the referrers that bring traffic to your site.
  • Discover what countries your visitors are coming from.
  • Measure link clicks, video plays, and file downloads within your site.

= WRITE SMARTER, NOT HARDER. =
Experience the ease of crafting professional content with intuitive and powerful AI. Jetpack AI Assistant effortlessly integrates with your WordPress editor, offering an intuitive interface to interact with AI.
This powerful block lets you generate diverse content at your command, significantly reducing the time and effort required in content creation.

Simply provide a prompt, and watch as Jetpack AI Assistant crafts compelling blog posts, detailed pages, structured lists, and comprehensive tables – all tailored to your needs.

  • Harness AI power directly from your editor.
  • Unlock high-quality, tailored content at your command.
  • Maintain professional standards with ease.
  • AI-powered translations across numerous languages at your fingertips, breaking down language barriers.

= PROMOTE YOUR CONTENT EASILY WITH JETPACK BLAZE =
Find new fans by promoting your posts and pages across millions of sites in the WordPress.com and Tumblr ad network.

  • Create your ad. Choose your audience. Set your budget. It’s that easy.
  • Amplify your reach for just a few dollars.

= EASY DESIGN TOOLS =
Quickly customize your site to make it stand out — no coding needed.

  • Themes — Simple WordPress themes to get started on your site.
  • Related posts — Keep visitors on your site by automatically showing them related content they will be interested in.
  • Gallery and Slideshow tools — Image galleries, carousel slider, and slideshows for WP sites and stores.
  • Subscriptions — Make it easy for visitors to sign up to receive notifications of your latest posts and comments.
  • Contact form — Easily build unlimited contact forms for free without any coding. Receive email notifications for each response. Integrate with mail solutions like Creative Mail to reach your customers and leads quickly. Connect to Jetpack Anti spam (powered by Akismet) to filter submissions.
  • oEmbed Support — easily embed images, posts, and links from Facebook and Instagram.

= INTEGRATIONS =
Jetpack is updated monthly to ensure seamless integration with top WordPress plugins and other tech products.

  • Built for WooCommerce: Jetpack and WooCommerce are both made by Automattic. Backup, Scan, Anti-spam, integrate perfectly for Woo / eComm stores.
  • Jetpack is fully compatible with v2.0 of the official AMP plugin for WordPress.
  • Better understand your customers and marketing with Google Analytics (GA) integration.
  • Social media platforms: Instagram, Facebook, Tumblr, LinkedIn, Threads, Bluesky, Nextdoor.
  • Simple Blocks to customize your site: Pinterest, Whatsapp, Podcast player, GIFs, maps, tiled gallery, slideshow.
  • Payment processors: easily collect payments or donations and sell products through Stripe and PayPal.
  • Site speed and performance plugins: Works great with WP Super Cache by Automattic and Cloudflare.
  • Contact form: Anti-spam (Powered by Akismet) blocks spam comments for Jetpack forms, Contact Form 7, Ninja Forms, Gravity Forms, Formidable Forms, and more.
  • Other tech integrations: Instagram, Creative Mail, Mailchimp, Calendly, Whatsapp, Pinterest, Revue, and more.

= EXPLORE MORE OF JETPACK =
If you like Jetpack, consider checking out our other products and bundles

  • Jetpack Complete – The Complete bundle with real‑time security, top performance, and everything you need to grow your business.
  • Jetpack Security – Our Security bundle provides easy‑to‑use, comprehensive WordPress site security, including real‑time backups, a web application firewall, malware scanning, and spam protection.
  • Jetpack Backup – Save every change and get back online quickly with one‑click restores from Jetpack VaultPress Backup.
  • Jetpack Scan – Protect your site from bad actors around‑the‑clock ‑ with our web application firewall (WAF) and automated malware scanning with one‑click fixes.
  • Jetpack Search – Instantly deliver the most relevant results to your visitors with Jetpack Search. No coding required, no ads, and no tracking.
  • Jetpack Boost – Increase your website speed. Enjoy the same performance advantages as the world’s leading websites, no developer required.
  • Jetpack VideoPress – Display stunning‑quality video with none of the hassle. Drag and drop videos through the WordPress editor and keep the focus on your content, not the ads.
  • Jetpack AI – Turn your ideas into ready‑to‑publish content at lightspeed.
  • Jetpack Stats – Keep track of your website visits, popular posts, newsletter subscribers and more.
  • Jetpack Social – Automatically share your website content to your favorite social media platforms, from one place.
  • Jetpack CRM – Jetpack CRM has all of the tools you need to grow your business. It’s also modular, so you can customize it to suit your needs.
  • Jetpack Creator – Craft stunning content, boost your subscriber base, and monetize your online presence.
  • Jetpack Newsletter – Transform your blog posts into newsletters to easily reach your subscribers. Offer paid subscriptions and earn from your content.

= KEEP SPAM OFF YOUR WEBSITE =

  • Akismet Anti-spam – Automatically clear spam from comments and forms. Save time, get more responses, give your visitors a better experience – all without lifting a finger.

= PROMOTE YOUR CONTENT FOR MORE VIEWS =

  • Blaze – Find new fans by promoting your posts and pages across millions of sites in the WordPress.com and Tumblr ad network.

= MANAGE MORE THAN ONE SITE? =

  • Jetpack Manage – All the tools you need to manage multiple WordPress sites. Monitor site security, performance, and traffic, and get alerted if a site needs attention.

= FLY HIGHER WITH INDIVIDUAL PLUGINS =
Ever wish you could have just one feature of Jetpack in its own plugin? Now you can. Check out our individual plugins and install only what you need.

== Installation ==

= Automated Installation =

Installation is free, quick, and easy. Set up Jetpack in minutes.

= Manual Alternatives =

Alternatively, install Jetpack via the plugin directory, or upload the files manually to your server and follow the on-screen instructions. If you need additional help read our detailed instructions.

== Frequently Asked Questions ==

= Is Jetpack free? =

Yes! Jetpack’s core features are free for non-commercial sites.

These include: site stats, a high-speed CDN for images, related posts, downtime monitoring, brute force attack protection, automated sharing to social networks, sidebar customization, SEO (search engine optimization) tools, and much more.

= Should I purchase a paid plan? =

It depends on your site and what kind of protection, performance, and design you need. If you make money from your site, the answer is “yes.” For context, Jetpack’s paid services include real-time backups, security scanning, spam filtering, video hosting, site monetization, search, priority support, and more.

To learn more about the essential security and WordPress services we provide and see how we can improve your site, visit our plans page.

= Why do I need a WordPress.com account? =

Since Jetpack and its services are provided and hosted by WordPress.com, a WordPress.com account is required for Jetpack to function.

= I already have a WordPress account, but Jetpack isn’t working. What’s going on? =

A WordPress.com account is different from the account you use to log into your self-hosted WordPress. If you can log into WordPress.com, then you already have a WordPress.com account. If you can’t, you can easily create oneduring installation.

= How do I view my stats? =

Once you’ve installed Jetpack, your stats will be available on your Jetpack dashboard and through the official WordPress mobile app.

= How do I contribute to Jetpack? =

There are opportunities for developers at all levels to contribute. Learn more about contributing to Jetpack or consider joining our beta program.

= What else does Jetpack include? =

Jetpack is the ultimate toolkit for WP for both the classic editor and the block editor, giving you everything you need for a professional site. It includes the following features:

  • Activity log — Monitor all site changes for debug, troubleshooting, or maintenance
  • Ads — Earn income by displaying high quality ads on your site.
  • Beautiful Math — Use the LaTeX markup language for writing complex mathematical equations, formulas, and more.
  • Carousel slider — Display a gorgeous full-screen photo browsing experience with comments and EXIF metadata.
  • CDN — Helps your pages load faster by allowing Jetpack to optimize your images and serve your images and static files (like CSS and JavaScript) from our global network of servers.
  • Comments — Replace your default comment form with an improved system with integrated social media login options.
  • Comment Likes — Allows readers to like other comments to show their agreement, approval, or appreciation.
  • Contact Form — Offer your readers the ability to get in touch, without giving out your personal email address.
  • Custom CSS — Customize the appearance of your theme without creating a child theme or worrying about updates overwriting your customizations.
  • Custom Content Types — Adds custom post types (CPTs) to your site.
  • Downtime Monitor — Alerts you via electronic mail if your site goes down to ensure you keep uptime.
  • Extra Sidebar Widgets — Extra widgets you can add to your blog, including RSS Links and Facebook Like Boxes.
  • Gravatar Hovercards — Make your Gravatar profile visible to those viewing your blog.
  • Google Analytics (GA) — Track your WordPress site statistics thanks to Google Analytics.
  • Infinite Scroll — Pulls the next posts automatically into view when the reader approaches the bottom of the page.
  • JSON API — Authorizes applications and services to securely connect to your blog, and allows them to use your content or offer you new functionality.
  • Likes — Allows readers to show their appreciation for your posts with a single click.
  • Markdown — Allows you to compose posts and comments with links, lists, and other styles using regular characters and punctuation marks. Markdown is used by writers and bloggers who want a quick and easy way to write rich text without having to take their hands off the keyboard.
  • Malware detection – automatic malware scans that help protect your WP website with an automated resolution.
  • Notifications — Receive notifications for new comments and Likes in your admin bar and on your mobile device.
  • oEmbed Support — easily embed images, posts, and links from Facebook and Instagram.
  • Plugin Management — Allows easy site maintenance by choosing which plugins update automatically.
  • Post by Email — Publish posts using any mail client.
  • Protect — Protect your site from traditional and distributed brute force login attacks.
  • Publicize — Share new posts on social media networks automatically, or schedule future shares with custom messages.
  • Related Posts — Show contextual posts your visitors might be interested in reading after they’re done with their current post.
  • Secure Auth — Secure WordPress.com powered login used by millions of sites with optional 2FA (two factor authentication) for extra protection.
  • Security Scanner — Anti-virus and other threat detection for your WordPress site with automated resolution.
  • Search — A powerful replacement for WordPress’ built-in search, powered by Elasticsearch in the WordPress.com cloud
  • SEO Tools — Optimize your site for search engines by taking advantage of our SEO tools.
  • Sharing — Adds sharing buttons to your blog posts so readers can easily share your content.
  • Shortcode Embeds — Embed videos from YouTube and other media across the web.
  • Site Backup — Automatically back up your entire site. Duplicate, clone, migrate, transfer to a new host, and easily restore. Previously known as VaultPress.
  • Site Stats — View site visits by date, as well as most popular Pages and Posts.
  • Site Verification — Verify your site for use with Google, Bing, and Pinterest and their tools.
  • Sitemap — Generate a list of pages to be indexed by search engines like Google or Bing.
  • Spam Filtering — Automatically filter out spam comments, product reviews, or contact form submissions.
  • Subscriptions — Allow visitors to receive notifications of your latest posts or comments.
  • Tiled Galleries — Display your image galleries in three different styles: a rectangular mosaic, a square mosaic, and a circular grid.
  • Video Hosting — Upload videos for fast, reliable hosting on WordPress.com.
  • WP.me Shortlinks — Generate short and simple links to your content using the wp.me domain.
  • Widget Visibility — Configure widgets to appear only on specific pages.
  • WordPress.com Toolbar — The WordPress.com Toolbar feature replaces the default admin bar and offers quick links to the Reader, all your sites, your WordPress.com profile, and notifications.

= What Blocks does Jetpack include? =

Blocks are the individual sections that make up a page. There are many block types for you to use. Each block can be edited or moved independently of other blocks. The following is a list of all blocks currently available in Jetpack.

  • Ad Block – The Ad block allows you to insert a Jetpack Ad unit anywhere within the content of any post or page.
  • Business Hours Block – The Business Hours block allows you to display your business’s opening hours on your site.
  • Calendly Block – Jetpack’s Calendly block allows your visitors to schedule one-on-one appointments, group events, and team meetings directly from your website.
  • Contact Info Block – The Contact Info block lets you add your contact information (email address, physical address, phone number) to any post or page.
  • Donations Block – The Donations block lets you add a payment button to any post or page for a donation, tips, and other contributions, using Stripe as the payment gateway.
  • Eventbrite Block – With the Eventbrite block you can embed events on posts or pages.
  • Form Block – The Form block lets you add a form to your post or page.
  • GIF Block – The GIF block allows you to easily search for and embed an animated GIF image from Giphy directly into a post or page on your WordPress site.
  • Google Calendar Block – The Google Calendar block allows you to easily embed a Google Calendar into your post or page
  • Image Compare Block – The Image Compare Block allows you to display and compare the differences between two images side by side (or above and below) thanks to a slider.
  • Latest Instagram Posts Block – The Latest Instagram Posts Block lets you display your most recent images from Instagram on your site. The block update automatically updates when you post new images to Instagram.
  • Mailchimp Block – The Mailchimp block allows visitors to join your Mailchimp list.
  • Map Block – The Map Block allows you to add a map to any post or page on your site.
  • Markdown Block – With the Markdown block you can create formatted content using only regular characters and some punctuation marks.
  • OpenTable Block – With the OpenTable block, you can add a reservation form on posts or pages.
  • Pay with PayPal Block – Pay with PayPal lets you add a payment button to any post or page, and immediately start taking PayPal payments for physical products, digital goods, or a donation.
  • Payments Block – The Payments Block lets you add a payment button using Stripe as the payment gateway. It works for one-time and recurring payments.
  • Pinterest Block – The Pinterest block is the easiest way to embed Pinterest content to your site: it allows you to embed boards, profiles, and pins.
  • Podcast Player Block – Jetpack’s Podcast Player block allows you to easily show your visitors a listing of recent episodes from a podcast and play them on your website.
  • Related Posts Block – The Related Posts feature scans all of your posts’ contents, analyzes it, and uses that to display contextual posts your visitors might be interested in reading after they’re finished with the current post.
  • Repeat Visitor Block – The Repeat Visitor block enables the author to control the visibility of its nested block(s) depending on how many times a visitor has previously visited the page.
  • Revue Block – The Revue block creates a simple signup form for readers to opt-in to receive your newsletter.
  • Slideshow Block – The Slideshow block lets you insert an image slideshow into a post or page.
  • Star Rating Block – The Ratings block allows any site author to add reviews to the site.
  • Subscription Form Block – The Subscription Form Block allows you to insert a subscription form within the content area of any post or page, enabling your readers to get notifications when you publish new posts.
  • Tiled Gallery Block – With Tiled Galleries you can display your image galleries in four styles: tiled mosaic, circular grid, square tiles, and tiled columns.
  • Video Block – The Video block enhances the existing WordPress Video block and allows you to upload videos from your computer to be hosted on WordPress.com, rather than on your host’s servers.
  • WhatsApp Button Block – The WhatsAPP Button block will allow your customers to send them a message to enquire about their product or services, or ask for support. Clicking on the button will open WhatsApp and pre-fill the phone number and initial message.

Jetpack has also created extensions for some WordPress core blocks:

  • Social Previews – This extension of the Block Editor allows you to preview what your post / page will look like on search engines and social media.

= Do I need an SSL certificate? =

You don’t need an SSL Certificate to run Jetpack on your WordPress website. However, it’s recommended to integrate them both into your overall WordPress security strategy. An SSL certificate (Secure Sockets Layer certificate) creates a secure connection between your website and your site visitors’ browsers. It encrypts any data shared on your site — like addresses, emails, phone numbers, and credit card information — and protects that data from hackers.

If you don’t have an SSL certificate, your site will show a “not secure” warning on users’ browsers, which can reduce your legitimacy in their eyes. SSL certificates also have a positive impact on search engine rankings.

The process of setting up an SSL certificate will depend on your hosting provider. Some hosts include free certificates, while others charge annually.

= How does Jetpack work with WP Super Cache? =

WP Super Cache works by caching your WordPress pages as static HTML pages so that page requests, for an already cached page, do not need to be processed by the WordPress PHP scripts. Typically, most visitors of your site will view cached versions of the WordPress pages, so your server will have more processing power to serve an increased number of users.

Jetpack has an image CDN that works by caching and serving your WordPress images globally from its own servers. These plugins are both maintained by Automattic and work together to give you ultimate site speed.

Automattic actively develops Jetpack Boost to help you increase your website speed in ways beyond WP Super Cache. We recommend using Jetpack Boost instead of WP Super Cache.

= What version of PHP do I need? =

Sites must be built on PHP 7.2 or greater, but Jetpack always supports the latest version of PHP.

= Can Jetpack help my site comply with GDPR? =

Our Cookie and Consent Banner can help you comply with GDPR. The European Union’s ePrivacy Directive (often referred to as the ‘cookie law’) and General Data Protection Regulation (GDPR) place requirements on website owners and operators to provide information about, and gain consent for their use of cookies.

= Can Jetpack be used to transfer websites to a new host? =

Jetpack Backup can do a full website migration to a new host, migrate theme files and plugins to a new database, create full database backups, clone websites, repair broken websites by restoring older backups and allow you to easily set up a test site by creating a duplicate of your existing website.

== Screenshots ==

  1. Jetpack Security provides easy-to-use, comprehensive WordPress site security including backups, malware scanning, and spam protection.
  2. Save every change with real-time backups and get back online quickly with one-click restores.
  3. Automated malware scanning and one-click fixes keep your site one step ahead of security threats.
  4. Promote your newest posts, pages, and products across your social media channels.
  5. Incredibly powerful and customizable, help your visitors instantly find the right content – right when they need it.
  6. See what’s working with content performance metrics. Simple, yet powerful stats to grow your site.
  7. Stunning‑quality video with none of the hassle. Drag and drop videos through the WordPress editor and keep the focus on your content, not the ads.

== Changelog ==

14.4 – 2025-03-04

Enhancements

  • Connection: Disconnect all other users before disconnecting connection owner account.
  • Connection: Display connection status on Users page independent of the SSO module.
  • Custom Post Types: do not display testimonials and portfolios on block themes where they are not in use.
  • Dashboard: Display connection owner to all users.
  • External Media: Add external media modal on the Media Import page.
  • Forms: Add support for having multiple forms accross paginated pages.
  • Forms: Update field and button blocks to support contentOnly editing.
  • Forms block: Add number input.
  • Media Page: Enable the “Untangle Calypso” feature.
  • My Jetpack: Update the unowned section from a product grid to a product list.
  • Newsletter: Add footer widget section.
  • Newsletter: Add new newsletter widget.
  • Newsletter: Add newsletter widget header row behind a feature flag.
  • Newsletter: Add setting to hide category selection modal.
  • Post actions: Rename Copy action to Duplicate, which is clearer.
  • Social: Update the admin page to be used by Editors and Authors.
  • Subscriptions: Pre-select newsletter categories.
  • Tiled Gallery block: Add ability to link to custom URLs from each image.
  • VideoPress: Add title to the attachment details view.

Improved compatibility

  • Custom Content Types: Ensure feature works on Jetpack settings page without using module functionality.

Bug fixes

  • External Media: Fix the button size in the editor for Gutenberg 18 or below.
  • Fix Social toggles.
  • Forms: Ensure non-rendering fields to not trigger validation or show value in form submission response.
  • Forms: Fix 404 error when a user submits an invalid form with JavaScript disabled.
  • Forms: Fix block style variations not showing in the editor.
  • Forms: Fix invalid html IDs.
  • Forms: Hide fields without options.
  • Forms: Improve the styling of the separator block when placed inside the form block.
  • Geo Location: Remove support from default themes to prevent deprecation notice.
  • Gravatar Widget: Fix linked accounts not showing.
  • Newsletter: Fix post placement not displaying on certain block themes.
  • Publicize: Fix disconnect command not working.
  • Related Posts: Ensure images using the AVIF format are properly displayed.
  • Sharing: Fix possible warnings related to plugin compatibility.
  • Social Previews: Fix distorted image for Tumblr preview.
  • Stats: Fix a problem where count roles weren’t able to be updated.
  • Widget Visibility: Fix possible fatal errors for widgets using anonymous functions as callbacks.

See the previous changelogs here


=== ActivityPub ===
Contributors: automattic, pfefferle, mattwiebe, obenland, akirk, jeherve, mediaformat, nuriapena, cavalierlife, andremenrath
Tags: OStatus, fediverse, activitypub, activitystream
Requires at least: 6.4
Tested up to: 6.7
Stable tag: 5.5.0
Requires PHP: 7.2
License: MIT
License URI: http://opensource.org/licenses/MIT

The ActivityPub protocol is a decentralized social networking protocol based upon the ActivityStreams 2.0 data format.

== Description ==

Enter the fediverse with ActivityPub, broadcasting your blog to a wider audience! Attract followers, deliver updates, and receive comments from a diverse user base of ActivityPub-compliant platforms.

With the ActivityPub plugin installed, your WordPress blog itself function as a federated profile, along with profiles for each author. For instance, if your website is example.com, then the blog-wide profile can be found at @example.com@example.com, and authors like Jane and Bob would have their individual profiles at @jane@example.com and @bobz@example.com, respectively.

An example: I give you my Mastodon profile name: @pfefferle@mastodon.social. You search, see my profile, and hit follow. Now, any post I make appears in your Home feed. Similarly, with the ActivityPub plugin, you can find and follow Jane’s profile at @jane@example.com.

Once you follow Jane’s @jane@example.com profile, any blog post she crafts on example.com will land in your Home feed. Simultaneously, by following the blog-wide profile @example.com@example.com, you’ll receive updates from all authors.

Note: If no one follows your author or blog instance, your posts remain unseen. The simplest method to verify the plugin’s operation is by following your profile. If you possess a Mastodon profile, initiate by following your new one.

The plugin works with the following tested federated platforms, but there may be more that it works with as well:

Some things to note:

  1. The blog-wide profile is only compatible with sites with rewrite rules enabled. If your site does not have rewrite rules enabled, the author-specific profiles may still work.
  2. Many single-author blogs have chosen to turn off or redirect their author profile pages, usually via an SEO plugin like Yoast or Rank Math. This is usually done to avoid duplicate content with your blog’s home page. If your author page has been deactivated in this way, then ActivityPub author profiles won’t work for you. Instead, you can turn your author profile page back on, and then use the option in your SEO plugin to noindex the author page. This will still resolve duplicate content issues with search engines and will enable ActivityPub author profiles to work.
  3. Once ActivityPub is installed, only new posts going forward will be available in the fediverse. Likewise, even if you’ve been using ActivityPub for a while, anyone who follows your site will only see new posts you publish from that moment on. They will never see previously-published posts in their Home feed. This process is very similar to subscribing to a newsletter. If you subscribe to a newsletter, you will only receive future emails, but not the old archived ones. With ActivityPub, if someone follows your site, they will only receive new blog posts you publish from then on.

So what’s the process?

  1. Install the ActivityPub plugin.
  2. Go to the plugin’s settings page and adjust the settings to your liking. Click the Save button when ready.
  3. Make sure your blog’s author profile page is active if you are using author profiles.
  4. Go to Mastodon or any other federated platform, and search for your profile, and follow it. Your new profile will be in the form of either @your_username@example.com or @example.com@example.com, so that is what you’ll search for.
  5. On your blog, publish a new post.
  6. From Mastodon, check to see if the new post appears in your Home feed.

Note: It may take up to 15 minutes or so for the new post to show up in your federated feed. This is because the messages are sent to the federated platforms using a delayed cron. This avoids breaking the publishing process for those cases where users might have lots of followers. So please don’t assume that just because you didn’t see it show up right away that something is broken. Give it some time. In most cases, it will show up within a few minutes, and you’ll know everything is working as expected.

== Frequently Asked Questions ==

= tl;dr =

This plugin connects your WordPress blog to popular social platforms like Mastodon, making your posts more accessible to a wider audience. Once installed, your blog can be followed by users on these platforms, allowing them to receive your new posts in their feeds.

= What is “ActivityPub for WordPress” =

ActivityPub for WordPress extends WordPress with some Fediverse features, but it does not compete with platforms like Friendica or Mastodon. If you want to run a decentralized social network, please use Mastodon or GNU social.

= What if you are running your blog in a subdirectory? =

In order for webfinger to work, it must be mapped to the root directory of the URL on which your blog resides.

Apache

Add the following to the .htaccess file in the root directory:

RedirectMatch "^\/\.well-known/(webfinger|nodeinfo)(.*)$" /blog/.well-known/$1$2

Where ‘blog’ is the path to the subdirectory at which your blog resides.

Nginx

Add the following to the site.conf in sites-available:

location ~* /.well-known {
    allow all;
    try_files $uri $uri/ /blog/?$args;
}

Where ‘blog’ is the path to the subdirectory at which your blog resides.

If you are running your blog in a subdirectory, but have a different wp_siteurl, you don’t need the redirect, because the index.php will take care of that.

= What if you are running your blog behind a reverse proxy with Apache? =

If you are using a reverse proxy with Apache to run your host you may encounter that you are unable to have followers join the blog. This will occur because the proxy system rewrites the host headers to be the internal DNS name of your server, which the plugin then uses to attempt to sign the replies. The remote site attempting to follow your users is expecting the public DNS name on the replies. In these cases you will need to use the ‘ProxyPreserveHost On’ directive to ensure the external host name is passed to your internal host.

If you are using SSL between the proxy and internal host you may also need to SSLProxyCheckPeerName off if your internal host can not answer with the correct SSL name. This may present a security issue in some environments.

= Constants =

The plugin uses PHP Constants to enable, disable or change its default behaviour. Please use them with caution and only if you know what you are doing.

  • ACTIVITYPUB_REST_NAMESPACE – Change the default Namespace of the REST endpoint. Default: activitypub/1.0.
  • ACTIVITYPUB_EXCERPT_LENGTH – Change the length of the Excerpt. Default: 400.
  • ACTIVITYPUB_SHOW_PLUGIN_RECOMMENDATIONS – show plugin recommendations in the ActivityPub settings. Default: true.
  • ACTIVITYPUB_MAX_IMAGE_ATTACHMENTS – Change the number of attachments, that should be federated. Default: 3.
  • ACTIVITYPUB_HASHTAGS_REGEXP – Change the default regex to detect hashtext in a text. Default: (?:(?<=\s)|(?<=<p>)|(?<=<br>)|^)#([A-Za-z0-9_]+)(?:(?=\s|[[:punct:]]|$)).
  • ACTIVITYPUB_USERNAME_REGEXP – Change the default regex to detect @-replies in a text. Default: (?:([A-Za-z0-9\._-]+)@((?:[A-Za-z0-9_-]+\.)+[A-Za-z]+)).
  • ACTIVITYPUB_URL_REGEXP – Change the default regex to detect urls in a text. Default: (www.|http:|https:)+[^\s]+[\w\/].
  • ACTIVITYPUB_CUSTOM_POST_CONTENT – Change the default template for Activities. Default: <strong>[ap_title]</strong>\n\n[ap_content]\n\n[ap_hashtags]\n\n[ap_shortlink].
  • ACTIVITYPUB_AUTHORIZED_FETCH – Enable AUTHORIZED_FETCH.
  • ACTIVITYPUB_DISABLE_REWRITES – Disable auto generation of mod_rewrite rules. Default: false.
  • ACTIVITYPUB_DISABLE_INCOMING_INTERACTIONS – Block incoming replies/comments/likes. Default: false.
  • ACTIVITYPUB_DISABLE_OUTGOING_INTERACTIONS – Disable outgoing replies/comments/likes. Default: false.
  • ACTIVITYPUB_SHARED_INBOX_FEATURE – Enable the shared inbox. Default: false.
  • ACTIVITYPUB_SEND_VARY_HEADER – Enable to send the Vary: Accept header. Default: false.

= Where can you manage your followers? =

If you have activated the blog user, you will find the list of his followers in the settings under /wp-admin/options-general.php?page=activitypub&tab=followers.

The followers of a user can be found in the menu under “Users” -> “Followers” or under wp-admin/users.php?page=activitypub-followers-list.

For reasons of data protection, it is not possible to see the followers of other users.

== Screenshots ==

  1. The “Follow me”-Block in the Block-Editor
  2. The “Followers”-Block in the Block-Editor
  3. The “Federated Reply”-Block in the Block-Editor
  4. A “Federated Reply” in a Post
  5. A Blog-Profile on Mastodon

== Changelog ==

5.5.0 – 2025-03-19

Added

  • Added “Enable Mastodon Apps” and “Event Bridge for ActivityPub” to the recommended plugins section.
  • Added Constants to the Site-Health debug informations.
  • Development environment: add Changelogger tool to environment dependencies.
  • Development environment: allow contributors to specify a changelog entry directly from their Pull Request description.
  • Documentation for migrating from a Mastodon instance to WordPress.
  • Support for sending Activities to ActivityPub Relays, to improve discoverability of public content.

Changed

  • Documentation: expand Pull Request process docs, and mention the new changelog process as well as the updated release process.
  • Don’t redirect @-name URLs to trailing slashed versions
  • Improved and simplified Query code.
  • Improved readability for actor mode setting.
  • Improved title case for NodeInfo settings.
  • Introduced utility function to determine actor type based on user ID.
  • Outbox items only get sent to followers when there are any.
  • Restricted modifications to settings if they are predefined as constants.
  • The Welcome page now uses WordPress’s Settings API and the classic design of the WP Admin.
  • Uses two-digit version numbers in Outbox and NodeInfo responses.

Removed

  • Our version of sanitize_url() was unused—use Core’s sanitize_url() instead.

Fixed

  • Ensured that Query::get_object_id() returns an ID instead of an Object.
  • Fix a fatal error in the Preview when a post contains no (hash)tags.
  • Fixed an issue with the Content Carousel and Blog Posts block: https://github.com/Automattic/wp-calypso/issues/101220
  • Fixed default value for activitypub_authorized_fetch option.
  • Follow-Me blocks now show the correct avatar on attachment pages.
  • Images with the correct aspect ratio no longer get sent through the crop step again.
  • No more PHP warnings when a header image gets cropped.
  • PHP warnings when trying to process empty tags or image blocks without ID attributes.
  • Properly re-added support for Update and Delete Announcements.
  • Updates to certain user meta fields did not trigger an Update activity.
  • When viewing Reply Contexts, we’ll now attribute the post to the blog user when the post author is disabled.

5.4.1 – 2025-03-04

Fixed

  • Fixed transition handling of posts to ensure that Create and Update activities are properly processed.
  • Show “full content” preview even if post is in still in draft mode.

5.4.0 – 2025-03-03

Added

  • Upgrade script to fix Follower json representations with unescaped backslashes.
  • Centralized place for sanitization functions.

Changed

  • Bumped minimum required WordPress version to 6.4.
  • Use a later hook for Posts to get published to the Outbox, to get sure all post_metas and taxonomys are set stored properly.
  • Use webfinger as author email for comments from the Fediverse.
  • Remove the special handling of comments from Enable Mastodon Apps.

Fixed

  • Do not redirect /@username URLs to the API any more, to improve AUTHORIZED_FETCH handling.

5.3.2 – 2025-02-27

Fixed

  • Remove activitypub_reply_block filter after Activity-JSON is rendered, to not affect the HTML representation.
  • Remove render_block_core/embed filter after Activity-JSON is rendered, to not affect the HTML representation.

5.3.1 – 2025-02-26

Fixed

  • Blog profile settings can be saved again without errors.
  • Followers with backslashes in their descriptions no longer break their actor representation.

5.3.0 – 2025-02-25

Added

  • A fallback Note for Article objects to improve previews on services that don’t support Articles yet.
  • A reply context for Posts and Comments to allow relying parties to discover the whole conversation of a thread.
  • Setting to adjust the number of days Outbox items are kept before being purged.
  • Failed Follower notifications for Outbox items now get retried for two more times.
  • Undo API for Outbox items.
  • Metadata to New Follower E-Mail.
  • Allow Activities on URLs instead of requiring Activity-Objects. This is useful especially for sending Announces and Likes.
  • Outbox Activity IDs can now be resolved when the ActivityPub `Accept header is used.
  • Support for incoming Move activities and ensure that followed persons are updated accordingly.
  • Labels to add context to visibility settings in the block editor.
  • WP CLI command to reschedule Outbox-Activities.

Changed

  • Outbox now precesses the first batch of followers right away to avoid delays in processing new Activities.
  • Post bulk edits no longer create Outbox items, unless author or post status change.
  • Properly process Update activities on profiles and ensure all properties of a followed person are updated accordingly.
  • Outbox processing accounts for shared inboxes again.
  • Improved check for ?activitypub query-var.
  • Rewrite rules: be more specific in author rewrite rules to avoid conflicts on sites that use the “@author” pattern in their permalinks.
  • Deprecate the activitypub_post_locale filter in favor of the activitypub_locale filter.

Fixed

  • The Outbox purging routine no longer is limited to deleting 5 items at a time.
  • Ellipses now display correctly in notification emails for Likes and Reposts.
  • Send Update-Activity when “Actor-Mode” is changed.
  • Added delay to Announce Activity from the Blog-Actor, to not have race conditions.
  • Actor validation in several REST API endpoints.
  • Bring back the activitypub_post_locale filter to allow overriding the post’s locale.

5.2.0 – 2025-02-13

Added

  • Batch Outbox-Processing.
  • Outbox processed events get logged in Stream and show any errors returned from inboxes.
  • Outbox items older than 6 months will be purged to avoid performance issues.
  • REST API endpoints for likes and shares.

Changed

  • Increased probability of Outbox items being processed with the correct author.
  • Enabled querying of Outbox posts through the REST API to improve troubleshooting and debugging.
  • Updated terminology to be client-neutral in the Federated Reply block.

Fixed

  • Fixed an issue where the outbox could not send object types other than Base_Object (introduced in 5.0.0).
  • Enforce 200 status header for valid ActivityPub requests.
  • object_id_to_comment returns a commment now, even if there are more than one matching comment in the DB.
  • Integration of content-visibility setup in the block editor.
  • Update CLI commands to the new scheduler refactorings.
  • Do not add an audience to the Actor-Profiles.
  • Activity::set_object falsely overwrites the Activity-ID with a default.

5.1.0 – 2025-02-06

Added

  • Cleanup of option values when the plugin is uninstalled.
  • Third-party plugins can filter settings tabs to add their own settings pages for ActivityPub.
  • Show ActivityPub preview in row actions when Block Editor is enabled but not used for the post type.

Changed

  • Manually granting activitypub cap no longer requires the receiving user to have publish_post.
  • Allow omitting replies in ActivityPub representations instead of setting them as empty.
  • Allow Base Transformer to handle WP_Term objects for transformation.
  • Improved Query extensibility for third party plugins.

Fixed

  • Negotiation of ActivityPub requests for custom post types when queried by the ActivityPub ID.
  • Avoid PHP warnings when using Debug mode and when the actor is not set.
  • No longer creates Outbox items when importing content/users.
  • Fix NodeInfo 2.0 URL to be HTTP instead of HTTPS.

5.0.0 – 2025-02-03

Changed

  • Improved content negotiation and AUTHORIZED_FETCH support for third-party plugins.
  • Moved password check to is_post_disabled function.

Fixed

  • Handle deletes from remote servers that leave behind an accessible Tombstone object.
  • No longer parses tags for post types that don’t support Activitypub.
  • rel attribute will now contain no more than one “me” value.

See full Changelog on GitHub.

== Upgrade Notice ==

= 5.4.0 =

Note: This update requires WordPress 6.4+. Please ensure your site meets this requirement before upgrading.

== Installation ==

Follow the normal instructions for installing WordPress plugins.

= Automatic Plugin Installation =

To add a WordPress Plugin using the built-in plugin installer:

  1. Go to Plugins > Add New.
  2. Type “activitypub” into the Search Plugins box.
  3. Find the WordPress Plugin you wish to install.
    1. Click Details for more information about the Plugin and instructions you may wish to print or save to help setup the Plugin.
    2. Click Install Now to install the WordPress Plugin.
  4. The resulting installation screen will list the installation as successful or note any problems during the install.
  5. If successful, click Activate Plugin to activate it, or Return to Plugin Installer for further actions.

= Manual Plugin Installation =

There are a few cases when manually installing a WordPress Plugin is appropriate.

  • If you wish to control the placement and the process of installing a WordPress Plugin.
  • If your server does not permit automatic installation of a WordPress Plugin.
  • If you want to try the latest development version.

Installation of a WordPress Plugin manually requires FTP familiarity and the awareness that you may put your site at risk if you install a WordPress Plugin incompatible with the current version or from an unreliable source.

Backup your site completely before proceeding.

To install a WordPress Plugin manually:

  • Download your WordPress Plugin to your desktop.
  • If downloaded as a zip archive, extract the Plugin folder to your desktop.
  • With your FTP program, upload the Plugin folder to the wp-content/plugins folder in your WordPress directory online.
  • Go to Plugins screen and find the newly uploaded Plugin in the list.
  • Click Activate to activate it.
<?php
/**
 * Plugin Name: ActivityPub
 * Plugin URI: https://github.com/Automattic/wordpress-activitypub
 * Description: The ActivityPub protocol is a decentralized social networking protocol based upon the ActivityStreams 2.0 data format.
 * Version: 5.5.0
 * Author: Matthias Pfefferle & Automattic
 * Author URI: https://automattic.com/
 * License: MIT
 * License URI: http://opensource.org/licenses/MIT
 * Requires PHP: 7.2
 * Text Domain: activitypub
 * Domain Path: /languages
 *
 * @package Activitypub
 */

namespace Activitypub;

use WP_CLI;

\define( 'ACTIVITYPUB_PLUGIN_VERSION', '5.5.0' );

// Plugin related constants.
\define( 'ACTIVITYPUB_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
\define( 'ACTIVITYPUB_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
\define( 'ACTIVITYPUB_PLUGIN_FILE', ACTIVITYPUB_PLUGIN_DIR . basename( __FILE__ ) );
\define( 'ACTIVITYPUB_PLUGIN_URL', plugin_dir_url( __FILE__ ) );

require_once __DIR__ . '/includes/class-autoloader.php';
require_once __DIR__ . '/includes/compat.php';
require_once __DIR__ . '/includes/functions.php';
require_once __DIR__ . '/includes/constants.php';
require_once __DIR__ . '/integration/load.php';

Autoloader::register_path( __NAMESPACE__, __DIR__ . '/includes' );

/**
 * Initialize REST routes.
 */
function rest_init() {
	Rest\Server::init();
	Rest\Post::init();
	( new Rest\Actors_Controller() )->register_routes();
	( new Rest\Actors_Inbox_Controller() )->register_routes();
	( new Rest\Application_Controller() )->register_routes();
	( new Rest\Collections_Controller() )->register_routes();
	( new Rest\Comments_Controller() )->register_routes();
	( new Rest\Followers_Controller() )->register_routes();
	( new Rest\Following_Controller() )->register_routes();
	( new Rest\Inbox_Controller() )->register_routes();
	( new Rest\Interaction_Controller() )->register_routes();
	( new Rest\Moderators_Controller() )->register_routes();
	( new Rest\Outbox_Controller() )->register_routes();
	( new Rest\Replies_Controller() )->register_routes();
	( new Rest\Webfinger_Controller() )->register_routes();

	// Load NodeInfo endpoints only if blog is public.
	if ( is_blog_public() ) {
		( new Rest\Nodeinfo_Controller() )->register_routes();
	}
}
\add_action( 'rest_api_init', __NAMESPACE__ . '\rest_init' );

/**
 * Initialize plugin.
 */
function plugin_init() {
	\add_action( 'init', array( __NAMESPACE__ . '\Migration', 'init' ) );
	\add_action( 'init', array( __NAMESPACE__ . '\Activitypub', 'init' ) );
	\add_action( 'init', array( __NAMESPACE__ . '\Dispatcher', 'init' ) );
	\add_action( 'init', array( __NAMESPACE__ . '\Handler', 'init' ) );
	\add_action( 'init', array( __NAMESPACE__ . '\Hashtag', 'init' ) );
	\add_action( 'init', array( __NAMESPACE__ . '\Mention', 'init' ) );
	\add_action( 'init', array( __NAMESPACE__ . '\Scheduler', 'init' ) );
	\add_action( 'init', array( __NAMESPACE__ . '\Comment', 'init' ) );
	\add_action( 'init', array( __NAMESPACE__ . '\Link', 'init' ) );
	\add_action( 'init', array( __NAMESPACE__ . '\Mailer', 'init' ) );

	if ( site_supports_blocks() ) {
		\add_action( 'init', array( __NAMESPACE__ . '\Blocks', 'init' ) );
	}

	$debug_file = __DIR__ . '/includes/debug.php';
	if ( \WP_DEBUG && file_exists( $debug_file ) && is_readable( $debug_file ) ) {
		require_once $debug_file;
		Debug::init();
	}
}
\add_action( 'plugins_loaded', __NAMESPACE__ . '\plugin_init' );

/**
 * Initialize plugin admin.
 */
function plugin_admin_init() {
	// Menus are registered before `admin_init`, because of course they are.
	\add_action( 'admin_menu', array( __NAMESPACE__ . '\WP_Admin\Menu', 'admin_menu' ) );
	\add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Admin', 'init' ) );
	\add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Health_Check', 'init' ) );
	\add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Settings', 'init' ) );
	\add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Settings_Fields', 'init' ) );
	\add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Welcome_Fields', 'init' ) );
	\add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Blog_Settings_Fields', 'init' ) );
	\add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\User_Settings_Fields', 'init' ) );
}
\add_action( 'plugins_loaded', __NAMESPACE__ . '\plugin_admin_init' );

\register_activation_hook(
	__FILE__,
	array(
		__NAMESPACE__ . '\Activitypub',
		'activate',
	)
);

\register_deactivation_hook(
	__FILE__,
	array(
		__NAMESPACE__ . '\Activitypub',
		'deactivate',
	)
);

\register_uninstall_hook(
	__FILE__,
	array(
		__NAMESPACE__ . '\Activitypub',
		'uninstall',
	)
);


/**
 * `get_plugin_data` wrapper.
 *
 * @deprecated 4.2.0 Use `get_plugin_data` instead.
 *
 * @param array $default_headers Optional. The default plugin headers. Default empty array.
 * @return array The plugin metadata array.
 */
function get_plugin_meta( $default_headers = array() ) {
	_deprecated_function( __FUNCTION__, '4.2.0', 'get_plugin_data' );

	if ( ! $default_headers ) {
		$default_headers = array(
			'Name'        => 'Plugin Name',
			'PluginURI'   => 'Plugin URI',
			'Version'     => 'Version',
			'Description' => 'Description',
			'Author'      => 'Author',
			'AuthorURI'   => 'Author URI',
			'TextDomain'  => 'Text Domain',
			'DomainPath'  => 'Domain Path',
			'Network'     => 'Network',
			'RequiresWP'  => 'Requires at least',
			'RequiresPHP' => 'Requires PHP',
			'UpdateURI'   => 'Update URI',
		);
	}

	return \get_file_data( __FILE__, $default_headers, 'plugin' );
}

/**
 * Plugin Version Number used for caching.
 *
 * @deprecated 4.2.0 Use constant ACTIVITYPUB_PLUGIN_VERSION directly.
 */
function get_plugin_version() {
	_deprecated_function( __FUNCTION__, '4.2.0', 'ACTIVITYPUB_PLUGIN_VERSION' );

	return ACTIVITYPUB_PLUGIN_VERSION;
}

// Check for CLI env, to add the CLI commands.
if ( defined( 'WP_CLI' ) && WP_CLI ) {
	WP_CLI::add_command(
		'activitypub',
		'\Activitypub\Cli',
		array(
			'shortdesc' => 'ActivityPub related commands to manage plugin functionality and the federation of posts and comments.',
		)
	);
}
Last Updated: 2025년 03월 21일Categories: 미분류Views: 116

4 Comments

  1. Jiwoon Kim 🇰🇷's avatar
    Jiwoon Kim 🇰🇷 2025년 03월 21일 at 오전 5:05
  2. 김지운's avatar
    김지운 2025년 03월 21일 at 오전 5:02

댓글 남기기