Loading...
Loading...
PHP coding standards and WordPress patterns for ActivityPub plugin. Use when writing PHP code, creating classes, implementing WordPress hooks, or structuring plugin files.
npx skill4agent add automattic/wordpress-activitypub code-styleclass-{name}.php # Regular classes.
trait-{name}.php # Traits.
interface-{name}.php # Interfaces.namespace Activitypub;
namespace Activitypub\Transformer;
namespace Activitypub\Collection;
namespace Activitypub\Handler;
namespace Activitypub\Activity;
namespace Activitypub\Rest;'activitypub'\__( 'Text', 'activitypub' );
\_e( 'Text', 'activitypub' );\get_option()\add_action()docs/php-coding-standards.mddocs/php-class-structure.mdincludes/
├── class-*.php # Core classes.
├── activity/ # Activity type classes.
├── collection/ # Collection classes.
├── handler/ # Activity handlers.
├── rest/ # REST API endpoints.
├── transformer/ # Content transformers.
└── wp-admin/ # Admin functionality.
integration/ # Third-party integrations (root level).includes/transformer/class-base.phpnamespace Activitypub\Transformer;
class Custom extends Base {
/**
* Transform object to ActivityPub format.
*
* @return array The ActivityPub representation.
*/
public function transform() {
$object = parent::transform();
// Custom transformation logic.
return $object;
}
}includes/transformer/class-post.phpincludes/transformer/class-comment.phpincludes/transformer/class-event.phpincludes/handler/class-follow.phpincludes/handler/class-create.phpincludes/handler/class-delete.phpincludes/handler/class-like.phpincludes/collection/class-followers.phpincludes/collection/class-following.phpACTIVITYPUB_REST_NAMESPACEincludes/rest/class-actors-controller.phpincludes/rest/class-inbox-controller.phpincludes/rest/class-outbox-controller.phpincludes/rest/class-followers-controller.php// Get remote actor metadata.
$metadata = get_remote_metadata_by_actor( $actor_url );
// Convert ActivityPub object to URI string.
$uri = object_to_uri( $object );
// Enrich content with callbacks.
$content = enrich_content_data( $content, $pattern, $callback );
// Resolve WebFinger handle to actor URL.
$resource = Webfinger::resolve( $handle );
// Get user's ActivityPub actor URL.
$actor_url = get_author_posts_url( $user_id );
// Check if a post type is enabled for ActivityPub.
$enabled = \is_post_type_enabled( $post_type );includes/class-activitypub.phpincludes/class-dispatcher.phpincludes/class-scheduler.phpincludes/class-signature.phpincludes/activity/class-activity.phpincludes/activity/class-follow.phpincludes/activity/class-undo.phpintegration/class-woocommerce.phpintegration/class-buddypress.phpintegration/class-jetpack.phpclass Feature {
/**
* Initialize the class.
*/
public static function init() {
\add_action( 'init', array( self::class, 'register' ) );
\add_filter( 'activitypub_activity_object', array( self::class, 'filter' ) );
}
}class Manager {
private static $instance = null;
public static function get_instance() {
if ( null === self::$instance ) {
self::$instance = new self();
}
return self::$instance;
}
private function __construct() {
$this->init();
}
}\do_action( 'activitypub_before_send_activity', $activity );
\do_action( 'activitypub_after_send_activity', $activity, $response );
\do_action( 'activitypub_inbox_received', $activity );$activity = \apply_filters( 'activitypub_activity_object', $activity, $post );
$content = \apply_filters( 'activitypub_the_content', $content, $post );
$actor = \apply_filters( 'activitypub_actor_data', $actor, $user_id );'unreleased'/**
* New function description.
*
* @since unreleased
*/
function new_feature() {}
/**
* Old function.
*
* @deprecated unreleased Use new_feature() instead.
*/
function old_feature() {}\_deprecated_function( __METHOD__, 'unreleased', 'New_Class::new_method' );
\_deprecated_argument( __METHOD__, 'unreleased', \esc_html__( 'Message', 'activitypub' ) );
\_doing_it_wrong( __METHOD__, \esc_html__( 'Message', 'activitypub' ), 'unreleased' );'5.1.0''unreleased'