管理非帖子或网页的内容

时间:2016-03-10 14:04:11

标签: wordpress wordpress-theming advanced-custom-fields

我使用高级自定义字段按帖子(书籍)或页面(家庭,联系人等)管理内容。但是,如果我想管理无法通过帖子或页面组织的内容,如营业时间,商家名称,标语,徽标等,该怎么办呢?

这些字段可能会在整个网站,页眉,页脚,页面,联系页面,主页等上多次出现。这些字段实际上不是帖子类型,为每个页面创建相同的自定义字段将是多余的

有没有办法使用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

2 个答案:

答案 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');

在主题中检索这些字段

http://www.advancedcustomfields.com/add-ons/options-page/

答案 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');

希望它有所帮助!