名称中带有元音的自定义POST_TYPE

时间:2013-12-03 作者:honk31

嗨,谢谢你过来。我创建了一个自定义的\\u post\\u类型,如下所示:

function custom_post_types() {
    register_post_type( \'veroeffentlichungen\',
        array(
            \'labels\' => array(
                \'name\' => __( \'Veröffentlichungen\' ),
                \'menu_name\' => \'Veröffentlichung\'
            ),
        \'public\' => true,
        \'has_archive\' => true,
        \'rewrite\' => array(\'slug\' => \'veroeffentlichungen\')
        )
    );
}
add_action( \'init\', \'custom_post_types\' );
这很好用。现在我需要导航来显示类,当im在一个页面上以该帖子类型显示时.current-menu-item

我使用以下功能(包括print\\r…)完成此操作:

add_filter(\'nav_menu_css_class\', \'current_type_nav_class\', 10, 2 );
function current_type_nav_class($classes, $item) {
    print_r($item);
    $post_type = get_post_type();
    print_r($post_type);
    if ($item->post_name != \'\' && $item->post_name == $post_type) {
        array_push($classes, \'current-menu-item\');
    };
    return $classes;
}
但是print_r()\'s不同:

$post_type       = veroeffentlichungen
$item->post_name = veroffentlichungen
theö应该变成oe,而不是o,但我不知道在哪里编辑$item->post_name, 我想这应该在标签数组中完成,但我在codex中找不到解决方案。

的输出print_r($item)

WP_Post Object
(
    ...
    [post_title] => Veröffentlichungen
    ...
    [post_name] => veroffentlichungen
    ...
    [title] => Veröffentlichungen
    [url] => /veroeffentlichungen/
    ...
)

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

现在,我更改了导航功能以检查url,因为这一功能在所有情况下都是正确的(我有一些其他自定义的\\u post\\u类型,它们工作得很好,现在仍然可以)。我只需要从url中删除斜杠:

add_filter(\'nav_menu_css_class\', \'current_type_nav_class\', 10, 2 );
function current_type_nav_class($classes, $item) {
    $post_type = get_post_type();
    if ($item->post_name != \'\' && str_replace("/", "", $item->url) == $post_type) {
        array_push($classes, \'current-menu-item\');
    };
    return $classes;
}

结束

相关推荐