创建自定义的“玩家对象”

时间:2020-01-08 作者:Sergej Rachmaninoff

我正在寻找一种方法来创建“播放器对象”,然后所有这些对象都显示在一个页面上。它们应该只包含几个带有玩家姓名、角色和图像的文本数据字段。由于我对wordpress很陌生,我很难找到任何适合我需要的东西。计划是在“名册”页面上列出球员所玩的特定游戏,因此“游戏”类别将有助于对他们进行排序。

编辑:我无法准确描述我正在搜索的内容,如果需要,我会提供更多信息

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

对于玩家,您可以创建custom post type, 就像这样

function my_player_cpt() {
  $labels = array(
    \'name\'                  => _x( \'Players\', \'Post type general name\', \'textdomain\' ),
    \'singular_name\'         => _x( \'Player\', \'Post type singular name\', \'textdomain\' ),
  );  
  $args = array(
    \'labels\'             => $labels,
    \'public\'             => true,
    \'taxonomies\'         => array(\'game\')
    \'supports\'           => array( 
      \'title\', // player name
      \'thumbnail\', // player image
      \'excerpt\' // player role
    ),
  );
  register_post_type( \'player\', $args );
}
add_action(\'init\', \'my_player_cpt\');
摘录字段可用于保存玩家角色。其他选项可以是custom meta field.

游戏可能是custom taxonomy,

function my_game_taxonomy() {
  $args = array(
    \'label\'        => __( \'Game\', \'textdomain\' ),
    \'public\'       => true,
  );   
  register_taxonomy( \'game\', \'player\', $args );
}
add_action(\'init\', \'my_game_taxonomy\');
要使文章类型和分类主题独立,您应该将上述代码放入custom plugin. 这样,即使您更改了主题,内容也会在WP admin中保持可见。

然后在主题目录中创建taxonomy-game.php template 并将您的花名册页面代码添加到其中。下面是简单的循环示例。

<?php 
// taxonomy-game.php
get_header();

if (have_posts()) : ?>

    <?php while (have_posts()) : the_post(); ?>
    <article class="player">
        <?php the_post_thumbnail( \'thumbnail\' ); ?>

      <h2><?php the_title(); ?></h2>

      <span><?php the_excerpt(); ?></span>
    </article>
    <?php endwhile; ?>

        <?php // Navigation ?>

    <?php else : ?>

        <?php // No Posts Found ?>

<?php 
endif; 

get_footer();
?>