WordPress에서 사용자 정의 필드를 통해 게시물을 가져오는 방법 - 제2부분
7081 단어 wordpress
WP_Query
함수를 사용하여 댓글을 얻는 방법을 배웠다.그러나 만약 우리가 데이터베이스를 처리해야 한다면, 더욱 빠르고, 더욱 간단하며, 더욱 편리한 방법을 찾는 것이 가장 좋다.이 방법은 wp_posts
와 wp_postmeta
표를 연결한 다음 SQL을 통해 조회한다.'WordPress에서 사용자 정의 필드를 통해 게시물을 가져오는 방법'시리즈의 두 번째 부분에서 사용자가 게시물/페이지 제목과 사용자 정의 필드 내용의 키워드를 통해 검색할 수 있도록 고급 검색 기능을 추가할 것입니다.시작하기 전에
본 문서에서는 다음 도구를 설치하고 활성화해야 합니다.
Meta Box: 프레임워크는 WordPress에서 사용자 정의 필드를 쉽게 만들고 편집할 수 있도록 지원합니다.wordpress.org 에서 무료 메타 박스 핵심 플러그인을 다운로드할 수 있습니다.
Meta Box Builder: Meta Box 플러그인의 고급 확장으로 사용자 정의 필드를 작성, 편집 및 관리할 수 있으며 백엔드에는 인코딩이 필요 없는 직관적인 사용자 인터페이스가 있습니다.또는 Meta BoxOnline Generator 도구를 사용하여 사용자 정의 필드를 만드는 데 사용할 완전한 무료 사용자 인터페이스를 얻을 수 있습니다.
MB Admin Columns: 앞면의 게시물 목록에 사용자 지정 필드를 표시하여 사용자 지정 필드를 쉽고 빠르게 관리하고 구성할 수 있도록 지원하는 Meta Box 플러그인의 고급 확장입니다.
1단계: 게시물의 사용자 지정 필드 만들기
만약 우리가 요리에 관한 블로그를 가지고 있다면, 모든 요리는 하나의 게시물이기 때문에, 우리는 사용자 정의 필드를 사용하여 그것들을 서로 다른 유형의 요리로 분류해야 한다.다음 예는 다음과 같습니다.
먼저 관리 대시보드에서 Meta Box>Custom Fields로 이동하고 AddNew를 클릭합니다.
필드 탭에서 새 텍스트 필드를 추가하고 제목, ID 및 레이블 상자를 작성한 다음 게시를 클릭합니다.이 예에서는 Type이라는 사용자 정의 필드를 만들었습니다.
다음은'모든 게시물'부분의 게시물 이름 앞에 사용자 정의 필드를 표시하기 위해 MB Admin Columns 확장이 필요합니다.따라서 사용자 지정 필드를 통해 게시물을 보다 쉽게 관리할 수 있습니다.하지만 선택할 수 있습니다.
고급 섹션에서
admin_columns
및 after title
를 입력합니다.마지막으로 설정 탭으로 이동합니다.Show for and Post types 섹션에서 Post를 선택하면 WordPress 사이트의 모든 글에 유형 사용자 정의 필드를 표시할 수 있습니다.업데이트를 클릭하는 것을 잊지 마세요!
Type이라는 새 사용자 정의 필드를 만들었고, 이 사용자 정의 필드를WordPress 사이트의 모든 게시물에 추가했습니다.이제 게시물을 끝까지 이동하고 드래그하면 유형 필드가 표시됩니다.이제 이 필드의 값만 기입하면 됩니다.
그런 다음 Posts>All Posts로 이동하면 Type 열에 나열된 사용자 정의 필드 값이 표시됩니다.
사용자 정의 필드 값으로 검색할 수 있는 고급 검색 기능을 만들려면 2단계로 이동합니다.
2단계: 고급 검색 기능 작성
위에서 설명한 바와 같이 WordPress는 posts and pages의 제목과 내용에서만 키워드를 검색할 수 있습니다.게시물/페이지 제목의 키워드와 사용자 정의 필드 값을 통해 게시물을 검색하려면 우선WordPress 검색 기능의 작업 원리를 알아야 한다.
기본적으로 WordPress는 데이터베이스
wp_posts
테이블의 키워드로만 검색할 수 있습니다.또한 wp_postmeta
테이블에는 사용자 정의 필드의 값과 같은 다른 데이터가 저장됩니다.따라서 사용자 정의 필드 값에 따라 검색하려면
JOIN wp_posts
와 wp_postmeta
표를 함께 놓아야 합니다.이 작업은 functions.php
파일에 다음 코드를 추가하여 수행할 수 있습니다.함수justread search join($join){
전 세계 $wpdb;
(is search())
$join.='왼쪽 연결'$wpdb->Posteta'$열기wpdb->posts.”.ID='$wpdb->Posteta.”.post_id';
}
$join으로 돌아가기;
}
필터를 추가합니다("posts join", "justread search join").
주:
justread
는 제가 사용하고 있는 테마입니다. (이 무료 WordPress 테마here를 다운로드할 수 있습니다.)그런 다음 쿼리를 편집하여 사용자 지정 필드 값으로 게시물을 검색해야 합니다.이렇게 하려면 다음 코드를
functions.php
파일에 추가합니다.함수justread search where($where){
전 세계 $pagenow, $wpdb;
if(is_search()){
$where=사전 교체(
“/\(\s*”$wpdb->posts.”.post\u title\s+LIKE\s*(\'[^\']+\')\s*\)/”,
"("$wpdb->posts.".post title, 예를 들어 $1) 또는 ("$wpdb->postmeta.".meta value, 예를 들어 $1)", $where);
}
$where로 돌아가기;
}
필터를 추가합니다("posts where", "justread search where").
지금부터 사용자 정의 필드 값으로 검색할 수 있습니다.그러나 검색 결과 중 일부revisions는 사용자가 정확한 결과를 선택하기 어려울 수도 있다.따라서
DISTINCT
키워드를 포함하는 코드를 functions.php
파일에 추가함으로써 이 수정을 삭제하는 것이 중요하다함수justread search distinct($where) {
전 세계 $wpdb;
if(is_search()){
DISTINCT로 돌아가기;
}
$where로 돌아가기;
}
필터를 추가합니다("posts distinct", "justread search distinct").
사용자 정의 필드 값으로 검색하는 새로운 기능이 완성되었습니다.
이 검색이 유효한지 확인하기 위해서, 나는 아침 키워드를 눌러 검색해 보았다.검색 결과에는 한 글의 제목에'아침식사'키워드(Lite Breakth with bread)가 포함된 것 외에 두 글의 유형 사용자 정의 필드에'아침식사'키워드가 포함됐다.이는 고급 검색 기능이 정상적으로 작동하고 있음을 의미한다.
임종 유언
wp_posts
와 wp_postmeta
표를 연결하고 조회를 편집하는 것은 본 시리즈의 첫 번째 방법보다 더 많은 시간과 정력을 절약할 수 있다.SQL을 사용하여 질의를 수행하므로 페이지 템플릿을 만들 필요가 없습니다.사용자 정의 필드를 통해 게시물을 얻으면 고급 검색을 만들 수 있으며 사용자가 원하는 결과를 신속하고 가볍고 적절하게 찾을 수 있도록 도와줍니다.너는 반드시 이 기능을 사용하여 사용자 체험을 개선해야 한다.또한, WordPress에 고급 검색 상자를 만드는 방법this article을 좋아할 수도 있습니다.
이 출판물은 Meta Box에 있다.
Reference
이 문제에 관하여(WordPress에서 사용자 정의 필드를 통해 게시물을 가져오는 방법 - 제2부분), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/wpmetabox/how-to-get-posts-by-custom-fields-in-wordpress-part-2-gci텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)