我希望实现对我的ACF字段的基本检查。我在所有定制的post类型文章中都有一个名为Featured Article的ACF字段。这是一个简单的开关,允许on,off功能。我希望允许最多3篇文章同时与on设置,最多显示3篇文章给用户在前端。
对于这个功能,我必须编写一些代码来检查所有文章后端的设置。例如,当用户在第四篇文章中将ACF的选择切换到on时,应该会出现这样一个错误:“您已经选择了另外三篇文章,理想的情况是,它会以某种方式收集其他文章的标题,并允许快速关闭这些文章。
我知道这将为WP后端添加许多自定义特性,所以让我们从基础开始。如何使ACF字段能够交叉检查所有其他项目的值?
发布于 2019-08-12 16:13:00
我能想到的唯一办法就是使用save_post 动作钩。因为您的文章不是通过AJAX保存的,而且只有当您实际保存文章时,在我看来,这才是最好的地方。
老实说,我并没有写很多错误信息,所以这可能是不可靠的,而且可能无法走出大门,但我从这篇文章来自点开始。
add_action( 'save_post', 'my_save_post_function' );
function my_save_function( $post_id ) {
$error = false;
$featured = get_posts(array(
'meta_query' => array(
array(
'key' => 'featured_article',
'compare' => '=',
'value' => '1'
)
)
));
if ( count($featured) > 3 ) {
$error = new WP_Error('too_many_featured_articles', 'There are too many featured articles.');
// You could use this error to list the titles and links to edit all of the other current featured articles.
}
if ($error) {
// Here is where you would unset the ACF field, if you wanted.
}
return true;
}这并不意味着要让你度过难关,但希望这对你来说是一个很好的起点。
https://wordpress.stackexchange.com/questions/344949
复制相似问题