当主题使用与插件冲突的自定义POST类型插件时,该怎么办?

时间:2016-11-02 作者:Steve

我是设计师,不是开发人员。

客户端正在使用免费的第三方Wordpress主题,安装事件日历时,默认事件日历不会加载@/events.

正文标记看起来正确:

<body class="archive post-type-archive post-type-archive-tribe_events logged-in admin-bar no-customize-support tribe-filter-live events-gridview events-archive tribe-events-style-full tribe-events-style-theme tribe-theme-peachclub-theme page-template-page-php singular" >

另一个网站上的工作事件日历页的正文标记为:

<body class="archive post-type-archive post-type-archive-tribe_events tribe-filter-live events-gridview events-archive tribe-events-style-full tribe-events-style-theme tribe-theme-parent-ManiaFramework tribe-theme-child-AutoRacing page-template-page-php singular">

此外,如果访问“Dashboard”>“Events”>“Settings”,则看不到任何设置:

enter image description here

如果我将主题更改为“二十点十五”,日历将显示在/events, 此时将显示事件设置页面。

我已经向插件作者寻求帮助,但他们说主题与活动日历不兼容。

我想知道这是否是因为主题和插件在某些方面与slug冲突?

如何测试主题是否使用事件日历使用的自定义post类型slug?

我尝试停用活动日历,并在主题中添加以下代码functions.php:

if ( ! function_exists( \'unregister_post_type\' ) ) :
function unregister_post_type() {
    global $wp_post_types;
    if ( isset( $wp_post_types[ \'event\' ] ) ) {
        unset( $wp_post_types[ \'event\' ] );
        return true;
    }
    if ( isset( $wp_post_types[ \'events\' ] ) ) {
        unset( $wp_post_types[ \'events\' ] );
        return true;
    }   
    return false;
}
endif;

add_action(\'init\', \'unregister_post_type\');
上传后functions.php, 并重新加载主页,/events 生成了一个404,我认为这很有希望,但重新激活事件日历并没有使日历加载@/events.

感谢您的帮助。

3 个回复
SO网友:Sandun

禁用WordPress事件插件。

在函数中使用以下代码。php具有查找主题事件的功能。

if ( post_type_exists( \'events\' ) ) {
       echo \'the Event post type exists\';
}else{
       echo \'the Event post type does not exists\';
}
如果发现主题具有事件自定义帖子类型,请查找主题注册自定义帖子类型的位置。很可能是函数。php。检查功能。php有register_post_type( \'events\', $args ); . $args变量可能具有不同的名称。所以,找到它的位置register_post_type( \'events\', 使用IDE或按ctrl+f5。

如果您在函数中找到它。php创建子主题。即使你不是WordPress开发人员,也可以通过google搜索找到如何创建子主题。这并不难。

然后复制函数。php文件到子主题。然后移除register_post_type( \'events\', $args ); 它的部件。

SO网友:Svetoslav Marinov

请主题开发人员或插件开发人员为其自定义帖子类型添加前缀。如果你迫不及待,那么就从较小的代码开始自己动手吧,我正在考虑主题。

SO网友:cowgill

你无法修复你不知道的坏东西。

View the Error Logs

你有访问他们网站的权限吗?

它可能通过cPanel提供。查看显示的错误类型。它可能是一个名称类似的PHP函数或其他导致问题的东西。

Confirm Post Type Name Collision

如果您有权访问数据库,很容易看到post类型是否冲突。

登录到您的数据库=>cPanel=>phpMyAdmin打开正确的数据库并选择wp\\u posts表查看内容并向右滚动,直到您看到post_type 列查看是否有多种不同的帖子类型

wordpress posts table post type

相关推荐

为什么我的可过滤公文包页面在Slug按钮和Slug输出WORDRPESS之间不能完美地工作?

我目前在Wordpress中有一个公文包自定义页面,可以根据需要工作,但我有一个问题。问题是,当我单击其中一个slug按钮时,主体/输出不是我想要的那样工作,例如在slug IOS中有3个项目,当我单击IOS slug中的“显示3个项目”时,应该是这样,但在这只显示1个项目。我读过很多类似于这个问题的教程,但都没有解决,请有人帮帮我,我一直在尝试解决这个问题,但仍然没有成功。以下是我读过的一篇文章:https://danny.care/a-responsive-filterable-portfolio-t