Categories
PHP

워드프레스에서 사용자정의 숏코드 (shortcode) 사용하기

워드프레스에서 숏코드 (shortcode) 를 직접 작성하여 사용하는 방법을 알아보자.

워드프레스에서 글을 작성하다가 [apple] 이라고 입력하면 사과 이미지가 삽입되도록 해 보자.

1. 숏코드 핸들러 함수 작성

현재 사용 중인 워드프레스 테마 (theme) 의 functions.php 파일을 연다.

vi wp-content/themes/twentytwenty/functions.php

다음과 같이 숏코드 핸들러 (handler) 함수를 작성한다.

작성하는 위치는 파일의 맨 앞부분이다.

function apple_function () {
  return '<img src="http://xtmci.com/wp-content/uploads/apple.png">';
}

2. 숏코드 핸들러 함수 등록

add_shortcode() 함수로 apple_function() 함수를 등록한다.

add_shortcode(‘apple’, ‘apple_function’);

apple 은 숏코드의 태그 (tag) 이다. 본문에서 [apple] 과 같이 대괄호 안에 쓰인다.

태그 이름에는 작성 규칙이 있다. 영문 소문자와 밑줄 문자 (underscore) 만 허용된다.

apple_function 은 앞에서 작성한 핸들러 함수의 이름이다.

다음은 functions.php 파일에 추가되는 전체 내용이다.

function apple_function () {
  return '<img src="http://xtmci.com/wp-content/uploads/apple.png">';
}

add_shortcode('apple', 'apple_function');

3. 숏코드 사용하기

워드프레스 본문에서 사과 이미지가 필요한 위치에 [apple] 이라고 입력한다.

......

[apple]

......

숏코드 위치에 실제로 이미지 태그가 삽입되는지 미리보기로 확인해 보자.

Categories
PHP

PHP에서 HTML 폼을 다루는 방식: GET 메소드와 POST 메소드

폼 데이터를 처리하는 방식에는 GET 방식과 POST 방식이 있다. 2가지 방식이 PHP 에서 어떻게 구현되는지 알아보자.

1. GET 방식

GET 방식으로 동작하는 HTML 폼을 작성한다.

<form action=”echo.php” method=”GET”>

method 속성을 GET 으로 지정했다.

이름과 전화번호를 입력할 수 있는 <input> 태그를 추가한다.

이름: <input type=”text” name=”name”><br>

전화번호: <input type=”text” name=”phone”><br>

폼을 전송하는 버튼을 추가한다.

<input type=”submit”>

다음은 완성된 HTML 파일의 전체 내용이다.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>GET 방식</title>
</head>
<body>
  <form action="echo.php" method="GET">
    이름: <input type="text" name="name"><br>
    전화번호: <input type="text" name="phone"><br>
    <input type="submit">
  </form>
</body>
</html>

HTML 폼으로부터 데이터를 받아 처리하는 echo.php 파일을 작성한다.

GET 방식의 폼 데이터는 전역 변수 $_GET 에 저장되어 있다.

이름을 $name 변수에 저장한다.

$name = $_GET[“name”];

대괄호 안에 있는 “name” 은 <input> 태그에 있는 name 속성의 값이다.

전화번호를 $phone 변수에 저장한다.

$phone = $_GET[“phone”];

이름과 전화번호를 출력한다.

echo “이름: ” . $name . “<br>” . “전화번호: ” . $phone . “<br>”;

다음은 완성된 echo.php 파일의 전체 내용이다.

<?php
$name = $_GET["name"];
$phone = $_GET["phone"];

echo "이름: " . $name . "<br>" . "전화번호: " . $phone . "<br>";
?>

2. POST 방식

POST 방식으로 동작하는 HTML 폼을 작성한다.

<form action=”echo.php” method=”POST”>

method 속성을 POST 로 지정했다.

나머지 내용은 GET 방식의 HTML 폼과 같다.

다음은 완성된 HTML 파일의 전체 내용이다.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>POST 방식</title>
</head>
<body>
  <form action="echo.php" method="POST">
    이름: <input type="text" name="name"><br>
    전화번호: <input type="text" name="phone"><br>
    <input type="submit">
  </form>
</body>
</html>

HTML 폼으로부터 데이터를 받아 처리하는 echo.php 파일을 작성한다.

POST 방식의 폼 데이터는 전역 변수 $_POST 에 저장되어 있다.

이름을 $name 변수에 저장한다.

$name = $_POST[“name”];

전화번호를 $phone 변수에 저장한다.

$phone = $_POST[“phone”];

다음은 완성된 echo.php 파일의 전체 내용이다.

<?php
$name = $_POST["name"];
$phone = $_POST["phone"];

echo "이름: " . $name . "<br>" . "전화번호: " . $phone . "<br>";
?>

Categories
PHP

PHP에서 배열을 오름차순 또는 내림차순으로 정렬하기

PHP에서 배열을 오름차순 또는 내림차순으로 정렬하는 방법을 알아보자.

1. 오름차순 정렬

배열을 오름차순으로 정렬할 때는 sort() 함수를 쓴다.

// 배열을 정의한다.
$weekdays = array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday");

// 배열을 오름차순으로 정렬한다.
sort($weekdays);

// 배열 요소들을 출력한다.
foreach ($weekdays as $weekday) {
  echo $weekday . "<br>";
}

출력 결과를 보자.

Friday
Monday
Thursday
Tuesday
Wednesday

2. 내림차순 정렬

배열을 내림차순으로 정렬할 때는 rsort() 함수를 쓴다.

// 배열을 정의한다.
$numbers = array(2022, 10, 28, 7, 13, 55);

// 배열을 내림차순으로 정렬한다.
rsort($numbers);

// 배열 요소들을 출력한다.
foreach ($numbers as $number) {
  echo $number . "<br>";
}

출력 결과를 보자.

2022
55
28
13
10
7

Categories
PHP

우분투 20.04에 PHP CLI 만 별도로 설치하는 방법

우분투에 PHP 를 설치할 때 전체를 설치하지 않고 PHP CLI 만 설치하는 방법을 알아보자.

apt 의 데이터베이스를 업데이트한다.

sudo apt update

PHP CLI 의 우분투 패키지 이름은 php-cli 이다. php-cli 패키지를 설치한다.

sudo apt php-cli

설치된 PHP 의 버전 넘버를 확인해 본다.

php -v

PHP 7.4.3 (cli) (built: Aug 17 2022 13:29:56) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

위와 같이 버전 넘버 뒤에 cli 라고 표시된다.

PHP CLI 에서 CLI 는 ‘Command Line Interface’ 를 의미한다.