将.po和.mo格式添加到WordPress

tez616oj  于 2023-11-17  发布在  WordPress
关注(0)|答案(1)|浏览(114)

我需要在我设计的WordPress主题的一部分中添加一些格式,如icosvg,我通过将以下代码放入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 );

字符串
现在我想介绍两种格式.po and .mo到WordPress的支持。
我唯一的问题是,我不知道这两种格式是什么,无论我搜索什么,我都没有找到任何东西。
有人知道这两种格式的类型吗?或者我可以使用application/msword (.doc)吗?

编辑:

我找到了以下.po and .mo的教程,但我仍然找不到格式类型:
Opening PO Files
Media type

r6l8ljro

r6l8ljro1#

Dyn对问题How to make a header for gettext .po files?的回答有你对.po文件的回答:
只需下载一个示例.po文件,并使用常规文本编辑器查看内部。标题包含以下信息:
“Content-Type:text/plain; charset=UTF-8\n”
.po的mime类型是:text/plain。
至于.mo文件,这是一个二进制文件。RFC 2046 (MIME) Part Two: Media Types说:
“应用”媒体类型用于不适合任何其他类别的离散数据,特别是用于由某种类型的应用程序处理的数据。
“octet-stream”子类型用于指示主体包含任意二进制数据。
可以用于.mo的mime类型是:application/octet-stream。

更新

看起来至少有两种方法可以尝试:

  1. wp_check_filetype_and_ext,以及
  2. ALLOW_UNFILTERED_UPLOADS in wp-config.php
    我都测试过了。它们都能在WordPress 6.4版上运行。

wp_check_filetype_and_ext

内森Json的回答从这个问题:Allow CSV files to be uploaded使用WordPress的过滤器挂钩wp_check_filetype_and_ext.该WordPress的挂钩说,它:
过滤给定文件的“真实的”文件类型。
除了mime_types filter hook或upload_mimes filter hook之外,wp_check_filetype_and_ext还允许至少具有Author角色的用户上传.po.mo文件。您可以更仔细地遵循NathanJson的答案,将此上传权限限制为特定的用户角色。请参阅下面的代码示例。

代码示例

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-config.php更新建议在标题下非图像文件上传错误在这个WP引擎帖子MIME类型在WordPress说:
将以下行添加到wp-wp.php文件中。这将只允许管理员上传非图像:

define( 'ALLOW_UNFILTERED_UPLOADS', true );

相关问题