55 lines
1.4 KiB
PHP

<?php
/**
* Jetpack integration file.
*
* @package Activitypub
*/
namespace Activitypub\Integration;
use Activitypub\Comment;
/**
* Jetpack integration class.
*/
class Jetpack {
/**
* Initialize the class, registering WordPress hooks.
*/
public static function init() {
\add_filter( 'jetpack_sync_post_meta_whitelist', array( self::class, 'add_sync_meta' ) );
\add_filter( 'jetpack_json_api_comment_types', array( self::class, 'add_comment_types' ) );
\add_filter( 'jetpack_api_include_comment_types_count', array( self::class, 'add_comment_types' ) );
}
/**
* Add ActivityPub meta keys to the Jetpack sync allow list.
*
* @param array $allow_list The Jetpack sync allow list.
*
* @return array The Jetpack sync allow list with ActivityPub meta keys.
*/
public static function add_sync_meta( $allow_list ) {
if ( ! is_array( $allow_list ) ) {
return $allow_list;
}
$activitypub_meta_keys = array(
'_activitypub_user_id',
'_activitypub_inbox',
'_activitypub_actor_json',
);
return \array_merge( $allow_list, $activitypub_meta_keys );
}
/**
* Add custom comment types to the list of comment types.
*
* @param array $comment_types Default comment types.
* @return array
*/
public static function add_comment_types( $comment_types ) {
return array_unique( \array_merge( $comment_types, Comment::get_comment_type_slugs() ) );
}
}