是否可以将附件页面slug更改为引用文件名?简而言之......我使用Gallery Shortcode构建一个基于页面的简单图库。
我在上传过程中更改了原始文件名(如DSC1223.jpg)(到3b1871561aab.jpg),但它不会在网址中显示为slug。它仅使用DSC1223。
无论如何要改变ist?
问候,史蒂夫
最好的方法是在我的functions.php
中写这样的东西function twentyten_filter_wp_handle_upload () {
$upload = wp_handle_upload();
}
add_filter( 'wp_handle_upload', 'twentyten_filter_wp_handle_upload', 10, 2);
答案 0 :(得分:2)
将此添加到hash upload filename plugin,您应该好好去;
/**
* 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');
不要犹豫,问你是否不确定每条线的作用!
更新:
此功能挂钩到add_attachment
事件,就在新附件保存到数据库之后。此操作在wp_insert_attachment()
内调用。
我们首先抓取附件的文件名(get_attached_file()
)。然后我们使用本机PHP函数pathinfo()来获取路径组件,并剥离目录路径和文件扩展名。
然后我们致电wp_update_post()
,更新数据库中附件的post_name
。