直接链接到特定类别中的“新帖子”?

时间:2018-02-23 作者:Iwww

如何创建到“New post”(/post New.php)的直接链接,该链接将创建自动添加到特定类别中的新帖子?

换句话说,我点击“第一类中的新帖子”链接,然后浏览器打开WP编辑器,其中“一类”已经被选中。

也许我可以用URL上的信息来做这件事?类似这样的内容:“/post new.php?postcategory=one”。不知道有没有可能。

非常感谢。

1 个回复
SO网友:obiPlabon

将以下代码粘贴到functions.php 文件这个wp_terms_checklist_args 过滤器挂钩将确保预先选择了一个或多个类别op_create_selected_cat_post_link() 函数将帮助您使用预先选择的类别ID创建新的帖子链接。函数需要$cats 参数,它可以是单个类别id或多个类别id。您还可以传递链接文本。该函数还检查用户登录状态和用户能力。

add_filter( \'wp_terms_checklist_args\', function( $args ) {
    global $pagenow;
    if ( is_admin() && \'post-new.php\' === $pagenow && isset( $_GET[\'cat\'] ) ) {
        $cat = array();
        if ( is_array( $_GET[\'cat\'] ) ) {
            $cat = array_filter( $_GET[\'cat\'], \'absint\' );
        } else {
            $cat = (array) absint( $_GET[\'cat\'] );
        }
        $args[\'selected_cats\'] = $cat;
    }
    return $args;
} );

/**
 * Create a new post link with preselected category
 *
 * @param int|array $cats Preselected category id
 * @return void
 */
function op_create_selected_cat_post_link( $cats, $text = \'Create a new post\' ) {
    if ( ! is_user_logged_in() || ! current_user_can( \'edit_posts\' ) ) {
        return;
    }

    $url = admin_url( add_query_arg(
        array(
            \'cat\' => $cats,
        ),
        \'post-new.php\'
    ) );

    echo \'<a href="\' . esc_url( $url ) . \'">\' . esc_html( $text ) . \'</a>\';
}

结束

相关推荐

Count posts for pagination

我正在为一个网站分页<;上一页(页码)下一页>很简单,已经完成。但是现在我需要添加一个选择器来直接转到页面(例如:转到第7页),要这样做,我需要知道有多少页面,为此我需要计算在查询中找到了多少帖子。问题是这个网站有太多的帖子(>13.000),查询所有帖子都会减慢页面加载速度,这就像。。。10秒后页面才能加载。显然,这是不可接受的。分页解决了这个问题,因为一次只加载50或100篇文章,但我无法将它们全部计算在内。我可以在不加载的情况下统计某个查询中的帖子吗?或者我可以通过其他方式获得页数吗