将文件重命名为标题,这是一个小问题

时间:2016-03-21 作者:I.Alex

我用这个问题:Change Attachment Filename 这是可行的,但有一个问题。

他将每个文件重命名为FileNameToRename 这是相同的图像。我想做的是FileNameToRename 我想将其重命名为帖子标题。这可能吗?

add_action(\'add_attachment\', \'rename_attacment\');
function rename_attacment($post_ID){

    $post = get_post($post_ID);
    $file = get_attached_file($post_ID);
    $path = pathinfo($file);
        //dirname   = File Path
        //basename  = Filename.Extension
        //extension = Extension
        //filename  = Filename

    $newfilename = "FileNameToRename";
    $newfile = $path[\'dirname\']."/".$newfilename.".".$path[\'extension\'];

    rename($file, $newfile);    
    update_attached_file( $post_ID, $newfile );

}

1 个回复
SO网友:Howdy_McGee

使用get_the_title() 因为你已经被传递了一个帖子ID。

function rename_attacment( $post_ID ) {
    $post = get_post( $post_ID );
    $file = get_attached_file( $post_ID );
    $path = pathinfo( $file );
        //dirname   = File Path
        //basename  = Filename.Extension
        //extension = Extension
        //filename  = Filename

    $newfilename = get_the_title( $post_ID );
    $newfile = $path[\'dirname\'] . "/" . $newfilename . "." . $path[\'extension\'];

    rename( $file, $newfile );    
    update_attached_file( $post_ID, $newfile );
}
add_action( \'add_attachment\', \'rename_attacment\' );
我不确定这是否会像你期望的那样起作用。据我所知,WordPress认为附件类似于帖子和页面,并将其视为重复名称。

例如,如果您有一个名为Test 然后将附件重命名为Test WordPress会意识到标题是重复的,并将其更改为Test-1 这样就不会混淆两者。

相关推荐

Add SKU in Product Title

我正在尝试在产品标题之前添加产品sku。下面是我的代码,当应用此代码时,它会在我的标题之前添加sku。但我想添加一次标题。 function append_sku_to_titles() { $all_ids = get_posts( array( \'post_type\' => \'product\', \'numberposts\' => -1, \'post_status\' => \'publis