我使用高级自定义字段按帖子(书籍)或页面(家庭,联系人等)管理内容。但是,如果我想管理无法通过帖子或页面组织的内容,如营业时间,商家名称,标语,徽标等,该怎么办呢?
这些字段可能会在整个网站,页眉,页脚,页面,联系页面,主页等上多次出现。这些字段实际上不是帖子类型,为每个页面创建相同的自定义字段将是多余的
有没有办法使用ACF管理内容而无需通过帖子或页面组织内容?
类似的东西:
$fields = get_fields('general_info'); //not a page, not a post
echo $fields->site_name; //appears on every page
echo $fields->slogan; //appears on 70% of pages
echo $fields->logo; //appears on header, footer and about
答案 0 :(得分:2)
ACF的选项页面是处理此问题的好方法。首先,您在functions.php中注册选项页面,例如 -
if( function_exists('acf_add_options_page') ) {
acf_add_options_sub_page(array(
'title' => 'Theme Options',
'parent' => 'options-general.php',
'capability' => 'manage_options'
));
}
这将在WP菜单的“设置”下放置一个新页面。然后,您可以向此选项页面添加字段,并使用get_field('field_name', 'option');
答案 1 :(得分:0)
您可以使用原生的Customize Screen。你只需要将一个函数挂钩到customize_register
动作,并在其中创建部分和设置/控件,如下所示:
function mytheme_customize_register( $wp_customize ) {
$wp_customize->add_section('custom_footer', array(
'title' => 'Footer',
'priority' => 125,
));
$wp_customize->add_setting('copyright', array(
'default' => '',
'capability' => 'edit_theme_options',
));
$wp_customize->add_control('copyright', array(
'label' => 'Copyright',
'section' => 'custom_footer',
'settings' => 'copyright',
));
}
add_action('customize_register', 'mytheme_customize_register');
要使用您只需调用的值
get_theme_mod('copyright');
希望它有所帮助!