Intereting Posts
Как присоединиться к запросу $ wpdb с метафорой пользователя, используя значение по умолчанию, если оно не существует? Как мне создать миниатюру с первого встроенного изображения? Как отображать введенное в систему имя пользователя, если вы входите в систему? mysql запрашивает две таблицы базы данных, пользователей и usermeta и сортирует по пользовательской ценности meta int Настройка разбиения на страницы Как опубликовать сообщение за несколько раз по расписанию Снимок экрана не отображается на странице плагина Есть ли способ импортировать Blogger в bbPress? wp_trash_post hook – проблема с обновлением страницы при использовании wp_die Как заказывать сообщения пользователя_login, который соответствует meta_value (который является идентификатором пользователя)? API настройки для разработки плагинов Регистрация поисковых запросов для зарегистрированных пользователей Переопределить локализацию плагина Файлы WordPress po Неустранимая ошибка: Class 'ms \ WP_Query' не найден при инициализации плагина

URL переписать с помощью add_rewrite_rule и attachment_id

Я пытаюсь добавить правило перезаписи, чтобы сделать это:

mysite/?attachment_id=106 

выглядят так:

 mysite/series/106 

Я везде искал этот сайт и другие, и это очень запутывает, потому что есть много разных способов сделать это. Я пробовал редактировать файл functions.php в папке тем, добавляя это в начале файла:

 add_rewrite_rule('series/([^/]+)/?$', 'index.php?attachment_id=$matches[1]', 'top'); 

И последнее, что я пробовал:

 add_filter( 'query_vars', 'wpa56345_query_vars' ); function wpa56345_query_vars( $query_vars ){ $query_vars[] = 'attachment_id'; return $query_vars; } add_action( 'init', 'wpa56345_rewrites' ); function wpa56345_rewrites(){ add_rewrite_rule( 'series/(\d+)/?$', 'index.php?attachment_id=$matches[1]', 'top' ); } 

Поместите код, предложенный ниже в functions.php вашей желаемой темы, он работал для меня с WP 3.4: http://matty.co.za/2009/11/custom-url-rewrites-in-wordpress/

Кажется, это работает для меня:

 // Add your query variable add_filter( 'query_vars', 'my_query_vars' ); function my_query_vars( $query_vars ) { array_push($query_vars, 'attachment_id'); return $query_vars; } // Add your rule add_filter( 'rewrite_rules_array', 'my_rewrite_rules_array' ); function my_rewrite_rules_array( $rules ) { $my_rules = array(); $my_rules['series/(\d+)/?$'] = 'index.php?attachment_id=$matches[1]'; return $my_rules + $rules; } // Flush the rules if your rule does not exist add_action( 'wp_loaded', 'my_flush_rules' ); function my_flush_rules() { if (!$rules = get_option('rewrite_rules')) $rules = array(); if (!isset($rules['series/(\d+)/?$'])) { global $wp_rewrite; $wp_rewrite->flush_rules(); } } 

А также, если вы хотите отлаживать правила, есть полезный фрагмент:

 // Uncomment add_action to see what's happening //add_action('wp', 'debug_rules'); function debug_rules() { global $wp, $wp_query, $wp_rewrite; echo $wp->matched_rule . ' | ' . $wp_rewrite->rules[$wp->matched_rule]; print_r($wp_rewrite->rules); exit(); } 

Надеюсь, поможет.