将wordpress gallery shortcode slug更改为filename

时间:2010-07-16 13:34:29

标签: wordpress url gallery slug shortcode

是否可以将附件页面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);

1 个答案:

答案 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