Tribe__Events__Linked_Posts::link_post( int $target_post_id, int $subject_post_id )
Links two posts together
Contents
Parameters
- $target_post_id
-
(int) (Required) Post ID of post to add linked post to
- $subject_post_id
-
(int) (Required) Post ID of post to add as a linked post to the target
Return
(int|false) The result of add_metadata() - the meta ID on success, false on failure.
Source
File: src/Tribe/Linked_Posts.php
public function link_post( $target_post_id, $subject_post_id ) {
$linked_posts = false;
$target_post_type = get_post_type( $target_post_id );
$subject_post_type = get_post_type( $subject_post_id );
if (
Tribe__Events__Main::POSTTYPE !== $target_post_type
&& Tribe__Events__Main::POSTTYPE === $subject_post_type
) {
// swap the post IDs and post types around so we are assigning in the correct direction
$temp_post_id = $target_post_id;
$target_post_id = $subject_post_id;
$subject_post_id = $temp_post_id;
$temp_post_type = $target_post_type;
$target_post_type = $subject_post_type;
$subject_post_type = $temp_post_type;
}
if ( ! $this->is_linked_post_type( $subject_post_type ) ) {
return $linked_posts;
}
$subject_meta_key = $this->get_meta_key( $subject_post_type );
$target_link_posts = get_post_meta( $target_post_id, $subject_meta_key );
// if the subject isn't in the target's linked posts, add it
if ( ! in_array( $subject_post_id, $target_link_posts ) ) {
// if multiples are not allowed, make sure we remove all linked posts of that type before we
// link the new one
if ( ! $this->allow_multiple( $subject_post_type ) ) {
foreach ( $target_link_posts as $attached_post ) {
$this->unlink_post( $target_post_id, $attached_post );
}
}
// add the subject to the target
$linked_posts = add_metadata( 'post', $target_post_id, $subject_meta_key, $subject_post_id );
}
if ( $linked_posts ) {
/**
* Fired after two posts have been linked
*
* @param int Post ID of post to add linked post to
* @param int Post ID of post to add as a linked post to the target
*/
do_action( 'tribe_events_link_post', $target_post_id, $subject_post_id );
}
return $linked_posts;
}
Changelog
| Version | Description |
|---|---|
| 4.2 | Introduced. |