View difference between Paste ID: mVcNB9cH and 2xViSzvN
SHOW: | | - or go back to the newest paste.
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');