こんにちは私はワードプレスの私のテーマパネルにロゴのオプションを追加することで1つの問題に直面しています
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");
問題は、ロゴが保存されず、管理者にも表示されないことです。私はこれを異なる方法で10回試しましたが、このコードは機能しません。このコードを見て、助けてください。
あなたがワードプレスカスタマイザを使用しているなら、このコードを試してください
public static function register ( $wp_customize ) {
// Logo upload
$wp_customize->add_section( 'bia_logo_section' , array(
'title' => __( 'Site Logo', 'bia' ),
'priority' => 30,
'description' => 'Upload a logo to replace the default site name and description in the header',
) );
$wp_customize->add_setting( 'bia_logo', array(
'sanitize_callback' => 'esc_url_raw',
) );
$wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'bia_logo', array(
'label' => __( 'Site Logo', 'bia' ),
'section' => 'bia_logo_section',
'settings' => 'bia_logo',
) ) );
}
私はあなたも試すことができると思います redux framework /管理パネルオプション
バージョン4.5以降、 テーマロゴ はWordPressの標準機能です。 functions.php
に以下のコードを追加するだけです。
function wpse237461_theme_logo() {
add_theme_support( 'custom-logo', array(
'height' => 100,
'width' => 400,
'flex-width' => true ) );
}
add_action( 'after_setup_theme', 'wpse237461_theme_logo' );
これでテーマカスタマイザでロゴを変更でき、the_custom_logo()
を使ってテーマに追加できます。ファイルやオプションを自分で処理する必要はありません。