2016-11-19 2 views
0

수정하려는 게시물의 현재 퍼머 링크 구조에 날짜가 포함되어 있으며 설정 페이지에서 "/ % year %/% monthnum %/% day %/% 범주 %/%의 postname %/"태그가 지정된 게시물의 퍼머 링크 구조를 변경하십시오.

예 포스트 URL : http://example.com/2016/09/11/category/child-category/long-post-slug-is-printed-here/

내 문제는 내가 그렇게 특정 태그로 태그 된 게시물이 영구 링크 구조를 수정하는 방법을 알아낼 수 있다는 것입니다 예를 들어, "permalink-struc-2"라는 태그가 있는데 내 게시물에 추가하면 permalink를 다음과 같이 다시 쓰려고합니다. http://example.com/category/child-category/long-post-slug-is-printed-here/ 게시물 permalink에서 날짜를 제거해야합니다.

I는 포스트 필터 "POST_LINK"

add_filter하여 시도한 ('POST_LINK'어레이 ($이 'change_permalink_date_structure'), 1, 3);

하지만 일이 끝나는 것은 URL이 변경되는 것입니다,하지만 난 단축 URL에서 포스트를 액세스하려고 할 때, 그것은 여전히 ​​원래로 재 ->http://example.com/2016/09/11/category/child-category/long-post-slug-is-printed-here/

사람이이 문제에 도움이 될하시기 바랍니다 ?

감사

+0

실제적으로 달성하기를 원하는 점을 알려주시겠습니까? –

+0

특정 태그로 태그가 지정된 게시물의 퍼머 링크 구조를 변경하고 싶습니다. – dulesaga

+0

현재 URL이 무엇입니까 ?? –

답변

0

당신은 htaccess로 모드 재 작성을 사용하려고 할 수 있습니다. 각 URL마다 하나의 규칙을 추가해야합니다. 예를 들어이에 도움을하려고 모든 사람에게

RewriteRule /category/child-category/long-post-slug-is-printed-here/ /2016/09/11/category/child-category/long-post-slug-is-printed-here/ [L] 
+0

고마워.하지만이 문제를 해결하기를 원하는 모든 게시물에 대해 htaccess 파일을 편집해야하는 것이 쉽지 않기 때문에 문제가 해결되지 않았습니다. – dulesaga

0

감사합니다, 나는 내가 필요한 일을 할 수있는 방법을 찾을 수 있었다. 기본적으로 나는 날짜가없는 add_rewrite_rule()이 포스트의 URL의 작동 와 WP에 대한 재 작성 규칙을 썼다 또한

$rewrite_rule_regex = '^(?!([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/)(.+?)/([^/]+)(?:/([0-9]+))?/?$'; 

add_rewrite_rule($rewrite_rule_regex, 'index.php?category_name=$matches[4]&name=$matches[5]&page=$matches[6]&istaggedcalendar=1', 'bottom'); 

을,이 새로운 재 작성 규칙은 마지막으로보다 높은 우선 순위를 (이했다 유니버설) wp 재 작성 규칙 (재 작성 규칙이 마지막 일 경우 작동하지 않고 "최상위"로 설정된 경우 다른 재 작성 규칙이 작동하지 않음) :

add_filter ('rewrite_rules_array', array this, 'rewrite_rulles_array_look')));

// * set the priority of our rewrite rule to not interfere with other pages 

function rewrite_rules_array_look($r_array) { 

    $rew_rule = $r_array[$this->rewrite_rule_regex]; 

    unset($r_array[$this->rewrite_rule_regex]); 

    $res = array_slice($r_array, 0, count($r_array)-1, true) + 

     array($this->rewrite_rule_regex => $rew_rule) + 

     array_slice($r_array, count($r_array)-1, count($r_array) , true) ; 


    return $res; 

} 
관련 문제