当你需要修改一个主题时,你可以创建一个“子主题”有很好的说明here.
因此,我们只需在另一个主题不会覆盖的文件夹中创建修改后代码的安全副本。
我认为您要做的是创建一个自定义帖子类型“Book”,并将此帖子类型注册到“Author”分类中以下是一个示例:
function book_object() {
register_post_type(\'book\', array(
\'labels\' => array(
\'name\' => __(\'Books\', \'textdomain\'),
\'singular_name\' => __(\'Book\', \'textdomain\'),
\'add_new\' => __(\'Add New\', \'textdomain\'),
\'add_new_item\' => __(\'Add New Book\', \'textdomain\'),
\'edit_item\' => __(\'Edit Book\', \'textdomain\'),
\'new_item\' => __(\'New Book\', \'textdomain\'),
\'view_item\' => __(\'View Book\', \'textdomain\')
),
\'description\' => \'People like books.\',
\'register_meta_box_cb\' => \'book_fields\',
\'public\' => true,
\'menu_position\' => 20,
\'supports\' => array(\'title\', \'editor\', \'thumbnail\',),
\'hierarchical\' => true
)
);
}
function book_fields() {
add_meta_box(\'book_details\', __(\'Book Details\', \'textdomain\'), \'book_fields_cb\', \'book\', \'normal\', \'high\');
function book_fields_cb($post) {
$value = get_post_meta($post->ID, \'pubdate\', true);
echo \'<label for="pubdate">\'.__(\'Publish date\', \'textdomain\').\'</label><br />\';
echo \'<input type="text" id="pubdate" name="pubdate" value="\'.esc_attr($value).\'" size="25" /><br />\';
$value = get_post_meta($post->ID, \'field_2\', true);
echo \'<label for="field_2">\'.__(\'More custom fields\', \'textdomain\').\'</label><br />\';
echo \'<input type="text" id="field_2" name="field_2" value="\'.esc_attr($value).\'" size="25" /><br />\';
}
}
创建Book对象的。
要为作者创建分类,请执行以下操作:
function author_taxonomy() {
$labels = array(
\'name\' => _x( \'Authors\', \'taxonomy general name\' ),
\'singular_name\' => _x( \'Author\', \'taxonomy singular name\' ),
\'search_items\' => __( \'Search Authors\' ),
\'all_items\' => __( \'All Authors\' ),
\'parent_item\' => __( \'Parent Author\' ),
\'parent_item_colon\' => __( \'Parent Author:\' ),
\'edit_item\' => __( \'Edit Author\' ),
\'update_item\' => __( \'Update Author\' ),
\'add_new_item\' => __( \'Add New Author\' ),
\'new_item_name\' => __( \'New Author\' ),
\'menu_name\' => __( \'Authors\' ),
);
$args = array(
\'hierarchical\' => true,
\'labels\' => $labels,
\'show_ui\' => true,
\'show_admin_column\' => true,
\'query_var\' => true,
\'rewrite\' => array(
\'slug\' => \'authors\',
\'hierarchical\' => true,
\'with_front\' => false
),
);
register_taxonomy(\'author\', array(\'book\'), $args);
}
然后我们将这些函数连接到Wordpress中,如下所示:
add_action(\'init\', \'my_init\');
function my_init() {
book_object();
author_taxonomies();
}
最后一部分通常放在文件的顶部。有些人将add\\u操作行放在他们调用的代码块下面,但我喜欢在顶部嵌套连续的操作调用,以帮助我理解这一切。
这段代码基本上都是在一个名为functions的文件中独立完成的。php-除非您不使用该函数。旧主题文件夹中的php。
使用新样式创建新的主题文件夹。css-它只需要在顶部有以下注释:
/*
Theme Name: My custom book portal
Description: Child theme of OLD-THEME-NAME
Template: OLD-THEME-SLUG
Text Domain: textdomain
*/
因此,现在您在/wp-content/themes/中有了一个新文件夹,可以任意调用它。它包含样式。css和函数。php和上面的所有代码。您可以向该文件夹添加一个文件,该文件现在将帮助您显示数据;我们称之为分类学书籍。php并将其放置在子主题文件夹中。
我建议您从复制当前主题分类法中的所有代码开始。php文件,或者如果当前主题中不存在此类文件,请查找归档文件。php。这些文件将从您要查找的几乎所有内容开始。
如何让用户访问此页面,让我们回到您最初的问题-菜单。我们有它现在将显示的数据,我们有它的选择将链接到的页面-我们需要下拉菜单。我喜欢把它放在导航栏上。
在外观->菜单中,现在可以从菜单生成器左侧的WP选择框向任何导航菜单添加分类项目。如果你想让我给你写一个快速的小部件,我会寻找你的回复。