更改GET_POST_TYPE_OBJECT的设置

时间:2016-05-29 作者:Fabio

我有一个主题,主题开发人员为管理公文包部分提供了一个插件。此插件使用以下代码创建自定义帖子类型:

// Portfolio post type
register_post_type(\'wyde_portfolio\',
    array(
        \'labels\' => array(
            \'name\'          => __( \'Portfolios\', \'Wyde\' ),
            \'singular_name\' => __( \'Portfolio\', \'Wyde\' ),
            \'add_new\'       => __(\'Add New\', \'Wyde\' ),
            \'add_new_item\'  => __(\'Add New Portfolio\', \'Wyde\'),
            \'edit_item\'     => __(\'Edit Portfolio\', \'Wyde\'),
            \'new_item\'      => __(\'New Portfolio\', \'Wyde\'),
            \'view_item\'     => __(\'View Portfolios\', \'Wyde\'),
            \'menu_name\'     => __(\'Portfolios\', \'Wyde\')
        ),
        \'public\'      => true,
        \'has_archive\' => false,
        \'rewrite\'     => array(
            \'slug\'    => sanitize_title( $portfolio_slug ),
        ),
        \'supports\'   => array( \'title\', \'editor\', \'thumbnail\'),
        \'can_export\' => true,
        \'menu_icon\'  => \'dashicons-portfolio\'
    )
);
我想在重写中添加带有\\u front=>false的选项,以便将所有永久链接放在我的站点的根目录中。因此,我不得不更改重写:

\'rewrite\' => array(
    \'slug\' => sanitize_title( $portfolio_slug ),
    with_front => false,
),
我不想更改插件文件,因为每次更新都会丢失更改。是否可以稍后添加该选项,例如在函数中。我的孩子主题的php?

正在读取register_post_type documentation 似乎可以修改post类型(创建或modifying 帖子类型)。我试图简单地将其添加到我的函数中。php:

register_post_type(\'wyde_portfolio\',
    array(
        \'rewrite\' => array(
            \'slug\' => sanitize_title( $portfolio_slug ),
            with_front => false,
        ),
    )
);
但它不起作用。

我还尝试重新声明register\\u post\\u类型中的所有参数,但仍然不起作用。

我也尝试过:

$no = get_post_type_object(\'wyde_portfolio\');
$no -> rewrite[\'with_front\'] = false;
register_post_type(\'wyde_portfolio\', $no ); 
你对我如何解决这个问题有什么建议吗?

1 个回复
SO网友:Capiedge

由于WP 4.4.0,您可以使用this filter 这允许您更改原始cpt注册中使用的参数。

将此添加到您的函数中。php文件:

add_filter( \'register_post_type_args\', function( $args, $post_type ) {
    if( \'wyde_portfolio\' === $post_type && is_array( $args ) )
        $args[\'rewrite\'][\'with_front\'] = false;

    return $args;
}, 99, 2 );
这是从最近的一个答案中提取的,https://wordpress.stackexchange.com/a/224376/39150

希望有帮助!

相关推荐

Get term by slug in Gutenberg

在古腾堡,可以使用getEntityRecord 通过术语id获取特定分类法术语数据的选择器:// Get the category term with term id = 25 const term = useSelect( ( select ) => select(\'core\').getEntityRecord( \'taxonomy\', \'category\', 25 ) ); 我的问题是,有没有办法通过使用术语slug而不是术语id来获取特定