Post types translation

时间:2014-08-16 作者:Ksenia

我尝试翻译帖子类型名称(帖子、页面和附件)。

我有以下代码:

function create_skip_post_types_box () {
        $post_types = get_post_types(array(\'public\'=>true), \'names\' );
        $opt = $this->_get_option();
        $skip_types = is_array(@$opt[\'skip_post_types\']) ? @$opt[\'skip_post_types\'] : array();

        foreach ($post_types as $tid=>$type) {
            $checked = in_array($type, $skip_types) ? \'checked="checked"\' : \'\';
            echo
                "<input type=\'hidden\' name=\'wdpv[skip_post_types][{$type}]\' value=\'0\' />" . // Override for checkbox
                "<input {$checked} type=\'checkbox\' name=\'wdpv[skip_post_types][{$type}]\' id=\'skip_post_types-{$tid}\' value=\'{$type}\' /> " .
                "<label for=\'skip_post_types-{$tid}\'>" . ucfirst($type) . "</label>" .
            "<br />";
        }
    }
我尝试使用ucfirst(\\uuu($type,\'textdomain\')),但没有成功。

我知道对于用户角色,我们可以使用translate\\u user\\u role函数,但是关于帖子类型呢?

非常感谢。

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

使用get_post_types( [\'public\' => TRUE ], \'objects\' );. 这将返回已翻译的帖子类型标签和其他信息。

测试示例:

add_action( \'wp_footer\', function() {
    $post_types = get_post_types(
        [ \'public\' => TRUE, \'_builtin\' => TRUE ],
        \'objects\' // complete information, not just the name
    );

    foreach ( $post_types as $slug => $arguments )
        print "$slug: {$arguments->labels->singular_name}<br>";

    print \'<pre>\' . print_r( $post_types, 1 ) . \'</pre>\';
});

结束

相关推荐

为什么PUBLISH_{CUSTOM-POST-TYPE}在更新时触发?

我正在尝试对发布和更新启动两个不同的操作。两者都不应同时开火。问题是publish_pm_task 正在更新时被解雇,并且save_post 永远不会被解雇吗?看到这个有什么问题吗?<?php // Updated task notification add_action( \'save_post\', \'pm_updated_task_notification\' ); // New task notification add_action( \'pub