我有没有办法在分类档案页面上设置一个勾选框,勾选后会在单独的页面上显示该分类的帖子?
我正在为我的工作开发一个系统,每个用户都可以“订阅”一个类别的帖子,然后在“我的列表”页面上显示他们勾选的类别中的帖子。
我遇到过几篇接近这一点的帖子,但没有真正的答案。
一个建议是使用我刚刚看过的add\\u meta\\u data/update\\u meta\\u data。我得到它是为了添加自定义元数据,但要更改它,我只能覆盖它。我当时的想法是,当勾选a复选框时,它会将类别id添加到其他类别id的列表中,并且取消选中会删除id。理想情况下,我认为最好是一个字段/列存储类别id,用逗号分隔,可以直接拉入wp\\U查询。如果有办法做到这一点,那么我很乐意把剩下的事情解决掉。
因此,用户流程将是:
转到分类页面,单击勾选框添加或删除分类,转到“我的列表”页面,查看已勾选分类中的帖子。我希望这足够清楚,如果有任何帮助,都将不胜感激(即使只是朝着正确的方向轻推)。谢谢
EDIT: 抱歉,显然我还不够清楚。This is not a mailing system.
我会尽量解释得更好。
01号岗位属于A类
02号岗位属于B类
03号岗位属于A类
04号岗位属于C类
在类别A的类别存档页面上,将显示Post 01和Post 03。侧栏中有一个勾选框,单击该框可将其“订阅”到该类别。(我使用subscribe作为描述行为的一般方式,而不是特定术语)
对于本例,假设用户单击了类别A和C的勾选框。
在单独的页面(“我的列表”)上,将显示用户“订阅”的所有类别的帖子。在这种情况下,将是01后、03后和04后。
最合适的回答,由SO网友:m.arch 整理而成
所以这还没有得到100%的测试,但基本逻辑是存在的。IF检查catID是否存在,是否不存在;使用当前列表+类别ID更新用户元。
需要做更多的工作来从列表中删除,但这是相同的原则。检查类别ID的字符串。如果存在,请从字符串中删除并存储为新字符串。使用该字符串更新用户元。
global $current_user;
get_currentuserinfo();
$user_id = $current_user->ID;
$currentList = $current_user->subList;
$cat_id = get_query_var(\'cat\');
$catStr = " " . $cat_id . ",";
$update;
if (strpos($currentList,$catStr) !== false) {
echo \'ALREADY IN LIST\';
}else{
echo \'ADDED TO LIST\';
$update = $currentList . $catStr;
update_user_meta($user_id, \'subList\', $update);
}