我必须做点什么,但我就是想不出一个办法
一方面,我创建了属于公司的页面。所以每个页面都是公司页面
另一方面,我创建了一些用户,这些用户的个人资料中添加了一个自定义字段,该字段包含他们工作的公司的名称。
不,这只是两者之间的联系。所以我得出的结论是,如果一家公司被删除,用户应该被删除,或者至少应该出现一条消息,说明该公司不能被删除,因为仍然有用户连接到该公司。
我想我应该引入某种函数,向页面删除按钮添加一个操作。
这就像你删除了一个用户,WP会询问你该用户的帖子是否分配给了另一个用户。
有人能告诉我更多关于这方面的信息或分享一些想法/想法吗?
=========================================================================
更新
因此,我创建了以下自定义函数,以便在before_delete_post
<注意:出于输出目的,这是在公司页面上测试的。我使用$_GET["company"]
请求,因为名称已在URL中传递。
global $post;
$company = $_GET[\'company\'];
$employees = $wpdb->get_results("
SELECT meta_value
FROM $wpdb->usermeta
WHERE meta_key = \'company\'
AND meta_value=\'$company\'"
);
/*
output $employees:
[0] => stdClass Object
(
[meta_value] => company_name
)
*/
if(in_array($company, $employees)){
echo \'Yes\';
}else{
echo \'No\';
}
假设我想删除该页面
company_name
. 我要做的是看看这个名字是否在
usermeta
桌子如果这是真的,则不应执行删除功能。如果没有,则可以删除该页面。
但这只是不断的回响No
虽然它应该回音Yes
因为我知道页面名是company_name
并且在员工列表中。所以我应该有一场比赛。
最合适的回答,由SO网友:Iamzozo 整理而成
它给出了一个包含对象的数组。所以in_array()
找不到任何东西,你必须先转换它。从wbdb获得结果后:
$employees_array = array();
foreach($employees as $employee) {
$employees_array[] = $employee->meta_value;
}
if(in_array($company, $employees_array)) {
...
}