테마의 로고 이미지 업로드 기능 추가하기
IT/Wordpress 2024. 9. 21. 23:33테마의 헤더 부분에 로고 이미지를 관리자 페이지에서 업로드하는 기능을 추가한다.
1. functions.php 에 관리자 페이지에서의 로고 이미지 업로드 메뉴를 추가한다.
function theme_custom_logo_field_callback() {
$logo = get_option( 'theme_logo' );
?>
<input type="hidden" id="theme_logo" name="theme_logo" value="<?php echo esc_attr( $logo ); ?>" />
<input type="button" id="upload_logo_button" class="button" value="<?php _e( 'Upload Logo', 'your-theme' ); ?>" />
<input type="button" id="remove_logo_button" class="button" value="<?php _e( 'Remove Logo', 'your-theme' ); ?>" />
<div id="logo_preview">
<?php if ( $logo ) : ?>
<img src="<?php echo esc_url( $logo ); ?>" style="max-width: 200px;">
<?php endif; ?>
</div>
<script>
jQuery(document).ready(function($) {
// 미디어 업로더 기능 설정
$('#upload_logo_button').click(function(e) {
e.preventDefault();
var custom_uploader = wp.media({
title: '<?php _e( "Select Logo", "your-theme" ); ?>',
button: {
text: '<?php _e( "Use this logo", "your-theme" ); ?>'
},
multiple: false // 다중 선택 비활성화
}).on('select', function() {
var attachment = custom_uploader.state().get('selection').first().toJSON();
$('#theme_logo').val(attachment.url);
$('#logo_preview').html('<img src="' + attachment.url + '" style="max-width: 200px;">');
}).open();
});
// 로고 제거 버튼 클릭 이벤트
$('#remove_logo_button').click(function(e) {
e.preventDefault();
$('#theme_logo').val('');
$('#logo_preview').html('');
});
});
</script>
<?php
}
2. 테마에서 관리자 페이지에서 설정한 로고 이미지를 불러온다.
header.php
function theme_custom_logo_field_callback() {
$logo = get_option( 'theme_logo' );
?>
<input type="hidden" id="theme_logo" name="theme_logo" value="<?php echo esc_attr( $logo ); ?>" />
<input type="button" id="upload_logo_button" class="button" value="<?php _e( 'Upload Logo', 'your-theme' ); ?>" />
<input type="button" id="remove_logo_button" class="button" value="<?php _e( 'Remove Logo', 'your-theme' ); ?>" />
<div id="logo_preview">
<?php if ( $logo ) : ?>
<img src="<?php echo esc_url( $logo ); ?>" style="max-width: 200px;">
<?php endif; ?>
</div>
<script>
jQuery(document).ready(function($) {
// 미디어 업로더 기능 설정
$('#upload_logo_button').click(function(e) {
e.preventDefault();
var custom_uploader = wp.media({
title: '<?php _e( "Select Logo", "your-theme" ); ?>',
button: {
text: '<?php _e( "Use this logo", "your-theme" ); ?>'
},
multiple: false // 다중 선택 비활성화
}).on('select', function() {
var attachment = custom_uploader.state().get('selection').first().toJSON();
$('#theme_logo').val(attachment.url);
$('#logo_preview').html('<img src="' + attachment.url + '" style="max-width: 200px;">');
}).open();
});
// 로고 제거 버튼 클릭 이벤트
$('#remove_logo_button').click(function(e) {
e.preventDefault();
$('#theme_logo').val('');
$('#logo_preview').html('');
});
});
</script>
<?php
}
워드프레스 멀티 사이트 + AWS + HTTPS 적용 시, 쿠키 오류를 해결해 보자 (7) | 2024.09.22 |
---|---|
워드프레스 테마를 준비해보자 (0) | 2024.09.21 |
워드프레스 설치하기 (4) | 2024.09.21 |
iptime ddns를 활용한 워드프레스 사이트 구성 (0) | 2024.05.30 |