提问人:Benjamin 提问时间:11/8/2023 最后编辑:Benjamin 更新时间:11/9/2023 访问量:41
将 .po 和 .mo 格式添加到 WordPress
Add .po and .mo format to WordPress
问:
我需要在我设计的 WordPress 主题的一部分中添加一些格式,例如 ico 和 svg,我通过将以下代码放入文件中来完成:functions.php
function upload( $mime_types ) {
$mime_types[ 'svg' ] = 'image/svg+xml';
$mime_types[ 'ico' ] = 'image/vnd.microsoft.icon';
return $mime_types;
}
add_filter( 'upload_mimes', 'upload', 1, 1 );
现在我想向 WordPress 介绍两种格式以获得支持。.po and .mo
我唯一的问题是我不知道这两种格式是什么,无论我搜索什么,我都没有找到任何东西。
有谁知道这两种格式的类型?
或者我可以用于它们吗?application/msword (.doc)
编辑:
我找到了以下格式教程,但仍然找不到格式类型:.po and .mo
答:
Dyn 对这个问题的回答 如何为 gettext .po 文件制作标头? 有你对文件的答案:.po
只需下载一个示例 .po 文件,然后使用常规文本编辑器查看内部。标头包含以下信息:“
Content-Type: text/plain;字符集 = UTF-8\n”
的 MIME 类型为:text/plain。.po
至于文件,这是一个二进制文件。RFC 2046 (MIME) Part Two: Media Types说道:.mo
“应用程序”媒体类型用于不属于任何其他类别的离散数据,特别是用于由某种类型的应用程序处理的数据。
“octet-stream”子类型用于指示正文包含任意二进制数据。
可用于的 MIME 类型为:application/octet-stream。.mo
更新
看起来至少有两种方法可以尝试:
- wp_check_filetype_and_ext和
- ALLOW_UNFILTERED_UPLOADS
wp-config.php
我已经测试了两者。他们都在 WordPress 6.4 版上工作。
wp_check_filetype_and_ext
Nathan Johnson 对这个问题的回答:允许上传 CSV 文件使用 WordPress 过滤器钩子wp_check_filetype_and_ext。这个钩子的 WordPress 文档说它:
筛选给定文件的“真实”文件类型。
wp_check_filetype_and_ext
除了 mime_types 筛选器挂钩或upload_mimes筛选器挂钩之外,还允许至少具有“作者”角色的用户上传和提交文件。您可以更密切地关注 Nathan Johnson 的回答,将此上传权限限制为特定用户角色。请参阅下面的代码示例。.po
.mo
代码示例
function add_my_mimes( $mime_types ) {
$mime_types['mo'] = "application/octet-stream";
$mime_types['po'] = "text/plain";
return $mime_types;
}
add_filter( 'upload_mimes', 'add_my_mimes' );
// Add filter to check filetype and extension
function wpse_check_filetype_and_ext( $args, $file, $filename, $mimes ) {
$extension = pathinfo( $filename )[ 'extension' ];
if ( 'mo' === $extension ) {
$args = array(
'ext' => 'mo',
'type' => 'application/octet-stream',
'proper_filename' => $filename,
);
} elseif ( 'po' === $extension ) {
$args = array(
'ext' => 'po',
'type' => 'text/plain',
'proper_filename' => $filename,
);
}
return $args;
}
add_filter( 'wp_check_filetype_and_ext', 'wpse_check_filetype_and_ext', 10, 4 );
ALLOW_UNFILTERED_UPLOADS
在此WP Engine帖子中的非图像文件上传错误标题下建议的更新WordPress中的MIME类型说:wp-config.php
将以下行添加到 wp-config.php 文件。这将仅允许管理员上传非图像:
define( 'ALLOW_UNFILTERED_UPLOADS', true );
评论