사용자 정의 포스트 유형 URL 재 작성?
2 대답
- 투표
-
- 2012-05-25
사용자 지정 게시물 유형을 등록 할 때 재 작성 규칙이 기존 URL 구조 앞에 추가되지 않도록 지정해야합니다.
간단히 말하면
register_post_type
호출의 다음 행을 의미합니다.'rewrite'=>array ( 'slug'=> '프로젝트'),
다음으로 변경해야합니다.
'rewrite'=>array ( 'slug'=> '프로젝트','with_front'=>false),
자세한 내용은
register_post_type의 codex 항목에서
rewrite
인수를 확인하세요.수정 : 코드를 업데이트 한 후 설정> 영구 링크를 방문하여 재 작성 규칙을 삭제했는지 확인하세요.그렇지 않으면 이전 링크가 계속 표시됩니다.
When you register the custom post type, you have to specify that the rewrite rule shouldn't be prepended with the existing URL structure.
In short, this means that this line in your
register_post_type
call:'rewrite' => array('slug' => 'projects'),
should turn into this:
'rewrite' => array('slug' => 'projects','with_front' => false),
For more info, check out the
rewrite
argument from the codex entry onregister_post_type
edit: just make sure that, after updating the code, you flush the rewrite rules by visiting Settings > Permalinks. Otherwise you'll still see the old links.
-
감사합니다!명확히하기 위해 규칙을 플러시하기 위해해야 할 일은 설정-> 영구 링크 페이지로 이동하여 "변경 사항 저장"을 누르는 것입니다. 맞습니까?brilliant thank you! Just to clarify, all I need to do for flushing rules is to go to the Settings->Permalinks page and hit "Save Changes", correct?
- 0
- 2012-05-25
- Jake
-
변경 사항을 저장할 필요조차 없습니다.Permalinks 설정 페이지를 여는 것으로 충분합니다 (즉,.htaccess 파일이 쓰기 가능한 경우. 그렇지 않은 경우 변경 사항 저장을 누르고 .htaccess에 반환 된 코드를 수동으로 복사).You don't even need to save changes. It's enough just to open the Permalinks settings page (that is, if your .htaccess file is writable. If not, press save changes and manually copy the code it returns in your .htaccess)
- 4
- 2012-05-25
- 0x61696f
-
이것은 나를 위해 작동하지 않는 것 같습니다.내 프로젝트 게시물은 여전히`example.com/projects/title-of-post`로 이동합니다.퍼머 링크 페이지도 방문했습니다.원인은 무엇입니까?내`htaccess`에 재 작성 규칙이 없습니다.This doesn't seem to work for me. My projects posts are still going to `example.com/projects/title-of-post`. I visited the Permalinks page too. What could be causing this? There aren't any rewrite rules in my `htaccess`.
- 2
- 2015-01-25
- Desi
-
와,빠진 부분 감사합니다!퍼머 링크 페이지 방문은 작동하지 않았지만 현재 퍼머 링크 설정을 저장하면 작동했습니다. :)Wow, thanks that was the missing part! Visiting the permalinks page did not work, but just SAVING the current permalink settings worked :)
- 1
- 2019-02-28
- Alexander Taubenkorb
-
재 작성 규칙을 플러시하지 않고 계속 변경했습니다.팁 고마워!I kept on changing things without flushing the rewrite rules. Thanks for the tip!
- 1
- 2019-11-14
- Tan-007
-
- 2012-05-25
말 그대로 3 일 전에이 문제가 있었는데 wp.tutsplus.com 에서 시리즈를 우연히 발견했습니다. 나는 당신의 질문을 더 잘 수용하기 위해 내 자신의 코드를 교체했지만 이것은 시리즈를 따라 간 후에 결국 얻은 것입니다. 또한 이것은 테스트되지 않았 음을 명심하십시오.
// sets custom post type function my_custom_post_type() { register_post_type('Projects', array( 'label' => 'Projects','description' => '', 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'capability_type' => 'post', 'hierarchical' => false, 'publicly_queryable' => true, 'rewrite' => false, 'query_var' => true, 'has_archive' => true, 'supports' => array('title','editor','excerpt','trackbacks','custom-fields','comments','revisions','thumbnail','author','page-attributes'), 'taxonomies' => array('category','post_tag'), // there are a lot more available arguments, but the above is plenty for now )); } add_action('init', 'my_custom_post_type'); // rewrites custom post type name global $wp_rewrite; $projects_structure = '/projects/%year%/%monthnum%/%day%/%projects%/'; $wp_rewrite->add_rewrite_tag("%projects%", '([^/]+)', "project="); $wp_rewrite->add_permastruct('projects', $projects_structure, false);
이론적으로는
$projects_structure
변수에 저장된 URL에서 원하는대로 바꿀 수 있습니다. 제가 결국 사용하게 된 것은 무엇입니까?행운을 빕니다. 항상 그렇듯이 다시 방문하여 어떻게 진행되었는지 알려 주시기 바랍니다. :)
I had this problem literally 3 days ago, then I stumbled across a series over at wp.tutsplus.com. I swapped my own code out to accommodate your question better, but this is what I ended up with after following the series. Also, keep in mind that this is untested.
// sets custom post type function my_custom_post_type() { register_post_type('Projects', array( 'label' => 'Projects','description' => '', 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'capability_type' => 'post', 'hierarchical' => false, 'publicly_queryable' => true, 'rewrite' => false, 'query_var' => true, 'has_archive' => true, 'supports' => array('title','editor','excerpt','trackbacks','custom-fields','comments','revisions','thumbnail','author','page-attributes'), 'taxonomies' => array('category','post_tag'), // there are a lot more available arguments, but the above is plenty for now )); } add_action('init', 'my_custom_post_type'); // rewrites custom post type name global $wp_rewrite; $projects_structure = '/projects/%year%/%monthnum%/%day%/%projects%/'; $wp_rewrite->add_rewrite_tag("%projects%", '([^/]+)', "project="); $wp_rewrite->add_permastruct('projects', $projects_structure, false);
Theoretically, you could swap out whatever you want in the URL stored in the
$projects_structure
variable, what is there is just what I ended up using.Good luck, and as always - make sure to come back and let us know how it worked out! :)
-
링크로만 구성된 답변은 일반적으로 해당 리소스가 미래에 존재하지 않을 수 있기 때문에 유용하지 않은 것으로 간주됩니다.내용을 요약하십시오.Answers that are just composed of links are generally considered unhelpful as those resources can (and probably will) cease to exist in the future. Summarize the content.
- 1
- 2012-05-25
- chrisguitarguy
-
충분히 공평합니다. 적절한 수정 작업을하겠습니다.Fair enough, I'll work on a proper revision.
- 0
- 2012-05-25
- cmegown
-
이제 내 대답에는 사용자 지정 게시물 유형 URL을 성공적으로 다시 작성하는 프로덕션 환경의 작업 코드와 유사한 코드가 포함되어 있습니다.더 도움이 되길 바랍니다!There, now my answer contains similar code to working code that I have in a production environment that successfully rewrites a custom post type URL. Hope it proves to be more helpful!
- 11
- 2012-05-25
- cmegown
내 포트폴리오 프로젝트에 대한 맞춤 게시물 유형을 설정합니다.이에 대한 기본 URL은
에 있습니다./projects/
이제 블로그 게시물의 영구 링크를
로 변경됩니다./articles/*/
로 설정하여 영구 링크 구조를 구성했습니다.즉,포트폴리오 프로젝트를 보러 가면 URL이/articles/projects/project-name/
내 프로젝트 맞춤 게시물 유형에 대해 유일하게 영구 링크를 다시 작성하는 방법이 있어야한다는 것을 알고 있습니다.하지만 URL 슬러그를 선언하는 구문에 익숙하지 않습니다. 도움을 주시면 감사하겠습니다!