45 lines
971 B
PHP

<?php
/**
* WPML integration.
*
* @package Activitypub
*/
namespace Activitypub\Integration;
/**
* Compatibility with the WPML Multilingual CMS plugin.
*
* @see https://wpml.org/
*/
class WPML {
/**
* Initialize the class, registering WordPress hooks.
*/
public static function init() {
\add_filter( 'activitypub_locale', array( self::class, 'get_wpml_post_locale' ), 10, 2 );
}
/**
* Fetch the post locale from the WPML post data.
*
* @param string $lang The language code.
* @param int $post The post object.
*
* @return string The modified language code.
*/
public static function get_wpml_post_locale( $lang, $post ) {
if ( ! $post instanceof \WP_Post ) {
return $lang;
}
$language_details = apply_filters( 'wpml_post_language_details', null, $post->ID );
if ( is_array( $language_details ) && isset( $language_details['language_code'] ) ) {
$lang = $language_details['language_code'];
}
return $lang;
}
}