我写了一个简单的php代码,它检查用户角色和帖子自定义字段,以决定帖子是否显示在列表中。
如果我在一个手动的post循环中编写代码,并在post结构周围创建一个if,它就可以正常工作。
现在我想把它打包成一个函数,在每次get_post时自动运行,但这里我的WordPress知识已经结束了。
我只找到了一些例子来防止帖子根据类别显示。
它本身的代码不是很相关...只有当$ure_display变量被设置为true =显示列表中的文章,否则隐藏文章。
代码:
<?php
$user = wp_get_current_user();
$get_roles = ( array ) $user->roles;
$cust = get_post_custom($post_id);
$ure_roles = $cust["ure_content_for_roles"][0];
$ure_flag = $cust["ure_prohibit_allow_flag"][0];
$ure_display = "false";
$permchk = 0;
foreach ($get_roles as $value) {
if (str_contains($ure_roles, $value)) {
$permchk = 1;
}
}
if ($permchk == 1 && $ure_flag == 2){
$ure_display = "true";
echo $ure_display;
}
?>
我希望有人能帮我举个例子。
非常感谢!
1条答案
按热度按时间scyqe7ek1#
要在WordPress中自动执行每个'get_post'循环的PHP代码,您可以使用'the_post钩子',它在显示每个帖子之前被触发。下面是一个如何实现此目标的示例:
此函数挂钩到'the_post',并为每个帖子应用您的自定义显示逻辑。如果文章应该显示,它将返回'true',如果根据您的条件应该隐藏,则返回'false'。