WordPress에서 사용빈도를 반영한 태그 위젯 만들어 보기

참고링크: https://www.wpbeginner.com/plugins/how-to-display-most-popular-tags-in-wordpress

기본으로 제공되는 Tags 위젯은 사용된 Tag를 순서대로 모두다 보여줘서 좀 번거로운 면이 있다. 사용 빈도를 반영하여 많이 사용된 Tag를 크게 보여주고, 또 원하는 순위까지만 보여주는 것이 좀 괜찮을 것 같은데, 이를 위해선 해당 기능을 포함하는 플러그인을 설치해서 사용하거나, 간단히 functions.php를 수정하면 된다.

사용하는 테마의 디렉토리로 가서, functions.php 파일을 열고, 다음의 구문을 추가한다.

function wpb_tag_cloud() {
$tags = get_tags();
$args = array(
    'smallest'                  => 12,
    'largest'                   => 24,
    'unit'                      => 'px',
    'number'                    => 15,
    'format'                    => 'flat',
    'separator'                 => " ",
    'orderby'                   => 'count',
    'order'                     => 'DESC',
    'show_count'                => 1,
    'echo'                      => false
);

$tag_string = wp_generate_tag_cloud( $tags, $args );

return $tag_string;

}
// Add a shortcode so that we can use it in widgets, posts, and pages
add_shortcode('wpb_popular_tags', 'wpb_tag_cloud');

// Enable shortcode execution in text widget
add_filter ('widget_text', 'do_shortcode');

여기에서 설정할 옵션은

  • smallest: 가장 낮은 순위의 Tag 폰트 크기
  • largest: 가장 높은 순위의 Tag 폰트 크기
  • number: 15 순위까지 보여주기
  • seperator: Tag들 보여줄때 구분자

이와 같이 설정하고, Widget 설정에서 Text 위젯을 추가하고, 내용에 wpb_popular_tags을 입력한다. 결과를 보면,

와 같이 깔끔하게 보인다.

바나나 거치대 (Banana Stand)

바나나를 나무에 걸려 있는 모양으로 두면 보관을 오래할 수 있다고 한다. 옷걸이를 이용해서 만들거나, 파는 제품을 살 수도 있지만, 3D 프린터로 한번 만들어 본다.

CAD를 이용해서 모양을 만들고 (구조는 대단히 단순함)…

3D 프린터로 뽑아주면 (채움 20%, PETG 필라멘트 사용)…

이제 바나나를 걸어주면~~~~!!!

안정적으로 잘 매달려 있게 된다. 좀더 큰 것을 걸어두면 어떨런지는 모르겠는데, 일단은 만족!

Setup MicroPython on ESP32 (for macOS)

CP210x 드라이버 설치 (https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers)

esptool 설치 (pip3가 없는 경우, homebrew를 이용해 설치한다)

$ pip3 install esptool

보드를 연결하고, 기존 flash 모두 초기화

$ esptool.py --chip esp32 -p /dev/tty.SLAB_USBtoUART erase_flash

esptool.py v2.6
Serial port /dev/tty.SLAB_USBtoUART
Connecting........__
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
MAC: 84:0d:8e:0c:c9:f0
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 2.9s
Hard resetting via RTS pin...

펌웨어 다운로드 (https://micropython.org/download/#esp32)

펌웨어를 보드에 Flash 한다.

$ esptool.py --chip esp32 -p /dev/tty.SLAB_USBtoUART write_flash -z 0x1000 esp32-bluetooth.bin

esptool.py v2.6
Serial port /dev/tty.SLAB_USBtoUART
Connecting.....
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
MAC: 84:0d:8e:0c:c9:f0
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 1549888 bytes to 970594...
Wrote 1549888 bytes (970594 compressed) at 0x00001000 in 85.5 seconds (effective 145.0 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

보드의 전원을 껐다가 다시 인가하고, 터미널에서 다음과 같이 입력하여 REPL 환경으로 진입.

$ screen /dev/tty.SLAB_USBtoUART 115200

처음엔 아무런 내용이 나타나지 않지만, 명령어를 입력하면 됨. 평소 사용한 REPL 환경와 동일.

>>> print("hello")
hello
>>> 

REPL 환경에서 나오려면, ctrl + a, ctrl + \ 키를 순서대로 누르고, 화면 밑 프롬프트가 나오면 y를 눌러 종료 가능.

Adafruit에서 제공하는 Micro Python Tool을 이용해 보드 내부의 파일 시스템에 파일을 넣거나 스크립트를 실행할 수 있음.

$ pip3 install adafruit-ampy

보드 내부 파일 시스템에 있는 파일들 표시

$ ampy -p /dev/tty.SLAB_USBtoUART ls

/boot.py

다음의 명령어를 이용해 파일들 조작 가능.

ampy
Usage: ampy [OPTIONS] COMMAND [ARGS]...

  ampy - Adafruit MicroPython Tool

  Ampy is a tool to control MicroPython boards over a serial connection.
  Using ampy you can manipulate files on the board's internal filesystem and
  even run scripts.

Options:
  -p, --port PORT    Name of serial port for connected board.  Can optionally
                     specify with AMPY_PORT environment variable.  [required]
  -b, --baud BAUD    Baud rate for the serial connection (default 115200).
                     Can optionally specify with AMPY_BAUD environment
                     variable.
  -d, --delay DELAY  Delay in seconds before entering RAW MODE (default 0).
                     Can optionally specify with AMPY_DELAY environment
                     variable.
  --version          Show the version and exit.
  --help             Show this message and exit.

Commands:
  get    Retrieve a file from the board.
  ls     List contents of a directory on the board.
  mkdir  Create a directory on the board.
  put    Put a file or folder and its contents on the board.
  reset  Perform soft reset/reboot of the board.
  rm     Remove a file from the board.
  rmdir  Forcefully remove a folder and all its children from the board.
  run    Run a script and print its output.

보드에 있는 LED로 GPIO 테스트. 13번 핀에 연결되어 있음.

>>> import machine
>>> led = machine.Pin(13, machine.Pin.OUT)
>>> led.value(1)
>>> led.value(0)

일단은 여기까지.

참고링크: https://github.com/pvanallen/esp32-getstarted

짜장밥

준비물: 돼지고기, 양파 2개, 감자 반개, 호박 반개, 당근 반개, 짜장가루 (2인분)

  1. 양파를 채 썰고, 후라이펜에 기름을 두르고 볶는다.
  2. 양파가 갈색이 되면 돼지고기를 넣고 또 볶는다.
  3. 돼지고기에 핏기가 사라지면, 감자, 양파, 호박, 당근을 넣고 또 볶는다.
  4. 3번에 넣은 야채가 좀 익었다 싶으면, 물 700ml를 넣고 끓인다.
  5. 야채가 거의다 익었으면, 짜장가루를 넣고 불을 줄인 후 살살 섞어준다.

끝!.

전반적인 과정은 카레와 완전 비슷. 다만 야채의 모양을 좀 다르게 해주는게 나은 듯. 짜장밥에 들어가는 야채는 깍뚝썰기로.

카레

준비물: 돼지고기 or 소고기, 양파 2개, 당근 반개, 감자 반개, 카레 고형분 2인분, 버터 쪼금

  1. 양파, 당근, 감자는 얇게 채 썰기해서 준비. 당근, 감자는 채칼을 이용하면 쉽게 가능.
  2. 후라이팬에 버터 (없으면 올리브유)를 넣고, 양파를 다 넣고 살짝 갈색이 될때까지 볶는다.
  3. 고기를 넣고 볶는다.
  4. 고기가 핏기가 사라지면, 당근, 감자를 넣고 볶는다.
  5. 야채가 숨이 죽고 좀 익었다 싶으면 (이때쯤 양파는 좀더 진한 갈색으로 변함), 물을 700ml 정도 넣고 끓인다.
  6. 물이 끓기 시작하면, 카레를 넣고 저어준다.
  7. 야채가 완전히 익을때까지 저어준다.

끝!.

양파가 볶으면 볶을수록 단맛이 올라와, 아이들도 좋아하는 달달한 맛을 느낄수 있음. 거의 익어버려 양파의 아삭한 감이 사라지므로 먹기도 편함.