리스트를 셀렉트 박스를 이용해서 랜덤으로 정렬 하는 방법이 없을까요?

1. 정확한 제품 또는 플러그인 이름

KBoard 게시판 6.1 

 

2. 상세 내용

 

게시판의 리스트를 랜덤으로 정렬하는 기능을 추가 하고 싶은데요

 

검색하면 필터로 최신글 정렬 대신 랜덤 정렬이 기본으로 나오게 하는건 있는데 

 

저는 그냥 최신글 순이 기본으로 나왔다가 사용자가 원하면 셀렉트박스에서 랜덤 정렬 선택해서 랜덤으로 나오게 하는걸 해보고 싶거든요

 

그래서 셀렉트박스를 이용해서 랜덤 정렬 하는걸 만들려고 했는데 검색해도 안 나옵니다

 

제가 제목 기준으로 셀렉트박스를 이용해서 오름차순이랑 내림차순 정렬은 만들었는데

 

랜덤은 어떻게 해야 될지 감이 안 오네요

 

검색해보니까 orderby rand가 있긴 한데

 

이건 게시물을 랜덤으로 선택해서 가져오는거지 랜덤으로 정렬은 아닌거 같고

 

어떻게 해야 셀렉트 박스로 랜덤 정렬을 선택했을때 랜덤으로 리스트가 나오게 될까요?

 

일단은 제목 기준으로 불러와서 랜덤 정렬하면 될거 같아서 만들어 봤는데 

 

ASC랑 DESC밖에 없으니 어떻게 해야 될지 모르겠네요

 

밑의 4번 코드 내역에서 오름차순 내림차순은 제가 추가한거고

 

랜덤을 이제 고쳐야 하는데 어디서 부터 시작해야 될지 감도 안오네요 

 

귀찮은 질문 드려서 죄송합니다 ㅠㅠ

 

 

3. 확인 가능한 상세 페이지 주소

 

 

4. 수정한 코드 내역 (있다면)

 

		// 정렬 초기화
		if($this->sort == 'date'){
			$this->sort = "`{$wpdb->prefix}kboard_board_content`.`date`";
			$this->order = 'DESC';
		}
		
		if($this->getSorting() == 'newest'){
			// 최신순서
			$this->sort = "`{$wpdb->prefix}kboard_board_content`.`date`";
			$this->order = 'DESC';
		}
		else if($this->getSorting() == 'random'){
			// 랜덤
			$this->sort = "`{$wpdb->prefix}kboard_board_content`.`title`";
			$this->order = 'RANDOM';
		}
		else if($this->getSorting() == 'title_ascending'){
			// 오름차순
			$this->sort = "`{$wpdb->prefix}kboard_board_content`.`title`";
			$this->order = 'ASC';
		}
		else if($this->getSorting() == 'title_descending'){
			// 내림차순
			$this->sort = "`{$wpdb->prefix}kboard_board_content`.`title`";
			$this->order = 'DESC';
		}
		else if($this->getSorting() == 'best'){
			// 추천순서
			$this->sort = "`{$wpdb->prefix}kboard_board_content`.`vote`";
			$this->order = 'DESC';
		}
		else if($this->getSorting() == 'viewed'){
			// 조회순서
			$this->sort = "`{$wpdb->prefix}kboard_board_content`.`view`";
			$this->order = 'DESC';
		}
		else if($this->getSorting() == 'updated'){
			// 업데이트순서
			$this->sort = "`{$wpdb->prefix}kboard_board_content`.`update`";
			$this->order = 'DESC';
		}

 

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    random 값을 입력하면 sql의 문법상 random 을 이용합니다.

    이해하신 것처럼 무작위로 선택되어 정렬됩니다.

     

    전체적으로 랜덤 정렬되고 싶으신 건지

    목적을 조금 더 자세히 작성해주시겠어요?

     

    확인 가능한 링크 남겨주시면

    답변에 도움이 될 듯 합니다.

    고맙습니다.

  • 아무래도 리스트 중간에 있는 게시물은 사람들이 안 볼 가능성이 높으니까 

     

    랜덤 정렬하면 그런 게시물도 좀 보게 되지 않을까 싶어서 전체 랜덤 정렬을 만들어 볼까 했거든요

     

    근데 RANDOM을 값으로 입력하고 셀렉트 박스에서 랜덤을 선택하면 리스트가 아예 안나오네요 리스트에 게시글이 하나도 나오지 않습니다

     

    function kboard_list_sorting_types(){
    	$sorting_types = array('newest', 'best', 'viewed', 'updated', 'title_ascending', 'title_descending', 'random');
    	return apply_filters('kboard_list_sorting_types', $sorting_types);
    }

     

    분류 타입에도 random 값 추가했고

     

    	<option value="random"<?php if($list->getSorting() == 'random'):?> selected<?php endif?>>랜덤 (Random)</option>

     

    셀렉트 박스에도 random 추가 하고 딱히 오타도 없어보이구요

     

    mariadb 사용중인데 이게 언어마다 random 옵션 명령어가 조금씩 달라서 그것때문인가 싶기도 하고 

     

    mariadb에서 쓰는 RAND()도 입력해봤는데 되지가 않네요

     

    꼭 만들어야 되는 기능은 아니고 있었으면 좋겠다 정도니까요 ㅎㅎ

     

    천천히 답변 해주셔도 괜찮습니다 ^^

     

    주말 잘 보내시고 평일에 아무때나 느긋하게 답변해주시면 감사하겠습니다 

     

     

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기