添加议程项目和通知

时间:2017-02-09 作者:Derk Jan Speelman

比如说,我正在为一家体育俱乐部创建一个网站。我想让教练和技术人员能够增加比赛。

我想对这些数据做的是将其显示在Tournements页面上。或者甚至可以在主页的横幅上发布一条通知“即将推出tournement:BalblablaTournement 4月6日”。

目前,我在Tournements页面的网站内容文本编辑器中有一个简单的HTML表。但对于没有HMTL知识的人来说,添加tournement并不是那么容易。他们必须复制、粘贴并编辑数据。那太可怕了。

有没有人能解决我的问题?非常感谢。

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

WordPress的组织方式是为锦标赛、游戏和参与者创建单独的帖子类型。

下面是tournament 岗位类型注册:

add_action( \'wp_loaded\', function() {

    register_post_type(
        \'tournament\',
        [
            \'label\' => __( \'Tournaments\', \'tournaments\' ),
            \'labels\' => [
                \'name\'                  => __( \'Tournaments\', \'tournaments\' ),
                \'singular_name\'         => __( \'Tournament\', \'tournaments\' ),
                \'add_new\'               => __( \'Add New\', \'tournaments\' ),
                \'add_new_item\'          => __( \'Add New Tournament\', \'tournaments\' ),
                \'edit_item\'             => __( \'Edit Tournament\', \'tournaments\' ),
                \'new_item\'              => __( \'New Tournament\', \'tournaments\' ),
                \'view_item\'             => __( \'View Tournament\', \'tournaments\' ),
                \'view_items\'            => __( \'View Tournaments\', \'tournaments\' ),
                \'search_items\'          => __( \'Search Tournaments\', \'tournaments\' ),
                \'not_found\'             => __( \'No tournaments found.\', \'tournaments\' ),
                \'not_found_in_trash\'    => __( \'No tournaments found in Trash.\', \'tournaments\' ),
                \'parent_item_colon\'     => __( \'Parent Tournament:\', \'tournaments\' ),
                \'all_items\'             => __( \'All Tournaments\', \'tournaments\' ),
                \'archives\'              => __( \'Tournament Archives\', \'tournaments\' ),
                \'attributes\'            => __( \'Tournament Attributes\', \'tournaments\' ),
                \'insert_into_item\'      => __( \'Insert into tournament\', \'tournaments\' ),
                \'uploaded_to_this_item\' => __( \'Uploaded to this tournament\', \'tournaments\' ),
                \'featured_image\'        => __( \'Banner\', \'tournaments\' ),
                \'set_featured_image\'    => __( \'Set banner\', \'tournaments\' ),
                \'remove_featured_image\' => __( \'Remove banner\', \'tournaments\' ),
                \'use_featured_image\'    => __( \'Use as banner\', \'tournaments\' ),
                \'filter_items_list\'     => __( \'Filter tournaments list\', \'tournaments\' ),
                \'items_list_navigation\' => __( \'Tournaments list navigation\', \'tournaments\' ),
                \'items_list\'            => __( \'Tournaments list\', \'tournaments\' ),
            ],
            \'public\' => TRUE,
            \'hierarchical\' =>TRUE,
            /*
             * \'edit_post\' is now \'edit_tournament\'
             * \'edit_posts\' is now \'edit_tournaments\'
             * Use these caabilities to set custom user capabilities, maybe
             * depending on the user role.
             */
            \'capability_type\' => [ \'tournament\', \'tournaments\' ],
            \'map_meta_cap\' => TRUE,
            \'supports\' => [
                \'title\',
                \'editor\',
                \'comments\',
                \'revisions\',
                \'author\',
                \'excerpt\',
                \'page-attributes\', // allows multiple custom tournament templates
                \'thumbnail\',
                \'custom-fields\'
            ],
            \'has_archive\' => __( \'tournaments\', \'tournaments\' ),
            \'rewrite\' => [
                \'slug\' => __( \'tournament\', \'tournaments\' ),
            ],
            \'delete_with_user\' => FALSE,
        ]
    );
});
正如您所看到的,您可以为该帖子类型使用一些内置功能,例如为横幅使用特色图像。您还可以将此帖子类型分层,以便为定期锦标赛提供“父”页面,并为每年或每月实例提供单独的页面。

我现在还要设置gamesplayers 以类似的方式发布类型(当然不是层次结构)。然后,我将为允许添加或编辑锦标赛的用户注册一个自定义用户角色。

对于概述页面,请使用存档模板,在这种情况下archive-tournament.php. 请参见Template Hierarchy 了解更多信息。您可以在此处轻松构建一个表,而不是通常的帖子列表。在每个锦标赛页面上(single-tournament.php), 你可以列出游戏和玩家、开始和结束时间、价格等等。对于这些数据,请使用锦标赛编辑器页面上的自定义元框。

这只是一个原始的概念。实际实施需要一段时间。确保手动编写代码,不要使用一些“神奇的”post类型UI插件!原因是您很可能需要随着时间的推移调整此代码;你应该通晓每一行。

相关推荐

cannot connect database

我是wordpress的新手。我计划从我自己的php代码连接wordpress数据库。但我在尝试连接数据库时遇到问题,每次连接都会得到错误结果。im使用此代码$user_name = \"myusername\"; $password = \"password\"; $database = \"mydatabasename\"; $host_name = \"localhost\"; $connect_db=mysqli_connect($host_name, $