Stop Redirects from Showing as Related Posts
-
Do you have any suggestions on how to keep redirected posts from showing up as related posts?
Site URL: https://constructioninformer.com
About 30 of my posts are redirected using the WordPress Related Post plugin. I want those posts to be excluded from showing up as Related Posts (Jetpack plugin). I followed Jetpack’s instructions for “Exclude a specific post from ever appearing among Related Posts results” but it crashed my site. Below is the example Jetpack shows to add to the functions.php file.
function jetpackme_exclude_related_post( $exclude_post_ids, $post_id ) {
// $post_id is the post we are currently getting related posts for
$exclude_post_ids[] = 1037; // Exclude post_id 1037
$exclude_post_ids[] = 1038; // Also exclude post_id 1038
return $exclude_post_ids;
}
add_filter( ‘jetpack_relatedposts_filter_exclude_post_ids’, ‘jetpackme_exclude_related_post’, 20, 2 );Since I have 30 posts that I DON’T want to have shown as related I added the code below to my functions.php file:
function jetpackme_exclude_related_post( $exclude_post_ids, $post_id ) {
????// $post_id is the post we are currently getting related posts for
????$exclude_post_ids[] = 165; // Exclude post_id 165
????$exclude_post_ids[] = 248; // Also exclude post_id 248
$exclude_post_ids[] = 292;
$exclude_post_ids[] = 350;
$exclude_post_ids[] = 399;
$exclude_post_ids[] = 422;
$exclude_post_ids[] = 482;
$exclude_post_ids[] = 554;
$exclude_post_ids[] = 844;
$exclude_post_ids[] = 848;
$exclude_post_ids[] = 1051;
$exclude_post_ids[] = 1560;
$exclude_post_ids[] = 1570;
$exclude_post_ids[] = 1880;
$exclude_post_ids[] = 2443;
$exclude_post_ids[] = 2729;
$exclude_post_ids[] = 2807;
$exclude_post_ids[] = 3176;
$exclude_post_ids[] = 3393;
$exclude_post_ids[] = 3400;
$exclude_post_ids[] = 3404;
$exclude_post_ids[] = 3411;
$exclude_post_ids[] = 3418;
$exclude_post_ids[] = 3430;
$exclude_post_ids[] = 3440;
$exclude_post_ids[] = 3443;
$exclude_post_ids[] = 3450;
$exclude_post_ids[] = 3455;
$exclude_post_ids[] = 3467;
$exclude_post_ids[] = 3469;
$exclude_post_ids[] = 6363;
????return $exclude_post_ids;
}
add_filter( ‘jetpack_relatedposts_filter_exclude_post_ids’, ‘jetpackme_exclude_related_post’, 20, 2 );My site went down and I had to go into Cpanel and change functions.php back to what it was. I asked Elegant Themes, the people who make my theme, Divi, if they knew of any conflicts. They suggested I create a category for my redirected posts and assign all the redirected posts to that category and then use the Jetpack code shown as the second item on this page: https://jetpack.com/support/related-posts/customize-related-posts/#exclude
I created a category named ‘redirected’ and added this code to the bottom of the functions.php file:
function jetpackme_filter_exclude_category( $filters ) {
$filters[] = array( ‘not’ =>
array( ‘term’ => array( ‘category.slug’ => ‘redirected’ ) )
);
return $filters;
}
add_filter( ‘jetpack_relatedposts_filter_filters’, ‘jetpackme_filter_exclude_category’ );But, the redirected posts are still showing up as related posts. Here is the entire functions.php in its current state:
<?php
if ( ! function_exists( ‘et_get_safe_localization’ ) ) :
function et_get_safe_localization( $string ) {
return apply_filters( ‘et_get_safe_localization’, wp_kses( $string, et_get_allowed_localization_html_elements() ) );
}
endif;if ( ! function_exists( ‘et_allow_ampersand’ ) ) :
/**
* Convert & into &
* Escaped ampersand by wp_kses() which is used by et_get_safe_localization()
* can be a troublesome in some cases, ie.: outputted string is sent as email
* @param string original string
* @return string modified string
*/
function et_allow_ampersand( $string ) {
return str_replace(‘&’, ‘&’, $string);
}
endif;if ( ! function_exists( ‘et_get_allowed_localization_html_elements’ ) ) :
function et_get_allowed_localization_html_elements() {
$whitelisted_attributes = array(
‘id’ => array(),
‘class’ => array(),
‘style’ => array(),
);$whitelisted_attributes = apply_filters( ‘et_allowed_localization_html_attributes’, $whitelisted_attributes );
$elements = array(
‘a’ => array(
‘href’ => array(),
‘title’ => array(),
‘target’ => array(),
‘rel’ => array(),
),
‘b’ => array(),
’em’ => array(),
‘p’ => array(),
‘span’ => array(),
‘div’ => array(),
‘strong’ => array(),
);$elements = apply_filters( ‘et_allowed_localization_html_elements’, $elements );
foreach ( $elements as $tag => $attributes ) {
$elements[ $tag ] = array_merge( $attributes, $whitelisted_attributes );
}return $elements;
}
endif;if ( ! function_exists( ‘et_core_get_main_fonts’ ) ) :
function et_core_get_main_fonts() {
global $wp_version;if ( version_compare( $wp_version, ‘4.6’, ‘<‘ ) ) {
return ”;
}$fonts_url = ”;
/* Translators: If there are characters in your language that are not
* supported by Open Sans, translate this to ‘off’. Do not translate
* into your own language.
*/
$open_sans = _x( ‘on’, ‘Open Sans font: on or off’, ‘Divi’ );if ( ‘off’ !== $open_sans ) {
$font_families = array();if ( ‘off’ !== $open_sans )
$font_families[] = ‘Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800’;$protocol = is_ssl() ? ‘https’ : ‘http’;
$query_args = array(
‘family’ => implode( ‘%7C’, $font_families ),
‘subset’ => ‘latin,latin-ext’,
);
$fonts_url = add_query_arg( $query_args, “$protocol://fonts.googleapis.com/css” );
}return $fonts_url;
}
endif;if ( ! function_exists( ‘et_core_load_main_fonts’ ) ) :
function et_core_load_main_fonts() {
$fonts_url = et_core_get_main_fonts();
if ( empty( $fonts_url ) ) {
return;
}wp_enqueue_style( ‘et-core-main-fonts’, esc_url_raw( $fonts_url ), array(), null );
}
endif;if ( ! function_exists( ‘et_core_browser_body_class’ ) ) :
function et_core_browser_body_class( $classes ) {
global $is_lynx, $is_gecko, $is_IE, $is_opera, $is_NS4, $is_safari, $is_chrome, $is_iphone;if( $is_lynx ) $classes[] = ‘lynx’;
elseif( $is_gecko ) $classes[] = ‘gecko’;
elseif( $is_opera ) $classes[] = ‘opera’;
elseif( $is_NS4 ) $classes[] = ‘ns4’;
elseif( $is_safari ) $classes[] = ‘safari’;
elseif( $is_chrome ) $classes[] = ‘chrome’;
elseif( $is_IE ) $classes[] = ‘ie’;
else $classes[] = ‘unknown’;if( $is_iphone ) $classes[] = ‘iphone’;
return $classes;
}
endif;
add_filter( ‘body_class’, ‘et_core_browser_body_class’ );if ( ! function_exists( ‘et_force_edge_compatibility_mode’ ) ) :
function et_force_edge_compatibility_mode() {
echo ‘<meta http-equiv=”X-UA-Compatible” content=”IE=edge”>’;
}
endif;
add_action( ‘et_head_meta’, ‘et_force_edge_compatibility_mode’ );function jetpackme_filter_exclude_category( $filters ) {
$filters[] = array( ‘not’ =>
array( ‘term’ => array( ‘category.slug’ => ‘redirected’ ) )
);
return $filters;
}
add_filter( ‘jetpack_relatedposts_filter_filters’, ‘jetpackme_filter_exclude_category’ );
- The topic ‘Stop Redirects from Showing as Related Posts’ is closed to new replies.