Add setting to enable AP for different (public) Post-Types
For example PodLove "Episodes". fixes #65
This commit is contained in:
parent
de62e95102
commit
2e010c8ad5
3 changed files with 34 additions and 3 deletions
|
@ -16,8 +16,12 @@ class Activitypub {
|
||||||
\add_action( 'init', array( '\Activitypub\Activitypub', 'add_rewrite_endpoint' ) );
|
\add_action( 'init', array( '\Activitypub\Activitypub', 'add_rewrite_endpoint' ) );
|
||||||
\add_filter( 'pre_get_avatar_data', array( '\Activitypub\Activitypub', 'pre_get_avatar_data' ), 11, 2 );
|
\add_filter( 'pre_get_avatar_data', array( '\Activitypub\Activitypub', 'pre_get_avatar_data' ), 11, 2 );
|
||||||
|
|
||||||
\add_post_type_support( 'post', 'activitypub' );
|
// Add support for ActivityPub to custom post types
|
||||||
\add_post_type_support( 'page', 'activitypub' );
|
$post_types = \get_option( 'activitypub_support_post_types', array( 'post', 'page' ) ) ? \get_option( 'activitypub_support_post_types', array( 'post', 'page' ) ) : array();
|
||||||
|
|
||||||
|
foreach ( $post_types as $post_type ) {
|
||||||
|
\add_post_type_support( $post_type, 'activitypub' );
|
||||||
|
}
|
||||||
|
|
||||||
\add_action( 'transition_post_status', array( '\Activitypub\Activitypub', 'schedule_post_activity' ), 10, 3 );
|
\add_action( 'transition_post_status', array( '\Activitypub\Activitypub', 'schedule_post_activity' ), 10, 3 );
|
||||||
}
|
}
|
||||||
|
@ -89,7 +93,7 @@ class Activitypub {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Marks the post as "no webmentions sent yet"
|
* Schedule Activities
|
||||||
*
|
*
|
||||||
* @param int $post_id
|
* @param int $post_id
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -98,6 +98,14 @@ class Admin {
|
||||||
'default' => 0,
|
'default' => 0,
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
\register_setting(
|
||||||
|
'activitypub', 'activitypub_support_post_types', array(
|
||||||
|
'type' => 'string',
|
||||||
|
'description' => \esc_html__( 'Enable ActivityPub support for post types', 'activitypub' ),
|
||||||
|
'show_in_rest' => true,
|
||||||
|
'default' => array( 'post', 'pages' ),
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function add_settings_help_tab() {
|
public static function add_settings_help_tab() {
|
||||||
|
|
|
@ -50,6 +50,25 @@
|
||||||
</p>
|
</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th scope="row"><?php \esc_html_e( 'Supported post types', 'activitypub' ); ?></th>
|
||||||
|
<td>
|
||||||
|
<fieldset>
|
||||||
|
<?php \esc_html_e( 'Enable ActivityPub support for the following post types:', 'activitypub' ); ?>
|
||||||
|
|
||||||
|
<?php $post_types = \get_post_types( array( 'public' => true ), 'objects' ); ?>
|
||||||
|
<?php $support_post_types = \get_option( 'activitypub_support_post_types', array( 'post', 'page' ) ) ? \get_option( 'activitypub_support_post_types', array( 'post', 'page' ) ) : array(); ?>
|
||||||
|
<ul>
|
||||||
|
<?php foreach ( $post_types as $post_type ) { ?>
|
||||||
|
<li>
|
||||||
|
<input type="checkbox" id="activitypub_support_post_types" name="activitypub_support_post_types[]" value="<?php echo \esc_attr( $post_type->name ); ?>" <?php echo \checked( true, in_array( $post_type->name, $support_post_types, true ) ); ?> />
|
||||||
|
<label for="<?php echo \esc_attr( $post_type->name ); ?>"><?php echo \esc_html( $post_type->label ); ?></label>
|
||||||
|
</li>
|
||||||
|
<?php } ?>
|
||||||
|
</ul>
|
||||||
|
</fieldset>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">
|
<th scope="row">
|
||||||
<?php \esc_html_e( 'Hashtags', 'activitypub' ); ?>
|
<?php \esc_html_e( 'Hashtags', 'activitypub' ); ?>
|
||||||
|
|
Loading…
Reference in a new issue