associate comments to back compat post
This commit is contained in:
parent
b1f64f6828
commit
5dbf365c58
2 changed files with 39 additions and 2 deletions
|
@ -356,6 +356,43 @@ function url_to_authorid( $url ) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verify if in_replyto_url is a local Post,
|
||||||
|
* (For backwards compatibility)
|
||||||
|
*
|
||||||
|
* @param string activitypub object id URI
|
||||||
|
* @return int post_id
|
||||||
|
*/
|
||||||
|
function url_to_postid( $in_replyto_url ) {
|
||||||
|
if ( !empty( $in_replyto_url ) ) {
|
||||||
|
$tentative_postid = \url_to_postid( $in_replyto_url );
|
||||||
|
if ( is_null( $tentative_postid ) ) {
|
||||||
|
$post_types = \get_option( 'activitypub_support_post_types', array( 'post', 'page' ) );
|
||||||
|
$query_args = array(
|
||||||
|
'type' => $post_types,
|
||||||
|
'meta_query' => array(
|
||||||
|
array(
|
||||||
|
'key' => '_activitypub_permalink_compat',
|
||||||
|
'value' => $in_replyto_url,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
$posts_query = new \WP_Query();
|
||||||
|
$posts = $posts_query->query( $query_args );
|
||||||
|
$found_post_ids = array();
|
||||||
|
if ( $posts ) {
|
||||||
|
foreach ( $posts as $post ) {
|
||||||
|
$found_post_ids[] = $post->comment_ID;
|
||||||
|
}
|
||||||
|
return $found_post_ids[0];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return $tentative_postid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Verify if in_replyto_url is a local comment,
|
* Verify if in_replyto_url is a local comment,
|
||||||
* Or if it is a previously received remote comment
|
* Or if it is a previously received remote comment
|
||||||
|
|
|
@ -415,7 +415,7 @@ class Inbox {
|
||||||
$audience = \Activitypub\get_audience( $object );
|
$audience = \Activitypub\get_audience( $object );
|
||||||
|
|
||||||
if ( isset( $object['object']['inReplyTo'] ) ) {
|
if ( isset( $object['object']['inReplyTo'] ) ) {
|
||||||
$comment_parent_id = \Activitypub\url_to_commentid( \esc_url_raw( $object['object']['inReplyTo'] ) );
|
$comment_parent_id = \Activitypub\url_to_commentid( \esc_url_raw( $object['object']['inReplyTo'] ) ); // Only checks ap_comment_id for local or source_url for remote
|
||||||
|
|
||||||
if ( ! is_null( $comment_parent_id ) ) {
|
if ( ! is_null( $comment_parent_id ) ) {
|
||||||
//inReplyTo a known local comment
|
//inReplyTo a known local comment
|
||||||
|
@ -423,7 +423,7 @@ class Inbox {
|
||||||
$comment_post_id = $comment_parent->comment_post_ID;
|
$comment_post_id = $comment_parent->comment_post_ID;
|
||||||
} else {
|
} else {
|
||||||
//inReplyTo a known post
|
//inReplyTo a known post
|
||||||
$comment_post_id = \url_to_postid( $object['object']['inReplyTo'] );
|
$comment_post_id = \Activitypub\url_to_postid( $object['object']['inReplyTo'] );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue