상현

개발 덕후

워드프레스 쿼리 기능을 이해하기

query_posts() 쿼리의 새 인스턴스로 대체하여 페이지의 기본 쿼리를 수정하는 방법으로 지나치게 단순하고 문제가 있는 방법중 하나입니다. 비효율적이며(SQL 쿼리를 다시 실행) 일부 상황에서는 완전히 실패합니다(특히 포스트 페이지 매김을 처리할 때 자주 발생). 모든 최신 wordpress 코드는 pre_get_posts이를 후크 사용하는 방법보다 안정적인 방법을 사용해야합니다. TLDR; query_posts() 사용하지 않아야 합니다. 예상하는 시나리오 기본 쿼리 루프를 재설정합니다. 메인 포스트 … Continued

미디어 관리자 측면에서

워드프레스에서 미디어를 업로드할때 업로드할 당시의 년월이 아니라 내가 지정하는 년월을 맞춰서 업로드하고 은데 어떻게 해야할까?

Class 다이나믹 메소드 네임

get_post()로 얻은 WP_Post 타입의 특정 키값? 메소드에 원하는 데이터를 저장해야할 일이 생겼다. 위처럼 있다했을때 key: value쌍이 백만개라면 일일이 할 수 없다. 그럼 이때 어떻개 할 수 있나? PHP에 대해 동일한 클래스이 메소드를 동적으로 호출하는 방법. 위처럼 구현해도 되고 Reflection class를 사용해도 된다. PHP: Reflection – Manual

roots/sage10 커스텀 피드 (템플릿)

sage10에서 custom feed를 만들기 매우 까다로웠다. Best Practice가 없어기 때문에 직접 생각해서 구성할 수 밖에 없었다. add_feed의 템플릿을 sage 템플릿으로 사용해보기 커스텀 피드를 만들려면 위와 같이 자식 테마 or 테마 functions.php에서 액션을 등록해서 사용해야하는데 여기서 콜백 함수에서 sage에서 만든 템플릿을 사용하게 하면 될꺼라 생각했다. 위와 같이 설정해서 /?feed=popularity_post 들어가면 해당 템플릿이 적용되지 않는 것을 볼 … Continued

원격 마운트 에러

해당 에러는 머신에 NFS 패키지가 설치 되어있지 않아서 나오는 문구이다. CentOS에서는 우분투에서는 설치후에 다시 마운트하면 된다.

Laravel Mix & tailwind v^2.1 JIT 모드

내가 사용하는 환경은 app.scss를 통해서 하위 모든 *.scss를 임포트해서 사용하는 방식이라서 위처럼 구성해도 tailwind의 css가 제대로 등록되지 않는 것이다. 위처럼 커스텀 컬러를 등록했다했을때 해당 class가 tailwind에서 재대로 등록되지 않았기 때문에 scss 컴파일에서도 오류가 난다. 무엇이 문제일까? 분명히 기존 webpack.mix.js로는 그대로 일것이다. tailwind 문서에보면 tailwindcss v^2.1 이상부터는 tailwindcss jit 모드가 병합되어서 tailwind.config.js에서 모드만 추가하면 된다고 나와있었기 … Continued

포스트 배열 병합후 재정렬

개별 get_posts()로 가져온 posts의 배열을 병합하게되면 순서가 변경되지 않으므로 직접 정렬해야합니다. PHP >= 7 php의 usort를 사용하고 익명함수에서 “spaceship operator” <=> 를 사용하여 비교후 원하는 값을 도출해낼수 있습니다. 일반적으로 return $a-value <=> $b->value; 결과를 오름차순으로 반환하는 데 사용하지만필자는 날짜를 기순으로 최신 항목으로 정렬되기를 원하므로 비교를 반대로 했습니다.return $b->value <=> $a->value; 이렇게 재정렬된 get_posts 객체의 배열을 … Continued

워드프레스 문자열에서 숏코드 실행

PHP 파일에서 content를 가져온순간 데이터 타입이 문자열로 받아온다. 여기 데이터 내부에 숏코드가 포함되어있을때 그대로 데이터를 echo하거나 출력하면 숏코드는 내가 의도한대로 수행되지 않고 대괄호로 묶을 채로 출력한다. 그럼 어떻게 숏코드를 실행시킬 수 있을까? 해당 문자열을 저장한 변수를 통해 do_shortcode() 함수를 사용해주면 된다. do_shortcode() 내부에 숏코드의 문자열만 넣지 않아도 괜찮다. do_shortcode()가 어떻게 작동하는지 재대로 모르는 문제였다.

Docker command Permission denied

docker 설치후에 docker ps 명령어를 통해 아래와 같이 권한이 없다는 메세지를 반환했다. 해결 docker 명령어를 사용할 수 있는 그룹 지정해주기 대부분 여기서 docker관련 명령어에 대한 권한이 해결된다. 그래도 명령어에 대한 권한이 없다고 나온다면 또는 chown으로 group ownership 변경 참고 Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock wiany11’s comment … Continued

반응형 이미지에 map 적용하기

CSS에서 width: 100%가 적용된 이미지는 map으로 연결된 기능이 작동하지 않는다는 것을 알았습니다. 크기가 고정되어있지 않은 이미지는 map이 적용되지 않는게 의문이었고 어떻게 해결해야할까? 생각했습니다. 유명한 문제였다, 해결방법 jQuery를 사용하고싶지는 않지만 예전부터 유명했던 문제였는지 jQuery를 이용한 플러그인으로 해당 문제가 해결 가능합니다. 위 처럼 적용하면 넓이가 자동적으로 조정되는 이미지에도 기존 image map이 잘 적용됩니다. 참고 Free Online Image … Continued