자신 만의 영구 링크 구조 탭을 만들어야합니다. 예 :
add_filter('post_link', 'cat_id_permalink', 10, 3);
add_filter('post_type_link', 'cat_id_permalink', 10, 3);
function cat_id_permalink($permalink, $post_id, $leavename) {
if (strpos($permalink, '%catid%') === FALSE) return $permalink;
// Get post
$post = get_post($post_id);
if (!$post) return $permalink;
// Get category ID
$category = end(get_the_category());
$catid = $category->cat_ID;
return str_replace('%catid%', $catid, $permalink);
}
참고 :이 코드는 게시물이 한 범주에 나열된 경우에만 작동합니다. 게시물이 여러 범주 아래에 나열되어있을 경우 조금 더 많은 논리를 추가해야합니다.
이 코드는 functions.php 파일에 추가됩니다. WordPress 필터를 사용하면 핵심 파일을 변경하지 않고도 핵심 WordPress 코드의 기능을 수정하거나 확장하여 다음 WordPress 업데이트로 변경 사항을 잃을 위험이 없습니다.
처리 된 URL을 반환하기 전에 위 코드를 호출합니다 (및 post_type_link 필터 사용). 함수가 실행되면 새로 파싱 된 퍼머 링크 구조를 반환합니다.
// 게시물 코드를 가져 오면 원래의 permalink가 변경되지 않고 올바른 게시물 ID가 반환됩니다.
// 유효한 게시물 ID가있는 경우 // get category ID는 get_the_category()를 사용하여 범주 ID를 검색합니다. 참고 게시물은 여러 범주에있을 수 있으므로 get_the_category()는 범주 ID 배열을 검색합니다. end 함수는 배열의 마지막 요소를 반환합니다.
마지막으로 str_replace를 사용하여 % catid % 탭을 $ catid 변수로 바꾸고 새 퍼머 링크를 반환합니다.
이 코드를 추가 할 위치를 알려주시겠습니까? options-permalink.php에 추가하려고했지만 작동하지 않는 것 같습니까? – Asamoa
functions.php 파일에 코드를 추가하십시오. 위의 설명을 더 추가했습니다 :) – entreprenerds