45 lines
971 B
PHP
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;
|
|
}
|
|
}
|