作者的机器人自动发布后找不到自定义帖子类型的单页

时间:2019-10-10 作者:mohsen

我使用一个具有自定义帖子类型的插件,当我发布帖子时,它会显示在一个页面上,但当帖子使用作者的robot插件自动发布时,不幸的是,找不到单个页面,并显示错误404!!我在类中的自定义帖子类型如下:

<?php
/*------------------------
function init
-------------------------*/
    static function init(){
        add_action( \'init\', array( __CLASS__, \'register_post_types\' ) );
    }
/*------------------------
register post type
-------------------------*/
 static function register_post_types(){
    $labels = array(
         //custom post type
    );
    $args = array(
            \'labels\'            => $labels,
            \'public\'            => true,
            \'show_ui\'           => true,
            \'hierarchical\'      => false,
            \'rewrite\'           => array(\'slug\' => \'jobtest\'),
            \'query_var\'         => true,
            \'has_archive\'       => true,
            \'supports\'          => array(\'title\', \'editor\', \'author\', \'thumbnail\', \'excerpt\', \'comments\' )
    );
    register_post_type( \'iwj_job\' , $args );
}
我有这个功能的主插件文件:

public function init_hooks() {
     register_activation_hook( __FILE__, array( \'IWJ_active\', \'activate\' ) );
}
在我的课堂上,我有这样一个问题:

   static function activate() {
     IWJ_Post_Types::register_post_types();
     flush_rewrite_rules();
   }
我不知道为什么当我使用Author Robot插件发布帖子时,找不到自定义帖子类型的单页??但当我再次手动更新它时,它就可以工作了!

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

我能够用我的评论解决这个问题。我将以下代码放入查询中。班php文件,问题已解决。

static function init(){
    if (!is_blog_admin()) {
        add_action(\'parse_query\', array(__CLASS__, \'parse_query\'));
    }
}

static function parse_query($query) {
    if(!is_blog_admin() && ($query->get(\'post_type\') == \'iwj_job\' || is_tax(iwj_get_job_taxonomies())) && $query->is_main_query()) {
    $query->set( \'post_type\', array( \'post\', \'iwj_job\' ) );
    }           
}

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。