0
我只是在我的theme-options.php文件中設置了一個新的輸入文本選項,該文件類似於二十一個主題代碼。如何從wordpress的主題選項獲取輸入文本?
以下是關於輸入的主題options.php代碼的一部分,我正在尋找一種方法來獲取用戶輸入到「事實」文本並在index.php頁面上顯示它的輸入:
function themename_theme_options_init() {
register_setting(
'themename_options', // Options group, see settings_fields() call in themename_theme_options_render_page()
'themename_theme_options', // Database option, see themename_get_theme_options()
'themename_theme_options_validate' // The sanitization callback, see themename_theme_options_validate()
);
// Register our settings field group
add_settings_section(
'general', // Unique identifier for the settings section
'', // Section title (we don't want one)
'__return_false', // Section callback (we don't want anything)
'theme_options' // Menu slug, used to uniquely identify the page; see themename_theme_options_add_page()
);
// Register our individual settings fields
add_settings_field('facts', __('Facts', 'themename'), 'themename_settings_field_facts', 'theme_options', 'general');
add_settings_field('link_color', __('Link Color', 'themename'), 'themename_settings_field_link_color', 'theme_options', 'general');
}
add_action('admin_init', 'themename_theme_options_init');
返回主題名稱默認事實的基礎上,配色方案:
function themename_get_default_facts($color_scheme = null) {
if (null === $color_scheme) {
$options = themename_get_theme_options();
$color_scheme = $options['color_scheme'];
}
$color_schemes = themename_color_schemes();
if (! isset($color_schemes[ $color_scheme ]))
return false;
return $color_schemes[ $color_scheme ]['default_facts'];
}
呈現事實的設定欄。
function themename_settings_field_facts() {
$options = themename_get_theme_options();
?>
<input type="text" name="themename_theme_options[facts]" id="facts" value="<?php echo esc_attr($options['facts']); ?>" />
<br />
<span><?php printf(__('Default facts: %s', 'themename'), '<span id="default-facts">' . themename_get_default_facts ($options['color_scheme']) . '</span>'); ?></span>
<?php
}
消毒和驗證表單輸入:
function themename_theme_options_validate($input) {
$output = $defaults = themename_get_default_theme_options();
// Color scheme must be in our array of color scheme options
if (isset($input['color_scheme']) && array_key_exists($input['color_scheme'], themename_color_schemes()))
$output['color_scheme'] = $input['color_scheme'];
// Facts must be characters.
if (isset($input['facts']))
$output['facts'] = '' . (ltrim($input['facts'], ''));
// Our defaults for the link color may have changed, based on the color scheme.
$output['link_color'] = $defaults['link_color'] = themename_get_default_link_color($output['color_scheme']);
// Link color must be 3 or 6 hexadecimal characters
if (isset($input['link_color']) && preg_match('/^#?([a-f0-9]{3}){1,2}$/i', $input['link_color']))
$output['link_color'] = '#' . strtolower(ltrim($input['link_color'], '#'));
return apply_filters('themename_theme_options_validate', $output, $input, $defaults);
}
器具主題選項爲主題定製:
function themename_customize_register($wp_customize) {
$wp_customize->get_setting('blogname')->transport = 'postMessage';
$wp_customize->get_setting('blogdescription')->transport = 'postMessage';
$options = themename_get_theme_options();
$defaults = themename_get_default_theme_options();
$wp_customize->add_setting('themename_theme_options[facts]', array(
'default' => themename_get_default_facts($options['color_scheme']),
'type' => 'option',
'sanitize_callback' => 'sanitize_text_field',
'capability' => 'edit_theme_options',
));
}
add_action('customize_register', 'themename_customize_register');
謝謝你給任何人,可以幫助:) 謝謝!我得到它的工作:D