2010-07-16 4 views
0

으로 변경하십시오. 첨부 파일 페이지 슬러그를 참조 파일 이름으로 변경할 수 있습니까? 간단히 말해서 ... 나는 간단한 페이지 기반 갤러리를 만들기 위해 Gallery Shortcode을 사용한다.WordPress의 갤러리 단축 코드 슬러그를 파일 이름

업로드 프로세스 (3b1871561aab.jpg까지) 중에 orignal 파일 이름 (DSC1223.jpg 등)을 변경하지만 URL 내에 슬러그가 나타나지 않습니다. DSC1223 만 사용합니다.

어쨌든 ist를 변경 하시겠습니까?

감사합니다, 스티브

가장 좋은 방법은

function twentyten_filter_wp_handle_upload() { 

    $upload = wp_handle_upload(); 

} 

add_filter('wp_handle_upload', 'twentyten_filter_wp_handle_upload', 10, 2); 
+0

어떤 형식으로 이것을 자동화해야합니까? 아니면 하나입니까? 빠른 해결책은'wp_posts' 데이터베이스 테이블에서'post_name' 필드를 편집하는 것입니다. DSC1223이 보관되어 사용되는 곳입니다. – TheDeadMedic

+0

예, 이것을 자동화해야합니다. 그것은 업로드 진행 중에 대단 할 것입니다. – gearsdigital

답변

2

hash upload filename plugin이를 추가하고 당신은 갈 수 있어야한다 내 functions.php이 뭔가를 작성하는 것입니다;

/** 
* Filter new attachments and set the post_name the same as the hashed 
* filename. 
* 
* @param int $post_ID 
*/ 
function change_attachment_name_to_hash($post_ID) 
{ 
    $file = get_attached_file($post_ID); 
    $info = pathinfo($file); 
    $name = trim(substr($info['basename'], 0, -(1 + strlen($info['extension'])))); 
    wp_update_post(array(
     'ID' => $post_ID, 
     'post_name' => $name 
    )); 
} 
add_action('add_attachment', 'change_attachment_name_to_hash'); 

각 줄마다 무엇이 있는지 확실하지 않은지 물어보십시오.

UPDATE : 새 첨부 파일이 데이터베이스에 저장됩니다 직후 add_attachment 이벤트 위에

이 기능 후크. 이 작업은 wp_insert_attachment()에서 호출됩니다.

먼저 첨부 파일 (get_attached_file())을 가져옵니다. 그런 다음 기본 PHP 함수 pathinfo()을 사용하여 경로 구성 요소를 가져 와서 디렉토리 경로와 파일 확장자를 제거합니다.

그런 다음 wp_update_post()으로 전화하여 데이터베이스의 첨부 파일 post_name을 업데이트합니다.

+0

당신이 코드를 설명 할 수 있다면 그것은 최고 일 것입니다 : wp-admin/include/media.php 줄 186 주위에 코드의 올바른 부분을 발견했습니다.하지만이 함수를 연결하는 방법을 찾을 수 없습니다. 왜냐하면 나는 정말로 데이터를 전달하는 법을 모르기 때문에. 다시 한번 감사드립니다 ... TheDeadMedic! 내가 어떻게 든 도와 줄 수 있다면 ... 내 집은 프론트 엔드 다. – gearsdigital

+0

"wp-admin/include/media.php에서 올바른 코드 부분을 찾았습니다."- 무슨 뜻입니까? ? 이 답변에있는 모든 코드를 다른 답변의 플러그인 코드 하단에 추가하면됩니다. – TheDeadMedic

+0

예. 코드의 두 조각을 병합했으며 완벽하게 작동합니다! 나는'media_handle_upload()'함수가 정상적으로 작동한다는 것을 의미했다. 제목과 캡션 기본값 등에 대한 관련 코드입니다. 파일 업로드 POST 자체를 처리하고 첨부 파일을 작성합니다. 더 잘 설명 할 수는 없습니다. – gearsdigital