태그 보관물: 워드프레스 API

워드프레스에서 문자열에 어귀마다 하이픈을 추가하기

위 워드프레스 API 함수를 쓰면 문자열에서 어귀마다 하이픈을 추가해서 리턴해줍니다.

처럼 실행하면

임의의-문자열을-인자로-넘겨주세요

로 변환된 문자열을 화면에 표시합니다.

위의 예제에서는 echo 함수에 sanitize_title_with_dashes() 함수의 리턴값을 넘겼는데요. echo 함수로 표시하는 기능 외에도 다른 용도로도 응용하면 다른 기능을 구현하는 용도로도 쓸 수 있습니다. 예를 들면 글 제목을 슬러그 형태로 변환하는 기능이 그 예입니다. 워드프레스 슬러그는 문자열을 어귀로 분리해서 하이픈이 사이사이에 들어가야 하므로 위의 함수로 문자열을 조정하면 슬러그 변환이 되게 됩니다.

여기에 더해서 PHP 함수로 rawurlencode() 와 rawurldecode() 를 적절히 써서 위에서 얻어진 문자열을 처리하면 URL 인코딩/디코딩 된 문자열이 얻어집니다. 플러그인 제작을 할때 필요할 수 있네요.

https://www.php.net/manual/en/function.rawurlencode.php
https://www.php.net/manual/en/function.rawurldecode

위와 같이 하면 $encoded 에는 %EC%9E%84%EC%9D%98%EC%9D%98-%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84-%EC%9D%B8%EC%9E%90%EB%A1%9C-%EB%84%98%EA%B2%A8%EC%A3%BC%EC%84%B8%EC%9A%94 가 들어가게 되구요.
$decoded에는 임의의-문자열을-인자로-넘겨주세요 와 같은 디코딩된 문자열이 들어갑니다.

결론:
https://developer.wordpress.org/reference/functions/sanitize_title_with_dashes/
https://www.php.net/manual/en/function.rawurlencode.php
https://www.php.net/manual/en/function.rawurldecode

이들 함수를 잘 활용하면 슬러그 처리시 유익하게 쓸 수 있습니다.

워드프레스에서 하드코딩한 URL과 워드프레스 API로 자동화한 URL의 차이

웹프로그래밍에서 중요한 기능 중의 하나는 URL을 입력해서 페이지를 로드할 수 있게 지시하는 구문의 작동입니다. 보통 앵커 태그라고 해서 다음과 같은 문법으로 지정합니다.

<a href=”URL”>링크 제목</a>

여기서 URL은 링크 클릭시 로드할 페이지의 주소가 들어가구요. 링크 제목은 링크가 표시될때 사용자에게 보여줄 링크 제목 문자열을 의미합니다. 실용적으로 보여지자면 이렇습니다.

<a href=”https://examples.com/?p=11″>앵커 태그 다루는 방법</a>

이런 코드가 테마에 포함되어 있을때, 흔히 보여지듯이 아래처럼 표시됩니다.

앵커 태그 다루는 방법

다시 말하자면 앵커 태그에 URL을 기재해서 위와 같이 표시되면 사용자의 클릭을 기다리게 되고 사용자가 클릭하면 대응되는 페이지가 불러와져서 화면에 표시됩니다.

이 앵커 태그를 CSS나 이미지로 장식하면 우리가 흔히 보는 카테고리도 되고 메뉴도 되는 것이죠.

중요한 작동의 차이가 있는데요. 앵커 태그의 href에 지정할 URL을 하드코딩할 것이냐 워드프레스 API로 자동화할 것이냐의 차이입니다.

아래 처럼하지 않고

<a href=”https://examples.com/?p=11″>페이지<a>

아래처럼 하면

<a href=”<?php the_permalink(); ?>” title=”<?php the_title_attribute(); ?>”><?php the_title(); ?></a>

장점이 있다는 것입니다.

어떤 장점이냐면 도메인을 이전했거나, 테마 구조를 바꾼 경우에 하드코딩한 URL은 문제를 일으키지만, 워드프레스 API를 써서 자동화한 URL을 입력하면 워드프레스가 알아서 바뀐 정보를 갱신해서 주소란에 URL을 입력해주기에 문제 소지가 적습니다.

그래서 되도록이면 하드코딩보다 워드프레스 API로 자동화하기를 권하는데요. 코드 구문상으로 구성에 한계가 있는 등의 제한이 있으면 하드코딩도 필요하긴 하지만, 일단은 워드프레스 API로 자동화하면 좋습니다.

URL이나 경로를 자동화하는 API는 https://wordpress.org 에서 uri나 page, title 등의 키워드를 get 다음에 입력하면 잘 나옵니다. get page uri나 get template uri 등으로 검색해보세요.

보통 자동화되는 API 유형은

get_template_directory_uri() – 템플릿 디렉토리 URL 경로
get_stylesheet_directory_uri() – 스타일시트 URL 경로
get_site_url() – site url을 리턴
get_home_url() – home url 리턴

이런 식이구요. 더 찾아보시면 유용한 URL 자동화 API를 찾아볼 수 있을 것입니다.