大家好,我面临一个问题,在我的wordpress主题面板添加logo选项,我使用这个代码
function logo_display()
{
?>
<input type="file" name="logo" />
<?php echo get_option('logo'); ?>
<?php
}
function handle_logo_upload()
{
if(!empty($_FILES["demo-file"]["tmp_name"]))
{
$urls = wp_handle_upload($_FILES["logo"], array('test_form' => FALSE));
$temp = $urls["url"];
return $temp;
}
return $option;
}
function display_theme_panel_fields()
{
add_settings_section("section", "All Settings", null, "theme-options");
add_settings_field("logo", "Logo", "logo_display", "theme-options", "section");
register_setting("section", "logo", "handle_logo_upload");
}
add_action("admin_init", "display_theme_panel_fields");
问题是它的不保存logo,也不显示在管理以及。我已经尝试了10次不同的方法,但这段代码不工作。请查看这个代码并尝试一下。
#1
你忘记在“handle_logo_upload”函数中添加else条件。尝试以下代码:
function logo_display()
{
?>
<input type="hidden" name="ologo" value="<?php echo get_option('logo'); ?>" readonly /><input type="file" name="logo" id="imgupload" style="display: none;" />
<a id="OpenImgUpload" class="button button-primary">Image Upload</a>
<?php echo get_option('logo'); ?>
<?php
}
function handle_logo_upload()
{
if(isset($_FILES["logo"]) && !empty($_FILES['logo']['name']))
{
$urls = wp_handle_upload($_FILES["logo"], array('test_form' => FALSE));
$temp = $urls["url"];
return $temp;
}
elseif(isset($_FILES["logo"]) && empty($_FILES['logo']['name'])){
$urls = $_POST["ologo"];
return $urls;
}
return $option;
}
function display_theme_panel_fields()
{
add_settings_section("section", "All Settings", null, "theme-options");
add_settings_field("logo", "Logo", "logo_display", "theme-options", "section");
register_setting("section", "logo", "handle_logo_upload");
}
add_action("admin_init", "display_theme_panel_fields");
#2
你应该试试这个。希望这对你有帮助。
https://kwight.ca/2012/12/02/adding-a-logo-uploader-to-your-wordpress-site-with-the-theme-customizer/
评论前必须登录!
注册