默认帖子类型不在URL中显示

时间:2016-07-28 作者:LLP

我的网站目前有一个意见页面,其中显示意见帖子(/意见/)。

贴子页面仅在我需要/意见/贴子标题/时显示为/贴子标题/。

下面的代码,将默认的帖子类型更改为“意见”。

public function revcon_change_post_label() {
    global $menu;
    global $submenu;
    $menu[5][0] = \'Opinions\';
    $submenu[\'edit.php\'][5][0] = \'Opinions\';
    $submenu[\'edit.php\'][10][0] = \'Add Post\';
    $submenu[\'edit.php\'][16][0] = \'Opinion Tags\';
    echo \'\';
}

public function revcon_change_post_object() {
    global $wp_post_types;
    $labels = &$wp_post_types[\'post\']->labels;
    $labels->name = \'Opinions\';
    $labels->singular_name = \'Opinion\';
    $labels->add_new = \'Add Post\';
    $labels->add_new_item = \'Add Post\';
    $labels->edit_item = \'Edit Post\';
    $labels->new_item = \'Post\';
    $labels->view_item = \'View Post\';
    $labels->search_items = \'Search Opinions\';
    $labels->not_found = \'No Post found\';
    $labels->not_found_in_trash = \'No Posts found in Trash\';
    $labels->all_items = \'All Posts\';
    $labels->menu_name = \'Opinions\';
    $labels->name_admin_bar = \'Opinions\';
}
这两个功能位于wp-content/mu插件中,以及一些自定义的帖子类型设置。

我需要添加什么才能将url构建为/意见/帖子标题/?

1 个回复
SO网友:kaiser

通过更改global 在某个随机的时间点低于理想值。当你看到register_post_type() 这里有register_post_type_args 滤器

如何将其用作小型(mu-)插件的示例:

<?php
/**
 * Plugin Name: Change Post Type arguments for Post Type X
 */
add_filter( \'plugins_loaded\', function() {

    add_filter( \'register_post_type_args\', function( Array $args, $post_type ) {
        // Change nothing for all other post types
        if ( \'your_post_type\' !== $post_type )
            return $args;

        $args[\'rewrite\'] => [
            \'with_front\' => true,
            \'slug\'       => \'opinions\',
        ];

        return $args;
    }, 20, 2 );
} );
在上面的示例中,post类型获取/opinions “front”(前面)加了前缀。结果Url示例:

https://example.com/opinions/rewrites-are-cumbersome
调整labels, 使用labels 您将在上面的链接和下面的所有示例中找到的数组(加上更改帮助选项卡、更新消息等)。

您的管理菜单段塞和标签将自行调整,并由labels 您提供的参数。

相关推荐

GET_POSTS查询大约需要40秒来执行

我在get\\u帖子中有一个元查询,它需要花很长时间才能完成。它工作得很好,但只是时间太长了。我有一个名为event. 在每个event 发布后,有自定义元数据:post\\U sort\\U日期(事件日期YmdHis 格式,用于排序)我需要做的是获取下一个事件,该事件相对于$year 和$month 变量。所以如果$year = 2021 和$month = 10 (2021 10月)然后应该在2021 11月或之后找到第一个事件。我下面的查询很好,但很慢。执行大约需要40秒,我不知道为什么。$next