WordPress上传图片时自动将图片重命名为文章标题

知更鸟 2021年10月31日12:43:14WordPress评论2322阅读模式

为 WordPress 文章上传添加图片时自动重命名图片名称,可以简化操作过程序,之前的文章可以用时间或者MD5生成数字重命名所有媒体文件。文章源自知更鸟-https://zmingcx.com/upload-image-renamed-to-article-title.html

文章源自知更鸟-https://zmingcx.com/upload-image-renamed-to-article-title.html

WordPress上传图片时自动将图片重命名为文章标题

WordPress上传图片时自动将图片重命名为文章标题

文章源自知更鸟-https://zmingcx.com/upload-image-renamed-to-article-title.html

section
推荐两段在上传媒体文件时自动重命名的代码。 代码一,按时间重命名 上传文件时会以“年月日时分秒+千位毫秒整数”的格式重命名文...
799126

这里再分享一段,在文章编辑时上传添加图片,自动将图片重命名为文章标题,并自动填充图片ATL、说明、替代文本、描述等相关信息。文章源自知更鸟-https://zmingcx.com/upload-image-renamed-to-article-title.html

section

将下面代码添加到当前主题函数模板functions.php中:文章源自知更鸟-https://zmingcx.com/upload-image-renamed-to-article-title.html

function file_renamer( $filename ) {
	$info = pathinfo( $filename );
	$ext  = empty( $info['extension'] ) ? '' : '.' . $info['extension'];
	$name = basename( $filename, $ext );
	if( $post_id = array_key_exists( "post_id", $_POST) ? $_POST["post_id"] : null ) {
		if($post = get_post($post_id)) {
			return $post->post_title . $ext;
		}
	}

	$my_image_title = $post;
	$file['name'] = $my_image_title  . - uniqid() . $ext; // uniqid method
	// $file['name'] = md5($name) . $ext; // md5 method
	// $file['name'] = base64_encode( $name ) . $ext; // base64 method
	return $filename;
}

add_filter( 'sanitize_file_name', 'file_renamer', 10, 1 );

// 上传时自动设置图像标题、替代文本、标题和描述
add_action( 'add_attachment', 'my_set_image_meta_upon_image_upload' );
function my_set_image_meta_upon_image_upload( $post_ID ) {

	// 检查上传的文件是否是图片
	if ( wp_attachment_is_image( $post_ID ) ) {

		if( isset( $_REQUEST['post_id'] ) ) {
			$post_id = $_REQUEST['post_id'];
		} else {
			$post_id = false;
		}

		if ( $post_id != false ) {
			$my_image_title = get_the_title( $post_id );
		} else {
			$my_image_title = get_post( $post_ID )->post_title;
		}

		// 清理标题中特殊字符
		$my_image_title = preg_replace( '%\s*[-_\s]+\s*%', ' ',  $my_image_title );

		// 将第一个字母大写
		$my_image_title = ucwords( strtolower( $my_image_title ) );

		// 创建包含标题、说明、描述的数组
		$my_image_meta = array(
			'ID'        => $post_ID,             // ID
			'post_title'    => $my_image_title,  // 图像标题
			'post_excerpt'  => $my_image_title,  // 图像说明
			'post_content'  => $my_image_title,  // 图像描述
		);

		// 添加图像 Alt
		update_post_meta( $post_ID, '_wp_attachment_image_alt', $my_image_title );

		// 添加标题、说明、描述
		wp_update_post( $my_image_meta );
	}
}
section

提示:上面的方法只适合在文章编辑页面使用,如果在媒体库上传无效。另外,图片名称为中文貌似有的主机环境并不支持。文章源自知更鸟-https://zmingcx.com/upload-image-renamed-to-article-title.html

section

如果认为折腾代码有点复杂,可以直接使用上传文件重命插件:Media File Renamer文章源自知更鸟-https://zmingcx.com/upload-image-renamed-to-article-title.html

 文章源自知更鸟-https://zmingcx.com/upload-image-renamed-to-article-title.html

weinxin
版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
让 WordPress 页面支持添加分类及标签 WordPress

让 WordPress 页面支持添加分类及标签

默认WordPress页面不支持选择分类和添加标签,可以通过下面的方法为页面添加分类及标签。 将下面代码添加到当前主题函数模板functions.php中: function san_add_taxo...
自定义 WordPress 文章显示数量 WordPress

自定义 WordPress 文章显示数量

一般我们都在设置 → 阅读 → 博客页面至多显示中,统一设置每个页面的文章显示数量,如果想某些页面自定义显示数量,不受这个控制,可以通过下面的代码实现。 自定义 WordPress 文章显示数量 将下...
WordPress 在文章页以标签云形式显示文章标签 WordPress

WordPress 在文章页以标签云形式显示文章标签

大家都看过WordPress 标签小工具的标签云,标签按文章数显示不同的大小,看上去很生动,那么在文章页面是否也可以用标签云的形式调用该文章标签呢?当然是可以的。 WordPress 在文章页以标签云...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定