답변:
WP 슬러그 생성 방법에 대한 페이지 / 자습서 / 문서를 제공 할 수는 없지만 sanitize_title()
기능을 살펴보십시오 .
함수 이름으로 잘못된 인상을받지 마십시오 . 페이지 / 포스트 제목으로 추가 사용하기 위해 제목을 삭제하는 것은 아닙니다 . 제목 문자열을 가져와 URL에서 사용되도록 반환합니다.
이 수 의 핵심 추가 무언가가 (당신이 확인을 위해 원본을보고해야 할 것하지 가장자리 경우가 될 sanitize_title()
것입니다 항상 생성에 충분 정확히 , 경우에 당신이 기대 동일),하지만이 전부는 아니지만, 적어도 99 %를 커버한다 .
sanitize_title
함수에 적용된 필터에 의해 수행 되는지 또는 함수가 실행 된 후 다른 것에 의해 처리 되는지 여부를 완전히 확신하지 못하는 경우 중 하나입니다 .
이 기능을 사용할 수 있습니다 :
static public function slugify($text)
{
// replace non letter or digits by -
$text = preg_replace('~[^\pL\d]+~u', '-', $text);
// transliterate
$text = iconv('utf-8', 'us-ascii//TRANSLIT', $text);
// remove unwanted characters
$text = preg_replace('~[^-\w]+~', '', $text);
// trim
$text = trim($text, '-');
// remove duplicate -
$text = preg_replace('~-+~', '-', $text);
// lowercase
$text = strtolower($text);
if (empty($text)) {
return 'n-a';
}
return $text;
}
wp url 살균 기능이 작동하는 방식과 정확히 같습니다.
더 없습니다 개발자 모드 옆에서 워드 프레스에 내장 된 WP_DEBUG
이 경우 너무 많은 도움이되지 않습니다. 기본적으로 WP는 클래스에 대한 함수 기반의 저수준 래퍼 인 "Rewrite API"를 사용하며 WP_Rewrite
Codex에서 읽을 수 있습니다 . global $wp_rewrite
객체는 클래스로 또는 상호 작용을 검사 서비스에 서있다.
Toschos "T5 Rewrite"-Plugin 및 Jan Fabrys "Monkeyman Rewrite Analyzer"-Plugin 이 안내해드립니다. "T5 Rewrite"의 작은 확장 기능을 "Monkeyman Rewrite Analyzer"와 원활하게 통합하기 위해 GitHub 의 "T5 Rewrite"repos Wikie 에서 찾을 수 있습니다 .
"Monkeyman"플러그인은 도구 아래의 관리 UI 메뉴에 새 페이지를 추가합니다 . "T5 Rewrite"플러그인은 Settings > Permalinks 페이지에 새로운 도움말 탭을 추가합니다 . 내 확장 프로그램은 언급 된 도구 페이지에도 도움말 탭을 추가합니다 .
다음은 "T5 Rewrite"플러그인 도움말 탭 내용의 스크린 샷입니다.
소용돌이 = 패턴 | Beschreibung = 설명 | Beispiele = 예
"T5 Rewrite"플러그인은 재 작성 객체를 검사하는 데 도움이되는 훌륭한 작업을 수행합니다. 그리고 더 많은 일을합니다. 새로운 가능성을 추가합니다. 따라서 기본 플러그인 패키지의 일부입니다 (적어도 설치에서는).
실제로 wp_insert_post (post.php) 핵심 기능을 보면 다음과 같은 기능을 수행 할 수 있습니다.
$data['post_name'] = wp_unique_post_slug( sanitize_title( $data['post_title'], $post_ID ), $post_ID, $data['post_status'], $post_type, $post_parent );
$wpdb->update( $wpdb->posts, array( 'post_name' => $data['post_name'] ), $where );
주목해야 할 것은 wp_unique_post_slug와 sanitize_title을 모두 사용한다는 것입니다.
wp_unique_post_slug( sanitize_title(
오래된 질문을 다시 시작한 것을 용서하지만이 방법이 나에게 완벽하게 작동한다는 것을 알았을 때와 같은 필요성이있었습니다.
$some_string = "DON'T STOP ME NOW!";
$slug = sanitize_title(sanitize_title($some_string, '', 'save'), '', 'query');
echo $slug; // dont-stop-me-now
이 방법은 이중 살균을 사용합니다.
첫 번째는 save
HTML 및 PHP 태그가 제거되고 악센트가 제거 되는 모드를 사용합니다 (악센트 문자는 비악 등 문자로 대체 됨).
두 번째 query
모드는 모든 공백이 대시로 바뀌고 -
다른 문장 부호가 제거되도록합니다.
이것이 누군가를 돕기를 바랍니다! :)