在WordPress管理中编辑文章类型时,如何添加POST_TYPE=值?

时间:2020-06-30 作者:Trinity Branding

因此,基本上在Wordpress管理中,当您编辑一个;“发布”;您有一个url段塞,如。。。

post.php?post=829&action=edit&classic-editor
我想知道,是否有一个过滤器或方法可以将post\\u类型的查询参数添加到此url?这会导致像。。。

post.php?post=829&action=edit&classic-editor&post_type=product
我希望此操作适用于所有帖子类型(页面、帖子、产品等)

Why: 我有一个插件,它根据url中的字符串禁止加载插件。

My Goal: 是为了揭示post_type=value 在编辑帖子时在url中,这样我就可以在编辑不需要加载插件的帖子类型时禁止加载插件。

Example: 编辑公文包帖子类型时,我不需要加载Woocommerce或其插件。所以我想在编辑公文包帖子时禁用它们。

这完全是出于我可能公开提供的潜在mu站点的性能原因。

非常感谢。

1 个回复
最合适的回答,由SO网友:honk31 整理而成

好了,我在当前的开发中对其进行了测试,效果良好。它将post\\u type查询参数添加到所有编辑链接,甚至在自定义帖子类型和管理栏上也是如此。这甚至可以与预先存在的查询参数一起使用,我还有其他正在运行的插件(f.ex.wpml)。

function so370070_admin_url($url, $path)
{
    if (strpos($path, "post.php") !== false) :
        $post_type = get_post_type();
        if ($post_type) :
            $url = add_query_arg(\'post_type\', $post_type, $url);
        endif;
    endif;

    return $url;
}

add_filter(\'admin_url\', \'so370070_admin_url\', 10, 2);
由您自己解决,以下是附件的链接:

function so370070_register_post_type_args($args, $post_type)
{
  if ($post_type == \'attachment\') {
    //NOTE: This "_edit_link" arg is noted for Wordpress\'s internal use only
    //in /wp-includes/post.php around line 84
    //However, we are using a dveloper\'s filter to adjust it, so use accordingly
    //that you understand it may need tweaked if Wordpress itself makes changes
    //Overall it should be generally safe... no issues so far :)
    $args[\'_edit_link\'] = add_query_arg(\'post_type\', \'attachment\', $args[\'_edit_link\']);
  }

  return $args;
}

add_filter(\'register_post_type_args\', \'so370070_register_post_type_args\', 10, 2);

相关推荐

如何在GET_POSTS()函数中通过某个页面的插件及其所有子页面获取页面ID数组?

我的主题中有一个自定义函数,可以创建动态sitemap.xml 文件我用的是$myVar = get_posts( array(...) ). 在该数组中,我需要排除一些页面。我想排除某些父页面及其所有子页面。我只想使用父页面slug来获取父页面和子页面的所有ID的数组。问题是:\'exclude\' => 在array() 仅接受ID数组。不是鼻涕虫。如何通过某种函数(或其他方式)通过父页面slug返回ID数组(包括父ID及其所有子项)来实现它?例如,假设父页面slug是abc.谢谢你了。