在多站点中添加新站点时添加内容时出现问题

时间:2019-06-19 12:05:08

标签: wordpress

在多站点WP中创建新站点时,尝试使用类型添加和标记帖子。我在主题中注册了CPT的代码,在插件中添加了示例帖子的代码。这有点让我感到后退。

将内容添加到多站点中新创建的站点中的最佳方法是什么?

试图在插件中添加代码。无效,可能是因为尚未添加CPT。将其添加到主题中是可行的,但是每次我向CPT手动添加新的Types时,它似乎都会触发,从而为示例提供了额外的副本。

从独立的php脚本运行功能正常,因此我认为这是一个计时问题。 IE会在添加CPT和分类法之前运行此功能。

        function sldb_prtl_add_terms(){
                                /* Register terms used for grouping articles in hardware form*/
                                $hardware_term=wp_insert_term('Hårdvara', 'sldb_prtl_artikeltyp');
                                if(is_wp_error($hardware_term)){
                                        $hardware_term = get_term_by('name', 'Hårdvara', 'sldb_prtl_artikeltyp',ARRAY_A);
                                }
                                wp_insert_term('Möss', 'sldb_prtl_artikeltyp', array('parent'=>$hardware_term['term_id']));
                                $example_address_id = get_page_by_title('Exempelartikel', ARRAY_A, 'sldb_prtl_artikel');
                                $parent_term_id = get_term_by('name', 'Möss', 'sldb_prtl_artikeltyp', ARRAY_A);
                                wp_set_post_terms($example_address_id['ID'], $parent_term_id['term_id'], 'sldb_prtl_artikeltyp');
        }
        add_action('wp_insert_site', 'sldb_prtl_add_terms');

我希望代码在建立新站点时可以一次添加上述类型的类型,而不必担心它将再次运行。

1 个答案:

答案 0 :(得分:0)

没有可行的解决方法,因为与此相关的信息很少(或者我只是在搜索错误的关键字)。

将挂钩的优先级更改为'init',并将函数的内容包装在我第一次运行后添加的if语句中。

    function sldb_prtl_add_terms(){
        if(!get_option('initial_terms_added')){

                // Register terms used for grouping articles in hardware form
                $hardware_term=wp_insert_term('Hårdvara', 'sldb_prtl_artikeltyp');
                wp_insert_term('Möss', 'sldb_prtl_artikeltyp', array('parent'=>$hardware_term['term_id']));
                $example_article_id = get_page_by_title('Exempelartikel', ARRAY_A, 'sldb_prtl_artikel');
                                $parent_term_id = get_term_by('name', 'Möss', 'sldb_prtl_artikeltyp', ARRAY_A);
                wp_set_post_terms($example_article_id['ID'], $parent_term_id['term_id'], 'sldb_prtl_artikeltyp');

                add_option('initial_terms_added', 1);
        }

    }
    add_action( 'init', 'sldb_prtl_add_terms', 20 );