How to programmatically connect content

If you want to connect content programmatically across sites you need to know the IDs of the posts you want to connect beforehand. So let say that we have 3 sites with site ids 1, 2 and 3 and we want to connect a post with the following post ids on each site:

post id 42 in site 1
post id 123 in site 2
post id 321 in site 3

Following code snippet creates the $contentIds array of key value pairs with site id as key and post id as value. Afterwards we pass it to the createRelationship method as first parameter to connect the content.

$api = \Inpsyde\MultilingualPress\resolve(
\Inpsyde\MultilingualPress\Framework\Api\ContentRelations::class
);

$contentIds = [
1 => 42,
2 => 123,
3 => 321,
];

$api->createRelationship($contentIds, 'post');

In the example above, the context is set to “post”, which represents the relationship for posts or custom post types. However, you can also use “term” as the context for creating relationships between taxonomy terms like categories or tags, and “comment” for connecting comments across translations.