public function __construct(&$polylang) { parent::__construct($polylang); // widgets languages filter add_action('in_widget_form', array(&$this, 'in_widget_form'), 10, 3); add_filter('widget_update_callback', array(&$this, 'widget_update_callback'), 10, 4); // language management for users add_action('personal_options_update', array(&$this, 'personal_options_update')); add_action('edit_user_profile_update', array(&$this, 'personal_options_update')); add_action('personal_options', array(&$this, 'personal_options')); // ugrades languages files after a core upgrade (timing is important) // FIXME private action ? is there a better way to do this ? add_action('_core_updated_successfully', array(&$this, 'upgrade_languages'), 1); // since WP 3.3 }
public function __construct(&$polylang) { parent::__construct($polylang); // widgets languages filter add_action('in_widget_form', array(&$this, 'in_widget_form'), 10, 3); add_filter('widget_update_callback', array(&$this, 'widget_update_callback'), 10, 4); // language management for users add_action('personal_options_update', array(&$this, 'personal_options_update')); add_action('edit_user_profile_update', array(&$this, 'personal_options_update')); add_action('personal_options', array(&$this, 'personal_options')); // ugrades languages files after a core upgrade ( timing is important ) // backward compatibility WP < 4.0 *AND* Polylang < 1.6 add_action('_core_updated_successfully', array(&$this, 'upgrade_languages'), 1); // since WP 3.3 // upgrades plugins and themes translations files add_filter('themes_update_check_locales', array(&$this, 'update_check_locales')); add_filter('plugins_update_check_locales', array(&$this, 'update_check_locales')); }
public function __construct(&$polylang) { parent::__construct($polylang); // filters the WordPress locale add_filter('locale', array(&$this, 'get_locale')); // translates page for posts and page on front add_filter('option_page_on_front', 'pll_get_post'); add_filter('option_page_for_posts', 'pll_get_post'); // filter sticky posts by current language add_filter('option_sticky_posts', array(&$this, 'option_sticky_posts')); // adds cache domain when querying terms add_filter('get_terms_args', array(&$this, 'get_terms_args')); // filters categories and post tags by language add_filter('terms_clauses', array(&$this, 'terms_clauses'), 10, 3); // rewrites archives, next and previous post links to filter them by language foreach (array('getarchives', 'get_previous_post', 'get_next_post') as $filter) { foreach (array('_join', '_where') as $clause) { add_filter($filter . $clause, array(&$this, 'posts' . $clause)); } } // filters the widgets according to the current language add_filter('widget_display_callback', array(&$this, 'widget_display_callback'), 10, 2); // strings translation (must be applied before WordPress applies its default formatting filters) foreach (array('widget_text', 'widget_title', 'option_blogname', 'option_blogdescription', 'option_date_format', 'option_time_format') as $filter) { add_filter($filter, 'pll__', 1); } // translates biography add_filter('get_user_metadata', array(&$this, 'get_user_metadata'), 10, 3); // set posts and terms language when created from frontend (ex with P2 theme) add_action('save_post', array(&$this, 'save_post'), 200, 2); add_action('create_term', array(&$this, 'save_term'), 10, 3); add_action('edit_term', array(&$this, 'save_term'), 10, 3); if ($this->options['media_support']) { add_action('add_attachment', array(&$this, 'set_default_language')); } // support theme customizer // FIXME of course does not work if 'transport' is set to 'postMessage' if (isset($_POST['wp_customize'], $_POST['customized'])) { add_filter('pre_option_page_on_front', 'pll_get_post', 20); add_filter('pre_option_page_for_post', 'pll_get_post', 20); add_filter('pre_option_blogname', 'pll__', 20); add_filter('pre_option_blogdescription', 'pll__', 20); } }
/** * constructor: setups filters and actions * * @since 1.2 * * @param object $polylang */ public function __construct(&$polylang) { parent::__construct($polylang); // widgets languages filter add_action('in_widget_form', array($this, 'in_widget_form'), 10, 3); add_filter('widget_update_callback', array($this, 'widget_update_callback'), 10, 4); // language management for users add_action('personal_options_update', array($this, 'personal_options_update')); add_action('edit_user_profile_update', array($this, 'personal_options_update')); add_action('personal_options', array($this, 'personal_options')); // ugrades languages files after a core upgrade ( timing is important ) // backward compatibility WP < 4.0 *AND* Polylang < 1.6 add_action('_core_updated_successfully', array($this, 'upgrade_languages'), 1); // since WP 3.3 // upgrades plugins and themes translations files add_filter('themes_update_check_locales', array($this, 'update_check_locales')); add_filter('plugins_update_check_locales', array($this, 'update_check_locales')); // We need specific filters for German and Danish $specific_locales = array('da_DK', 'de_DE', 'de_DE_formal', 'de_CH', 'de_CH_informal'); if (array_intersect($this->model->get_languages_list(array('fields' => 'locale')), $specific_locales)) { add_filter('sanitize_title', array($this, 'sanitize_title'), 10, 3); add_filter('sanitize_user', array($this, 'sanitize_user'), 10, 3); } }