안녕하세요
해시태그 검색 기능을 만들고 싶은데 방법을 몰라서 여쭤봅니다!
해시태그 플러그인을 사용했더니 해시태그 검색이
http://localhost:8080/activity2/?hashtag/해시태그
이 주소로 가지더라구요
그래서 헤더에 있는 검색창에다가 검색하길 원하는 해시태그를 검색하면
저 주소로 가지게끔 만들고 싶은데
그걸 수정하려면 어느 php파일을 건드려야하나요?
헤더보면 그냥 get_search_form()을 불러오던데 저 함수가 있는 파일을 찾을 수가 없네요 ㅠ
그래서 저 부분 코드를 수정해서 검색창에 "test"라고 입력하고 검색버튼을 누르면
<input type="" name="a" value="abc"> 이렇게 받아올테니
value값을
<a href ="http://localhost:8080/activity2/?hashtag/"a>
이렇게하면 http://localhost:8080/activity2/?hashtag/test로 이동시킬 수 있을까요? ㅠㅠ
안녕하세요~^^
get_search_form 함수는 워드프레스 내장 함수로
워드프레스 통합검색과 관련이 있습니다.
FTP로 접속해서 /wp-includes/general-template.php 파일에서 확인해보실 수 있습니다.
말씀하신 대로 적용하시려면
테마 쪽의 searchform.php 파일을 커스텀해주셔야 할 듯합니다.
간단하게 예제 코드를 작성해봤습니다.
FTP로 접속해서 /wp-content/themes/사용중인테마/searchform.php 파일에
아래의 코드를 활용해보세요.
<?php
$hashtag = isset($_GET['hashtag'])&&$_GET['hashtag'] ? sanitize_text_field($_GET['hashtag']) : '';
?>
<form method="get" id="my-search-form" class="my-search-form" action="<?php echo site_url()?>/activity2/?hashtag">
<div>
<input type="text" value="<?php echo $hashtag?>" name="hashtag" id="hashtag">
<input type="submit" class="my-search-submit" id="my-search-submit" value="검색">
</div>
</form>
위의 코드를 적용 후 test 키워드로 검색을 하시면
사이트주소/activity2/?hashtag=test 이런 식으로 접속됩니다.
사이트주소/activity2/?hashtag/test로 이동되게 하시려면
워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에
아래의 코드를 추가해보시겠어요?
add_action('template_redirect', 'my_template_redirect');
function my_template_redirect(){
$hashtag = isset($_GET['hashtag'])&&$_GET['hashtag'] ? sanitize_text_field($_GET['hashtag']) : '';
if($hashtag){
$url = site_url().'/activity2/?hashtag/'.$hashtag;
wp_redirect($url); exit;
}
}
고맙습니다.
와우 대박..!!
답변 기다리면서 기능 구현 성공했는데
제가 짠 코드보다 훨씬 간단하고 보기도 좋네요! ㅜㅜ
역시 스레드봇님입니다!!