필터
1. 액션: 아무것도 리턴하지 않는다. 대체로 출력에 사용한다.
2. 필터 : 콘텐츠를 받아서 바꾼뒤 리턴한다
add_filter( $tag:string, $function_to_add:callable, $priority:integer, $accepted_args:integer )
functions.php에 필터를 추가하는 함수를 추가해준다
functions.php
<?php
include 'functions-post-type.php';
include 'functions-setup.php';
include 'functions-taxonomy.php';
include 'functions-meta-box.php';
include 'functions-save.php';
include 'functions-enqueue-scripts.php';
include 'functions-manage-columns.php';
functions-manage-columns.php
<?php
add_filter('manage_book_posts_columns', function($columns){
array_unshift($columns, '표지');
return $columns;
});
간단하게 표지를 추가만 해보는 필터를 작성해보았다 .
functions-manage-columns.php
<?php
add_filter('manage_book_posts_columns', function ($columns) {
$columns = [
'cb' => '<input type="checkbox"/>',
'cover' => '표지',
'title' => '제목',
'taxonomy-book_subject' => '주제',
'taxonomy-book_author' => '저자',
'taxonomy-book_translator' => '역자',
'date' => '일자'
];
return $columns;
});
// function의 인자값이 하나가 아니므로
add_action('manage_book_posts_custom_column', function ($column, $post_id) {
switch ($column) {
case 'cover':
$cover_id = get_post_meta(($post_id), 'cover_id', true);
if (!$cover_id) {
break;
}
$url = wp_get_attachment_image_url($cover_id);
if (!$url) {
break;
}
echo "<img src='{$url}' height='150'>";
break;
}
}, 10, 2);
이미지 업로드시 해당 정확한크기 옵션을 해제하면 원본을 기반으로 데이터가 올라간다
썸네일 재생성하기
1. wp-cli 이용
2. regenerate thumbnails 플러그인 이용
설치후 active를 통해 활성화를 눌러주면
도구부분에 regenerate thumbnails 플러그인이 추가가 된다.
첫번째 체크부분 그대로 regenerate를 누르면 재 생성이 시작되고
표지 부분에도 잘 적용된것을 확인 할 수 있다.
functions.php 에서
add_image_size('cover', 300, 300, false )등으로 옵션을 추가할수도 있다 .
functions-setup.php
<?php
add_action('wp_enqueue_scripts',function(){
wp_enqueue_style('mbs-style',get_stylesheet_uri());
});
add_action('after_setup_theme', function(){
add_theme_support('title-tag');
add_theme_support( 'automatic-feed-links');
add_image_size('book_cover', 300, 300, false );
});
관리자단 css 설정하기
functions-enqueue-scripts.php
<?php
add_action('admin_enqueue_scripts', function(){
$screen = get_current_screen();
if($screen->id === 'book'){
wp_enqueue_script('mbs_media', get_template_directory_uri().'/js/book-edit-media.js', ['media-views'], '2020-10-27',true);
}
wp_enqueue_style('bookstore-admin', get_template_directory_uri() . '/admin.css', array(), 1.0);
});
admin.css
@charset "utf-8";
.post-type-book .wp-list-table{
table-layout: auto;
}
.post-type-book .column-cover{
width:110px;
}
.post-type-book .column-title{
min-width: 200px;
}
@media screen and (max-width:782px){
.post-type-book .column-cover{
display: none!important;
}
.post-type-book .column-cover img{
padding-left: 32%;
}
}
정상적으로 열너비 까지 완료되었다.
'wordpress > wordpress기초' 카테고리의 다른 글
워드프레스 - 테마 만들기 - 카카오 API로 책 가져오기 2 (2) | 2020.10.30 |
---|---|
워드프레스 - 테마 만들기 - 카카오 API로 책 가져오기 1 (0) | 2020.10.28 |
워드프레스 - 테마 만들기 - 표지 입력 (0) | 2020.10.27 |
워드프레스 - 테마 만들기 - 책 정보 저장 (3) | 2020.10.26 |
워드프레스 - 테마 만들기 - meta box (0) | 2020.10.26 |