나누기 :워드 프레스 사용자 정의 포스트 영구 링크는 일반 페이지 내가 내 게시물에 대한 다음과 같은 영구 링크 구조를 달성하고자 일하고 있어요 프로젝트에 대한
domain.com/special/my-post-slug을
special은 사용자 지정 분류입니다.
내가 무슨 짓을 :
- 이 설정에 갔다> 영구 링크
- 사용자 지정 옵션을 선택하고이로 변환 :/% 특별 %/% postname %/
- 은 다음과 워드 프레스 후크에 걸려 이 같은 :이 코드는 잘 작동하지만,
<?php
// in functions.php
add_filter('post_link', 'specials_permalink', 10, 3);
add_filter('post_type_link', 'specials_permalink', 10, 3);
function specials_permalink($permalink, $post_id, $leavename) {
if (strpos($permalink, '%specials%') === FALSE) {
return $permalink;
}
$post = get_post($post_id);
if (!$post) {
return $permalink;
}
$terms = wp_get_object_terms($post->ID, 'specials');
if (!is_wp_error($terms) && !empty($terms) && is_object($terms[0])) {
$taxonomy_slug = $terms[0]->slug;
} else {
$categories = wp_get_post_categories($post_id->ID, array('fields' => 'all'));
if(isset($categories[0])) {
$taxonomy_slug = $categories[0]->slug;
} else {
$taxonomy_slug = 'general';
}
}
$permalink = str_replace('%specials%', $taxonomy_slug, $permalink);
return $permalink;
}
나는 fo를 영구 링크 구조에 스페셜을 추가하기 때문에 r 내 게시물, 내 페이지가 더 이상로드되지 않습니다. 그들은 모두 404가됩니다. 퍼멀 링크 구조에서 % specials %을 제거하자마자 다시 작동합니다.
요청 :
FR/내-슬러그
쿼리 문자열 :
디버깅 동안 나는 다음과 같이 워드 프레스 내 URL을 일치 발견
LANG = FR & 스페셜 = 내 -slug
일치하는 다시 쓰기 규칙 :
,에게는 (FR | NL | EN)/([^ /] +)/$
일치 재 작성 검색어 :
LANG = FR & 스페셜 = 내-슬러그하지만이
가되게합니다 '특별'의 '페이지 이름' 이미 URL을 다시 매핑하고 사용자 지정 다시 쓰기 규칙을 추가하는 등의 시도를했지만 어떤 해결책도 찾을 수 없습니다. 가장 이상한 부분은 WP Codex에 따르면 영구 링크 구조는 페이지가 아닌 게시물 및 아카이브 페이지에만 적용된다는 것입니다. 페이지에로드 할 때 링크에 연결되는 함수가 시작되지 않습니다. 그러나 Wordpress는 내 페이지가 스페셜이라고 생각합니다.
가능한 한 많은 정보를 추가하려고했지만, 누락 된 내용이 있으면 간청하십시오.
나는 나의 URL이 어떤 재 일치하지 않는 그렇게한다면 규칙. –