Skip to content

Instantly share code, notes, and snippets.

@certainlyakey
Created March 13, 2018 22:36
Show Gist options
  • Select an option

  • Save certainlyakey/681f67dcb50987be0b3f56db4338001f to your computer and use it in GitHub Desktop.

Select an option

Save certainlyakey/681f67dcb50987be0b3f56db4338001f to your computer and use it in GitHub Desktop.
SearchWP + Polylang — force search results to include untranslated post types
function searchwp_polylang_include_only_current_language_posts( $relevantPostIds, $engine, $terms ) {
if ( isset( $engine ) ) {
$engine = null;
}
if ( isset( $terms ) ) {
$terms = null;
}
$post_ids = $relevantPostIds;
if ( function_exists( 'pll_current_language' ) && function_exists( 'pll_default_language' ) ) {
$currentLanguage = pll_current_language();
if ( false == $currentLanguage ) {
$currentLanguage = pll_default_language();
}
// get all posts in the current language
$args_translated = array(
'nopaging' => true,
'post_type' => array('translated_post_type1', 'translated_post_type2'),
'post_status' => 'any',
'fields' => 'ids',
'tax_query' => array(
array(
'taxonomy' => 'language',
'field' => 'slug',
'terms' => sanitize_text_field( $currentLanguage ),
),
)
);
$query_translated = new WP_Query( $args_translated );
$post_ids_translated = $query_translated->posts;
$args_untranslated = array(
'nopaging' => true,
'post_type' => array('untranslated_post_type1', 'untranslated_post_type2'),
'post_status' => 'any',
'fields' => 'ids',
);
$query_untranslated = new WP_Query( $args_untranslated );
$post_ids_untranslated = $query_untranslated->posts;
$post_ids = array_merge( $post_ids_untranslated, $post_ids_translated );
}
return $post_ids;
}
add_filter( 'searchwp_include', 'searchwp_polylang_include_only_current_language_posts', 10, 3 );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment