允许用户在其控制面板上查看其帖子

时间:2013-05-05 作者:mit

我想允许用户在其仪表板上显示Post选项。用户只能显示其帖子。我是如何做到这一点的。请帮帮我。

1 个回复
SO网友:Charles Clarkson

你似乎在问两个问题:

1) 如何在仪表板上放置东西?

2) 如何获取当前作者撰写的所有帖子的链接?

在仪表板上放置内容的一种方法是使用仪表板小部件。这个Dashboard Widgets API 描述了详细信息,但这里有一些基于它的代码。

add_action( \'wp_dashboard_setup\', \'ckc_author_posts_dashboard_widget\' );

/**
 * This function runs when the \'wp_dashboard_setup\' action is
 * called. It adds the widget and calls the function that that fills
 * the widget.
 */
function ckc_author_posts_dashboard_widget() {
    wp_add_dashboard_widget( \'author_posts_dashboard_widget\', __( \'Your Posts\', \'theme_text_domain\' ), \'ckc_author_posts\' );
}

/**
 *  This function displays the text in the \'author_posts_dashboard_widget\'.
 */
function ckc_author_posts() {
    // Display whatever it is you want to show
    echo "This is where the posts for this author will be displayed.";
}
将该代码添加到函数中。php主题文件。”如果使用主题的文本域,则应将“theme\\u text\\u domain”替换为主题的文本域。否则保持原样。

您应该会得到一个新的仪表板小部件,其文本为“此处将显示此作者的帖子。”在里面。

要获取作者帖子的链接列表,请在WordPress数据库上运行查询。这听起来很花哨,很技术,但信息是用(相当)简单的英语写成的WP_Query Object Reference. 这是我用来测试这个答案的代码。

/**
 *  This function displays the text in the \'author_posts_dashboard_widget\'.
 */
function ckc_author_posts() {
    $current_user = wp_get_current_user();

    // This is the query. Change it to change which
    // posts appear in the while loop below.
    $author_posts = new WP_Query( array(
        \'author\' => $current_user->ID,
    ) );

    if ( $author_posts->have_posts() ) {

        echo \'<ul>\';

        while ( $author_posts->have_posts() ) {
            $author_posts->the_post();

            printf(
                "<li><a href=\'%s\'>%s</a> (<a href=\'%s\'>Edit</a>)</li>\\n",
                get_permalink(),
                get_the_title(),
                get_edit_post_link()
            );
        }

        echo \'</ul>\';

    } else {
        echo \'No Post found.\';
    }
}
这将生成当前作者的所有帖子列表,并添加一个链接来编辑帖子。我没有彻底测试它,但查询应该获取该作者的所有帖子、已发布、未发布、垃圾桶中的帖子等。如果您想要一些不同的东西,您应该调整WP_Query() 呼叫

如果不希望编辑链接,请替换printf() 代码如下:

            printf(
                "<li><a href=\'%s\'>%s</a></li>\\n",
                get_permalink(),
                get_the_title()
            );

结束

相关推荐

Next/Prev posts on same page

WordPress用户您好,我在建立wordpress网站时遇到了一个问题,我不知道该怎么办。目前,我正在“新闻”页面上显示2篇来自“新闻”类别的帖子。在这个页面的底部,我想要一个上一页/下一页按钮,显示同一类别的下一篇或前两篇文章。所以我在想我该怎么做。所以我找到了这个代码:previous_posts_link(\'Newer Entries »\') next_posts_link(\'« Older Entries\'); 这显示了一个我所期望的链接。但两个链接都不起作用(页面重