在管理员帖子列表中获取多个类别的帖子

时间:2017-10-14 19:58:56

标签: php wordpress

我正在尝试使用“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' ); } 无法正常工作?

由于

1 个答案:

答案 0 :(得分:0)

已经有一个插件可以在方框的勾号中执行您需要的Role Scoper