Advertisement
mbis

Exclude posts by taxonomy

Mar 18th, 2021
981
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function pm_is_excluded($post) {
  2.     $excluded_taxonomies = array('category2', 'post_tag');
  3.  
  4.     foreach($excluded_taxonomies as $taxonomy) {
  5.         $terms = get_the_terms($post, $taxonomy);
  6.  
  7.         if(!empty($terms) && !is_wp_error($terms)) {
  8.             return true;
  9.         }
  10.     }
  11.  
  12.     return false;
  13. }
  14.  
  15. function pm_do_not_detect_custom_permalinks($element_id, $uri_parts) {
  16.     global $permalink_manager_uris;
  17.  
  18.     if(is_numeric($element_id) && !empty($uri_parts['uri'])) {
  19.         $is_excluded = pm_is_excluded($element_id);
  20.  
  21.         unset($permalink_manager_uris[$element_id]);
  22.     }
  23.  
  24.     return (!empty($is_excluded)) ? false : $element_id;
  25. }
  26. add_filter('permalink_manager_detected_element_id', 'pm_do_not_detect_custom_permalinks', 99, 2);
  27.  
  28. function pm_do_not_change_permalink($permalink, $post, $old_permalink) {
  29.     return (pm_is_excluded($post)) ? $old_permalink : $permalink;
  30. }
  31. add_filter('permalink_manager_filter_final_post_permalink', 'pm_do_not_change_permalink', 99, 3);
  32.  
  33. function pm_hide_uri_editor() {
  34.     global $post, $current_screen, $permalink_manager;
  35.  
  36.     if(!empty($current_screen) && $current_screen->base == 'post') {
  37.         if(pm_is_excluded($post)) {
  38.             remove_filter('wpseo_breadcrumb_links', array($permalink_manager->functions['third-parties'], 'filter_breadcrumbs'), 9);
  39.         }
  40.     }
  41. }
  42. add_action('add_meta_boxes', 'pm_hide_uri_editor');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement