wordpress - 在多站点中添加新站点时添加内容时出现问题
问题描述
在多站点 WP 中创建新站点时尝试使用类型添加和标记帖子。我在主题中获得了注册 CPT 的代码和在插件中添加示例帖子的代码。这对我来说有点落后。
在多站点中向新创建的站点添加内容的最佳方式是什么?
试图在插件中添加代码。没用,可能是因为还没有添加 CPT。将它添加到主题中是可行的,但它似乎每次我手动将新类型添加到我的 CPT 时都会触发,这给了我额外的示例副本。
从独立的 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');
我希望代码在建立新站点时添加上述类型一次,而不必担心它会再次运行。
解决方案
做了一个肮脏的解决方法,因为有关此的信息很少(或者我只是在搜索错误的关键字)。
将钩子更改为优先级为 20 的“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 );
推荐阅读
- c++ - 内存在这个 C++ 程序中的行为如何?
- c++ - 无法设置条件变量
- sql - 我有一个从 SP 获取值的表。我想知道数据组合是否反向重复
- asp.net-mvc - IIS 8.5:为应用程序池“AppPool 名称”提供服务的进程无法响应 ping
- python - 将多个 json 文件转换为单个 csv 文件
- amazon-web-services - AWS 中的账户名和用户名有什么区别?
- php - Sonata Admin - 如何向字段添加链接
- python - Django runserver 问题“python manage.ph runserver”
- php - 为什么我的 PHP 表单不起作用?我确实收到了电子邮件,但里面没有内容
- c# - 短暂的事务缓存