所有其他文章的字段的ACF字段校验值

时间:2019-08-12 作者:Hewe

我希望对我的ACF字段进行基本检查。我有一个ACF字段,名为Featured Article 在我的所有自定义帖子类型文章上。这是一个简单的开关,允许on, off 功能。我想允许最多3篇文章同时使用on 设置为在前端最多向用户显示3篇文章。

对于这个功能,我必须编写一些代码来检查所有文章的后端设置。例如,当用户正在阅读第四篇文章并将ACF的选择切换到on, 应该有这样一个分类错误:“您已经选择了三篇其他文章。理想情况下,它会以某种方式收集其他文章的标题,并允许快速关闭这些标题。”。

我知道这将向WP后端添加许多自定义功能,所以让我们从基础开始。如何使ACF字段能够交叉检查所有其他物品的价值?

1 个回复
SO网友:socki03

我能想到的唯一方法就是使用save_post action hook. 因为你的文章不是通过AJAX保存的,而且只有在你真正保存文章的时候,我认为那才是最好的地方。

老实说,我还没有写过很多错误消息,所以这可能是不可靠的,可能在一开始就行不通,但我从this article from SitePoint.

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;
}
这并不是为了让你度过整个过程,但希望这是你一个很好的起点。

相关推荐

通过unctions.php在纯javascript中安装GTM

GTM documentation 表示包含两个片段,1个在后面<head> 开始标记和1之后<body> 打开标签。最初,我是在孩子的标题中添加代码片段。php文件。我想放弃这个方法,改用纯JS,主要是因为父主题更新。我编写了下面的代码以在函数中使用。php,但它不起作用,我不知道我做错了什么。Edit : 我得到的错误是Uncaught TypeError: Cannot read property \'insertBefore\' of null 对于document.bod