태그 보관물: 사이트 운용

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

위 워드프레스 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

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

아스트라 프로에서 카테고리별로 다른 디자인 보여주는 방법 아이디어

요즘 만들고 있는 사이트에서 블로그 카테고리별로 글보여주는 레이아웃을 카테고리마다 각각 바꾸어봐야 하는데 보류하고 있습니다.

궁리닷컴 이전 버전 사이트처럼 하나의 인문학서 감성으로 디자인을 해서 레이아웃을 보여주고 싶은데요. 지금은 블로그 테마에 내장된 카테고리 표시 기능으로 글을 보여주느라, 카테고리마다 다른 디자인으로 보여주려면 archive.php와 같은 파일을 직접 고쳐야 합니다.

이게 코딩을 요하는 작업이라 타이핑도 그렇고 이미지 연결도 귀찮으니 다른 방법을 써야 합니다.

아스트라 프로를 스펙트라 무료 버전과 함께 쓰는데요. 다음과 같은 방법으로 카테고리마다 다른 디자인으로 보여주는 방안을 실천해봐야 합니다. 이는 archive.php를 고치는 방법과 다르게 페이지를 생성해서 각각 다른 카테고리를 연결하게 만들어 보여주는 방법입니다.

우선 아스트라 프로가 프로 라이선스로 활성화된 상태에서 스펙트라를 설치하고 페이지 메뉴에서 페이지를 생성하면 됩니다.

(1) 페이지를 각각 만들어 각각 다른 카테고리 표시하도록 설정 (위젯 이용)
(2) 네비게이션 메뉴에 페이지 URL을 링크

이렇게 해두면 카테고리마다 다른 페이지 디자인으로 보여주는게 WYSIWYG 방식으로 지정이 됩니다. (1) 페이지 제작을 할때 페이지 디자인을 달리 해서 저장하면 되죠. 각각의 페이지마다 각각 다른 카테고리를 연결하구요.

여기에

(3) 글 목록 표시시 오프셋 설정이 가능하다면 컬럼으로 나누어 글 제목표시가 가능

인데 (3) 오프셋 설정은 지원되는지 살펴봐야하네요.

이해 잘 되게 해설한지는 모르지만 핵심은 archive.php에 의존하기보다 페이지를 써서 페이지를 각각 만들고 위젯으로 개별 카테고리 글 목록을 표시되게 하면 카테고리마다 다른 디자인으로 보여주는게 된다는 것이네요.

아이디어로 올려봅니다.

(2)를 할때는

<a href=”https://examples.com/category/카테고리명”>카테고리명</a>

보다

<a href=”https://examples.com/페이지명”>페이지명</a>

으로 링크를 하드코딩하거나 디자인 메뉴의 하위 메뉴에서 메뉴 설정을 해서 링크가 걸리게 하면 됩니다.

Flex Posts 플러그인 사용시 발췌문 길이 조정도 안되고 아주 길게 표시될때 해결법

Flex Posts 플러그인은 사이드바에 위젯으로 등록해서 랜덤 포스트, 최신글 표시 등을 담당하는 플러그인입니다.

모종의 이유로 발췌문 표시 조절이 안되고 아주 길게 표시될때 해결법은요.

여러 연쇄적인 실행이 있을테니 이 글에서 말한 것과 다른 원인일 수 있으나, 일단 아래와 같은 플러그인 파일을 들여다보세요.

Flex Posts 디렉토리 아래 template-tags.php

이 파일에서 flex_posts_excerpt() 함수가 직접적으로 발췌문을 표시하는 코드입니다.

제 경우 이 파일과 이 파일 위에 기재된 함수를 고쳐서 해결했는데요.

를 추가하고

flex_posts_excerpt() 함수를 아래와 같이 대체했습니다.

이렇게 해두니 다시 잘 작동합니다.

get_the_excerpt()와 wp_trim_words()로 발췌문 길이 조정하기

발췌문은 플러그인과 같은 추가된 프로그램에서 조정하기도 하지만, 워드프레스 코어에서 제공하는 함수로 조정할 수도 있습니다.

우선 get_the_excerpt()로 발췌문을 가져오는게 가능하구요. 가져온 발췌문을 wp_trim_words()로 잘라내서 잘라진 발췌문을 표시하도록 코딩하면 됩니다.

아래와 같은 코드가 참고가 될 것입니다.

이 경우는

get_the_excerpt() 함수로 현재 처리되고 있는 글의 발췌문을 가져와서
wp_trim_words() 함수로 잘라내고 이를 echo()로 표시하는 코드입니다.

get_the_excerpt()의 잘라내는 기본값은 55글자구요. 위 코드를 쓰면 이를 15로 조정해서 처리할 수 있게 됩니다.

이를 응용해서

처럼 테마 functions.php 파일에 기재해두면 워드프레스 코어의 포스트 임베드 위젯을 쓸때 표시되는 발췌문의 길이를 55로 제한해서 표시하는게 됩니다.

플러그인 위젯으로 발췌문을 표시하는 기능을 쓸때도 이 함수들을 잘 쓰면 좋습니다. 플러그인에서 자체적으로 구현하지 않았다면요. 자체적으로 구현한 코드가 버전이 오래된 등의 이유로 잘 작동하지 않을때도 위의 두 함수를 잘 활용하면 대체가 됩니다. 모종의 이유로 변조된 경우에도 해당됩니다.

웹브라우저 관련 유저 에이전트를 PHP를 써서 확인하고 기능 실행하기

wpcode 관련해서 PHP 코드를 포함시켜도 되는 조건에서 오류가 나기도 하는데요. 이 경우 wpcode 실행시 문제지만 코드 상에서 문제를 찾아야 할때 참고가 되시는 함수가 있네요.

$_SERVER 변수는 기정의 변수로 서버 환경에서 감지된 정보가 저장되어 있는 변수인데요. 저도 $_SERVER[‘HTTP_USER_AGENT’]와 같은 키로 테스트해봤는데 이 키로는 원하는 정보가 안나옵니다.

PHP에서 get_browser() 함수를 쓰는 방안이 있는데요. browscap.ini를 잘 설정하고 쓰면 웹브라우저 유저 에이전트를 알아낼때 필요한 정보가 배열 변수로 반환되어 쓰면 되네요.

https://www.php.net/manual/en/function.get-browser

를 참조하시길요. 함수에 넘기는 인자와 반환된 변수의 값도 나오고 browscap.ini를 설정하는 방법이 나온 링크도 나옵니다.

함수 리턴값으로 아래처럼 되었다면

browscap.ini 를 잘 설정하고 php.ini 에 경로를 기입후 웹서버를 재기동하고,

이런식으로 해두면 작동할 것 같습니다. 배열 변수 키는 위 링크에 나오니 참고하시길요.

아스트라 프로 4.7.0에서 검색결과 500 오류 해결

아스트라 프로 4.7.0으로 클라우드웨이즈에서 어플리케이션 추가를 했습니다. 검색결과를 테스트해보니 500 오류가 나서 아래와 같이 조치했습니다.

(1) wp-config.php 에 define(‘WP_DEBUG’, true); 추가후 관찰
(2) Fatal error: Uncaught ArgumentCountError: 3 arguments are required, 2 given in /var/www/html/wp-content/themes/astra/inc/core/common-functions.php:966 오류 발생
(3) 해당 파일을 테마 편집기로 열어서 보니 $title 변수에 add_filter()가 걸려있고 인자가 두개 관찰
(4) 그래도 작동해야 하지만, 세번째, 네번째 인자를 줘도 같은 오류라 다 966라인을 다 지우고
(5) 그다음 라인 어딘가의 echo $title; 구문을 지우고 $title = “검색 결과: <span>” . the_search_query() . “</span>”; 추가후 재실험
(6) 잘 작동함.
(7) wp-config.php에 define(‘WP_DEBUG’, false); 로 되돌림.

어떤 이유인지는 불명확하지만 이전 버전으로 돌아가는 다른 어플리케이션에서는 잘 되는 검색 기능이 최신 버전으로 새로 만든 어플리케이션에서 안되서 워드프래스 재설치, 플러그인 재설치, 테마 재설치를 해도 안되었습니다. 위와 같이 조치하니 되었네요.

위에 add_filter()는 아스트라 설정에서 제목을 읽어와서 표시할때 필요한 기능인데, 이 기능을 안쓰고 그냥 $title 변수를 하드코딩해서 해결했습니다.

일단 같은 문제가 있다면 참고해보세요. 아스트라 프로에서 구성한 사이트에서 검색기능 실행시 500 오류가 나면 해볼만한 사례입니다.

webmin으로 리눅스 서버 설정 간편하게 하기

webmin은 웹기반 리눅스 서버 설정 관리자로 매우 편리한 설정이 가능하게 해줍니다. 물론 설정 사항들에 대한 지식이나 설정값을 선택하고 입력하는 지식은 이미 있어야 하지만요. 서버 설정 경험이 일정 정도 있고 서버에 대한 경험이 있는 사용자에게 직접 명령어 타이핑을 고안할 필요없이 매우 광범위한 설정을 UI로 돕는 기능을 제공하고 있습니다.

데비안, 우분투 계열 리눅스와 레드햇 기반 리눅스를 모두 지원합니다. 슬랙웨어 기반은 어떤지 미확인입니다.

제가 사용하는 리눅스는 리눅스 민트 계열의 하모니카OS인데요. 우분투 기반인만큼 apt 명령어로 간단하게 설치가 되어 사용이 가능해집니다.

이렇게 설치해서 설치가 완료되면 웹브라우저에서 서버주소:10000 로 연결하면 UI가 뜹니다. 메뉴에서 잘 설정해서 쓰면 됩니다.

더 자세한 정보는

https://webmin.com

에서 구할 수 있습니다.

전문적인 특별한 지식이 없어도 가능한 글감 주제들

블로그로 돈벌이를 하는 경우에 반드시 전문적이지 않아도 가능한 글감 주제들이 많습니다. 경쟁이 치열하기는 하지만 포털 사이트와 연관된 블로그 플랫폼이라면 집계 페이지에 나올 수 있는 맛집 주제, 예능 드라마 감상기 등이 있는데요. 여기에 더해 양자택일적인 주제를 일상의 일들과 결합해서 답변을 작성해서 보여주는 사이트 운용이 있을 것 같습니다.

예로 들면

(1) 부먹좋아 찍먹좋아?
(2) 아빠가 좋아 엄마가 좋아?
(3) 겨울이 좋아 여름이 좋아?
(4) 남친이 좋아 여친이 좋아?
… 등등등

이런 주제는 특별한 지식이 없더라도 글 내용을 쉽게 구상할 수 있고 누구나 궁금해하는 주제라, 특별히 이슈를 다루거나 전문적인 교수님들의 글처럼이 아니더라도 쉽게 임해서 발전을 해낼 수 있는 주제 같습니다.

그리고 일상적으로 훈훈함을 주는 양자택일 주제라면 이슈 키워드를 다룰때 있는 엄한 기분이나 사회의 안좋은 면을 다룰때의 악감정도 없으니 좋네요.

물론 이 경우에도 흥미 요소를 주는 감각은 필요한데요. 누구나 임해서 발전시켜갈 수 있는 글감이죠.

요즘은 주식 얘기나 질병 관련 글들은 전문가들을 우대하는 정책이라 이미 잘 알려져서 일반인들도 공유가능한 선의 전문성이 약화되는 실정인데요. 위와 같이 양자택일이라는 타인들도 알고 싶어하는 영원한 관심주제에 천착해서 하는 글쓰기도 블로그 운용의 아이디어 같습니다.

페이지뷰 광고 서비스 재개할 사이트 상황 점검 https://wordads.co

우선 자기보호적으로 보이지만 사실인 것부터 언급하자면 한 15년전 즈음해서 페이지뷰 광고 서비스 수익정산 방식이 바뀌어서 하루 방문자가 수백인은 넘는 블로그도 한달에 받는 금액이 웹호스팅 운용비 정도뿐이라더군요. 모바일 개발자 분의 테크니컬한 블로그인데 이렇답니다.

​전 2005년 즈음부터 페이지뷰 광고 서비스 달고 썼고 2010년 이후에 재개했는데 재개전에 비용이 누적되는 량보다 지금까지 10년 이상 지난 이후에 누적되는 량이 차이가 큽니다.

우선 정산 방식이라는게 전제되어도 여러 문제가 있는데

(1) 올리는 주제와 검색어 트렌드가 서로 다르다
(2) 글의 품질이 요즘 잘 안나온다
(3) 글의 개수도 요즘 잘 안써진다
(4) 네이버 웹마스터 도구에 등록하고 수집완료가 되어야 한다
(5) 주된 관심사가 인기가 별로 없다

인데요. 대부분 노력으로 극복되는 사안인 것 같습니다. 테크니컬한 주제는 글을 더 상세하게 전문화한 글 위주로 올리고 올리는 량도 공격적으로 많게 하고 웹마스터 도구들 사용법을 더 잘 알아내서 인덱싱이 잘 되게 하는 방안이 정공법입니다.

그래도 주식정보나 게임공략 같은 초인기 주제가 아닌 한 문제가 있네요. 물론 요즘은 이 주제도 전문가가 올린 정보가 아니면 안되는 분야죠.

https://library.shutterpress.site
https://academy.shutterpress.site
https://it.shutterpress.site

이정도 품질이면 전문성은 갖춘 것이지만 주제의 관심도가 낮거나 저만 알고 싶었던 것이면 유입자를 끌어모으기가 힘들고, 검색 결과에 올라가게 하는 방안을 생각해두는게 필요하죠. 사소하지만 블로그툴에서 mod_rewrite 로 만든 퍼머넌트링크 길이 조절 제한 풀기 같은 것도 하나의 지식이 되네요. 해결법으로의 지식. (SEO적으로 짧은 슬러그인 퍼머넌트링크가 추천되기도 하지만 왠만한 길이면 오히려 잘린 슬러그가 신뢰성을 낮추는 것 같애요. 방문자들이 볼때요)

그나마 유입자가 꾸준한 테크니컬한 것은 adb 관련 연결 문제 해결법이나 태블릿 리뷰 같은게 제일 많은 글인데 페이지뷰수가 하루에 100건은 나와도 올라가는 페이지뷰 광고 서비스 수익이 적습니다. 적어도 하루에 1만건은 페이지뷰가 되어야 클릭이 적게 되도 한달에 100불 벌리는 정도입니다. 요즘은 안드로이드 앱과 소프트웨어 공학에 대한 주제가 구글 애널리틱스에 검색어로 뜨는데요. 이 부분은 후자의 경우 요즘도 꾸준히 해야 할 주제입니다. 자료구조와 알고리즘에서 후자를 대회용 알고리즘으로 보면 더 해놔야하네요.

삼국지 인물평이나 해설, 어린왕자 해설이나 셍텍쥐페리 일대기 정보, 루쉰에 대한 해설 등등을 기획하거나 몇편 올렸는데 검색어 유입에는 랭크가 안되는군요. 아무래도 구글 애즈를 더 써서 검색 결과 유입수를 늘려야겠습니다.

무엇보다도 지금 유입수의 100배는 되게 해야 한달에 지급액 가까이 벌리는데 여러모로 생각중인데 인지 기능 저하로 인해 실천은 매우 느리게 합니다.

앱 릴리즈해서 서포트 사이트 만들면서 페이지뷰 광고 서비스 내면 조금은 더 나아질 것 같기도 합니다. 단 서비스 제공자가 제공하는 스폰서 링크 같은거 하는 방안도 필요할 것 같습니다. 아이돌 관련 앱이 수십종이라. IT 정보앱의 경우 그다지 많은 정확성 있는 앱들만 나오는게 아니니 어쩌면 제 앱도 표시가 잘 될지요.

게임 공략은 FM 시리즈가 자신있었는데 최근 몇달간 열등 체현이 덮어씌어져서 지금 분석력이 바닥이 되었습니다. 게임하면서 생각해둔 것들이 그냥 휘발되네요. 아무래도 타주제에 비해 수요가 더 많을 수도 있는게 게임 공략 같습니다.

그런데 게임 공략은 과금게임이나 정품게임은 구입비용이 들기에, 합법적인게 확인된 고전 게임 위주로 하는 것도 방법입니다. 고전 게임은 비용도 안들지만 추억으로 남아있는 주제라, 상당히 인기를 끌 수 있는 주제입니다.

​일단 이렇게 정리해둡니다.

무엇보다도 문헌 집중력, 종합력, 기억력이 지속되면 일주일만 주어져도 책 한 권 다 읽고 글에 반영할텐데 요즘은 활성화가 되도 피질 정도만 겨우 활성화되어 있게 된 상태이고 그나마 모종의 이유로 인해 해제가 다시 되고 반복되서 그런지 문헌 탐구 효율이 확 줄어듭니다. 삼국지도 공들여 논문도 찾아보면서 공부하고 글썼는데 종합이 안될때가 많네요 ㅎㅎ

​지금처럼 주제를 비인기 주제 위주로 정해두면 페이지뷰 광고 서비스 정산이 바뀐 이후가 얽혀서 지급액수가 안늘기도 하더군요. 이건 뭐 3, 5년간 웹마스터도구 안써도 적어도 15불은 적립되던 액수가 안되니 처음에는 답답했는데 아무래도 컨텐츠 작성 마인드를 최대한 정비하고 글을 잘 쓰고 홍보하는 방안밖에 없다고 생각하고 있게 됩니다.

서평도 나름 철학 전문가적인 마인드를 지속하던게 노변명 인생의 굴레로 일정부분 해제된 상태.

그래도 컨텐츠 작성 마인드 쇄신이 최선입니다. 주제별로 초인기 주제에 대해 글을 더 자주 많이 잘 쓰고, 이들 주제별로 내세울만한데 유입자가 적으면 구글 애즈 쓰렵니다.

슬러그 보정 플러그인에 긴급추가할 기능

이제 셀 정렬 기능과 업데이트 확인 기능만 추가하면 끝날 것 같았는데요.

회원분께서 보고해주신 현상 중에 슬러그가 달라져서 영구주소가 변경되면 301 리디렉션을 반드시 해야 되는 것이 유의되네요.

제 플러그인의 기본 제작 방침은 슬러그 변조시 복호화 가능, 불가능 여부에 따라 400 오류나 404 오류가 나는 것을 보정하기 위함인데요. 이게 그냥 고치게 하면 SEO에 문제가 옵니다. 301 리디렉션을 반드시 구현하거나, 조치를 해서 400 오류나 404 오류난 경우를 감지해서 고치게 해야 하네요.

플러그인에 공지를 해서 400 오류나 404 오류가 아니면 하지 말라고 하는 방안도 있구요.
REST API 등으로 가능하면 헤더를 조사해서 400나 404가 반환되어야 슬러그 보정기능을 하게 한다든지요.

이 두가지 경우가 다 가능한 선택지인데 이 경우들에서도 구글에 색인된 정보를 알아내서 301 리디렉션을 자동으로 추가하는 기능이 필요해보이네요.

각각의 기능이 중첩되는 양태에 의해서는 사용상에 혼동이 있을 수 있어서 SEO가 안좋게 되면 큰일입니다.

그래서 출시를 밀어두고 있구요. 제 블로그에서 쓸 용도로만 해보려고 하기도 합니다.

출시할 플러그인은 이번 개발 끝내고 착수할 파워토이즈 개념의 플러그인으로 할까도 생각중이네요 ㅎㅎ SEO와 상관없는 기능을 구현할 플러그인이라 출시가 가능합니다.

여튼 슬러그 보정 기능 실행시 조건화해두어야 할 사안입니다. 301 리디렉션을 해야 한다는 것.