我的自定义帖子类型“references”有一个名为“references_count”的自定义字段。它有一个数值。
我有一个名为“country”的自定义分类,其中包含一个名为“country_count”的术语自定义字段。
**背景:**自定义帖子类型“references”保存了 * 城市 * 以及该城市 * 中的 * 客户数量。该值保存在字段“references_count”中。在自定义分类中,存在国家/地区。对于每个国家/地区,都存在 * 引用总数 *。
**示例:**在“柏林”城市中有3个客户端。在“慕尼黑”城市中有2个客户端。分类术语“德国”包括此国家/地区中所有城市的总和。因此,在此示例中,分类术语“Germany”的“country_count”值为5,即每个城市的引用的总和。
我写的这段代码是有效的,如果我保存每个分类术语的话。
add_action( 'edited_country', 'update_counter_for_countries', 10, 2 );
function update_counter_for_countries( $term_id ) {
// Get posts with term
$args = array(
'post_type' => 'reference',
'posts_per_page' => -1,
'tax_query' => array(
array(
'taxonomy' => 'country',
'field' => 'term_id',
'terms' => $term_id
)
)
);
$the_query = new WP_Query( $args );
// sum values in posts
$sumTerm = 0;
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post();
$number = get_field( 'references_count', get_the_ID() );
$sumTerm = $sumTerm + $number;
}
}
wp_reset_postdata();
// update field in term
update_field( 'country_count', $sumTerm, 'country'.'_'.$term_id );
}
**问题:**我有100多个国家/地区(分类术语),因此我必须单独保存每个术语才能继续工作。
**我正在寻找的:**有没有一种方法可以一次更新/保存所有的自定义分类术语,这样我就不必分别更新每个术语了?我检查了很多插件,但没有找到任何插件可以提供“批量编辑”或“批量保存”分类术语的可能性。如果可能的话,我更喜欢没有插件的解决方案。我非常感谢任何提示,非常感谢。
2条答案
按热度按时间ctehm74n1#
您可以使用此代码一次性更新所有术语。只需确保备份数据库以备不时之需。
此代码将遍历所有术语,并且只运行一次。之后,您可以删除此代码。
为了使此代码仅在您的IP上运行,请将www.example.com更改111.111.111.111为您的IP地址。
bgibtngc2#
我希望有一个整洁的管理页面,带有一个按钮来批量更新我所有的分类术语。这个过程应该使用 AJAX ,所以它可以花一段时间,而不会让用户感到困惑。应该有状态消息。
所以在第一步我添加了一个新的管理页面到WordPress后端。
在输出函数中,我放置了一个带有按钮的表单,用于批量更新条款,以及一些状态消息。
在第二步中,我必须为 AJAX 调用将脚本文件入队:
并创建批量更新我的所有税收术语的函数:
第三步,在ajax_calls. js文件中,我使用click事件调用函数,以便使用ajax更新分类术语。
有消息表明该功能正在运行,它显示消息时,它完成或有一个错误。这样,用户将始终知道发生了什么事时,批量更新条款。