해결책
업데이트 3을 사용하고 작동했습니다. 내가 오해 한 것을, 나는 재 작성 규칙이 변경 것이라고 믿었다이었다 designers/?designer=some-designer&bid=9
에 /designers/some-designer
. 그러나 그것은 물론 다른 방법입니다.
나는 약간의 연구를 해왔지만 add_rewrite_rule () 을 사용하는 방법을 얻지 못했습니다 .
이 게시물 은 내가 필요한 것과 매우 가깝지만 실제로 많은 코드가 필요합니까?
: 내 현재 링크는 이것이다
http://www.norwegianfashion.no/designers/?designer=Batlak-og-Selvig&bid=9
내가 원하는 것은 이것이다
http://www.norwegianfashion.no/designers/Batlak-og-Selvig /
- 어떻게 사용
add_rewrite_rule()
합니까? - 디자이너 ID를 전달해야합니다 (입찰). URL에 표시되지 않은 상태에서 re.write 규칙을 사용할 때 어떻게해야합니까?
업데이트 1
나는 이것이 좀 더 설명적인 것을 발견했다 . 그러나 작동하지 않습니다.
function add_rewrite_rules( $wp_rewrite )
{
$new_rules = array(
'('.$template_page_name.')/designers/(.*?)/?([0-9]{1,})/?$' => 'designers.php?designer='.
$wp_rewrite->preg_index(1).'&bid='.
$wp_rewrite->preg_index(2)
);
// Always add your rules to the top, to make sure your rules have priority
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
add_action('generate_rewrite_rules', 'add_rewrite_rules');
function query_vars($public_query_vars) {
$public_query_vars[] = "designer";
$public_query_vars[] = "bid";
return $public_query_vars;
}
add_filter('query_vars', 'query_vars')
업데이트 2
Jan Fabry 가 다른 스레드에서 제안한 다른 솔루션이 있습니다. 나는 이것을 functions.php에 넣었지만 효과가 없다.
add_action('generate_rewrite_rules', 'add_rewrite_rules');
add_filter('query_vars', 'query_vars');
/* Custom re-write rules for desigenrs
------------------------------------------------------------------------------*/
function add_rewrite_rules( $wp_rewrite )
{
add_rewrite_rule('^designers/([^/]*)/([^/]*)$ /designers/?designer=$1&bid=$2 [L]', 'top');
flush_rewrite_rules(false);
}
function query_vars($public_query_vars) {
$public_query_vars[] = "designer";
$public_query_vars[] = "bid";
return $public_query_vars;
}
3 업데이트
내가 여기에 몇 가지 예를 찾을 뿐만 아니라. 그러나 이것은 작동하지 않습니다 :(
add_filter('rewrite_rules_array','wp_insertMyRewriteRules');
add_filter('query_vars','wp_insertMyRewriteQueryVars');
add_filter('init','flushRules');
// Remember to flush_rules() when adding rules
function flushRules(){
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
// Adding a new rule
function wp_insertMyRewriteRules($rules)
{
$newrules = array();
$newrules['(designers)/(\d*)$'] = 'index.php?pagename=designers&designer=$matches[1]';
return $newrules + $rules;
}
// Adding the bid var so that WP recognizes it
function wp_insertMyRewriteQueryVars($vars)
{
array_push($vars, 'designer');
return $vars;
}
업데이트 4 나는 또한이 솔루션을 시도했지만 여전히 성공하지 못했습니다.
add_filter('search_rewrite_rules', 'designers_createRewriteRules');
function designers_createRewriteRules($rewrite) {
global $wp_rewrite;
// add rewrite tokens
$designer_token = '%designers%';
$wp_rewrite->add_rewrite_tag($designer_token, '(.+)', 'designers=');
$bid_token = '%bid%';
$wp_rewrite->add_rewrite_tag($bid_token, '(.+)', 'bid=');
$keywords_structure = $wp_rewrite->root . "designers/$designer_token/$bid_token";
$keywords_rewrite = $wp_rewrite->generate_rewrite_rules($keywords_structure);
return ( $rewrite + $keywords_rewrite );
}
업데이트 5
내 다시 쓰기 규칙이 추가되지 않은 것 같습니다. 다음 print_r($wp_rewrite)
과 같은 새로운 규칙을 무시하면서 다음과 같은 새로운 규칙을 실행합니다 .
업데이트 6
Jan의 솔루션을 테스트했습니다. 그러나 URL은 변경되지 않습니다 :(
/* Initiation script for NF template
------------------------------------------------------------------------------*/
add_action('after_setup_theme','norwegianfashion_setup');
if ( ! function_exists( 'norwegianfashion_setup' ) ):
function norwegianfashion_setup() {
/* Here I do a lot of stuff */
// SEO friendly URL for desigenrs
add_action( 'init', 'wpa5413_init' );
add_filter( 'query_vars', 'wpa5413_query_vars' );
}
endif;
/* Custom re-write rules for desigenrs
------------------------------------------------------------------------------*/
function wpa5413_init()
{
// Remember to flush the rules once manually after you added this code!
add_rewrite_rule(
'designers/([^/]+)/?',
'index.php?pagename=designers&designer=$matches[1]',
'top' );
}
function wpa5413_query_vars( $query_vars )
{
$query_vars[] = 'designer';
return $query_vars;
}
나는 것이 정말 누군가가 나이 문제를 해결하는 데 도움이 할 수 있다면 그것을 주셔서 감사합니다.
bid
? 를 통과 할 수 있습니까?
slug
인가요? `디자이너 데이터 검색은 사용 bid
하는 것보다 훨씬 쉽습니다.designer