我正在尝试使用“pre_get_posts”操作来更改wordpress管理员中的帖子查询列表。我想要实现的是当用户具有特定角色时仅显示具有特定类别的帖子。例如,如果用户具有“内幕编辑”角色,则应仅允许他编辑具有特定类别的帖子,因此在管理员帖子列表中我只想列出他们可以编辑的帖子。
这有点工作,但我有36个帖子的类别为“2”,只有1个帖子有他的类别“3”...而在管理员我只看到36个帖子列出,他们都有类别“2 “即使正确显示总项目编号(37)。
这是我的代码
public int level = 1;
public PictureBox[] invaders;
public void spawn(int level)
{
int f = 0;
invaders = new PictureBox[100];
PictureBox invader = new PictureBox();
Bitmap img = (WindowsFormsApplication1.Properties.Resources.SpaceInvader);
for (int n = 32; n < (4 + level)*32; n=n+32)
{
for (int i = 90; i < 400; i = i + 37)
{
invaders[f] = new PictureBox();
invaders[f].Location = new Point(i, n);
invaders[f].Size = new Size(20, 15);
invaders[f].Image = img;
invaders[f].SizeMode = PictureBoxSizeMode.StretchImage;
invaders[f].BackColor = Color.Transparent;
this.Controls.Add(invaders[f]);
f++;
}
}
timer2.Interval = 10;
timer2.Start();
}
private void timer2_Tick(object sender, EventArgs e)
{
for (int i = 0; i < invaders.Length; i++)
{
invaders[i].Location = new Point(invaders[i].Location.X + 1, invaders[i].Location.Y);
}
}
为什么public function filter_post_for_xbox_insider_role($wp_query_obj)
{
global $pagenow;
if( !is_admin() ){
return;
}
if( 'edit.php' != $pagenow )
{
return;
}
if( 'post' != $wp_query_obj->query['post_type'] )
{
return;
}
$user = wp_get_current_user();
if($user->roles[0] != 'insider_editor')
{
return;
}
$wp_query_obj->set('cat', '2,3' );
}
无法正常工作?
由于