우선 소스부터 올립니다
1. 첫번째 소스 (wordpress page에 적은 php 소스)
<?php
if (! is_user_logged_in ()) {
$redirect = site_url('membership-login');
wp_redirect($redirect);
exit;
}
global $wpdb;
$current_user = wp_get_current_user();
$user_login = $current_user->user_login;
$i = 1;
?>
<script type="text/javascript">
var start = 0;
var list = 5;
function append_list(){
jQuery.post("http://wp-content/themaes/12-child/append_list.php", {start:start, list:list}, function(data){
jQuery("#appendbox").append(data);
start += list;
});
}
jQuery(document).ready(function(){
jQuery("#searchTerm").keypress(function (e) {
if (e.which == 13){
search(); // 실행할 이벤트
}
});
append_list();
jQuery(window).scroll(function(){
var dh = jQuery(document).height();
var wh = jQuery(window).height();
var wt = jQuery(window).scrollTop();
if(dh == (wh + wt)) {
append_list();
}
});
});
</script>
<div class="frame_mold">
<div class="col-12 col-sm-12 col-lg-8 frame_center" >
<div class="col-lg-4 form-group right">
<div class="input-group">
<input type="text" class="form-control" id="searchTerm">
<div class="input-group-append">
<input type="button" class="btn btn-outline-secondary right" id="searchButton" onclick="search()" value="검색">
</div>
</div>
</div>
<table class='table table-hover col-lg-12' id="dataTable" align=center>
<thead>
<tr>
<th> 번호 </th>
<th> 유형 </th>
<th> 과목 </th>
<th> 시작시간 </th>
<th> 시험시간 </th>
<th> 출제자 </th>
<th> 시험신청 </th>
</tr>
</thead>
<tbody id="appendbox">
</tbody>
</table>
</div>
</div>
2. 두번째 소스입니다
<?php
require_once('{wordpress_path}/wp-config.php');
require_once('{wordpress_path}/wp-load.php');
require_once('{wordpress_path}/wp-includes/wp-db.php');
$start = $_POST['start'];
$list = $_POST['list'];
global $wpdb;
$current_user = wp_get_current_user();
$user_login = $current_user->user_login;
$today_date = date('Y-m-d');
$sql = "SELECT test_sort, test_subject, start_date, time, user_login, test_code FROM Test_List WHERE start_date > '$today_date' AND participation!=1 LIMIT {$start}, {$list}";
$arr_rs = $wpdb->get_results($sql,ARRAY_N);
$i=1;
foreach($arr_rs as $r){ ?>
<tr>
<td> <?php echo $i++ ?> </td>
<td> <?php echo $r[0] ?> </td>
<td> <?php echo $r[1] ?> </td>
<td> <?php echo $r[2] ?> </td>
<td> <?php echo $r[3] ?> </td>
<td> <?php echo $r[4] ?> </td>
<td> <input type="button" class="btn-small btn-outline-secondary" name="request[<?php echo $i++ ?>]" value="신청" onclick="request_test('<?php echo $r[5] ?>')"> </td>
</tr>
<?php } ?>
<script type="text/javascript">
alert("되는건가");
</script>
첫번째의 소스는 인터넷에 검색하면서 얻은 '게시판 페이징 스크롤' 으로 짠 소스입니다
(출처 : https://m.blog.naver.com/PostView.nhn?blogId=jpwshort2&logNo=220285008743&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F)
제가 구현하고 싶은 기능은 페이지가 스크롤 일정 내려갔을 때 DB에서 추가적으로 자료를 가져와 table을 그리는 것인데요
여기에서는 ajax를 사용하지 않고 php 파일을 하나 만들어서 DB에 접속을 하여 값을 얻은 후 append 함수를 써서 table을 그리는 식으로 되어있어서 이걸 가져왔습니다
작동이 안되서 여기에 질문을 올립니다
1. post의 경로가 맞는것인지 / wordpress 에서 php 파일을 추가? 하는 게 맞는 방법인지
우선 경로를 ftp를 사용하여 파일을 올렸지만 아무런 응답이 없었고, 혹시나 하는 마음에 절대경로로 바꾸어봤지만 그럼에도 반응이 없어서
저런식으로 경로 설정이 맞는지 궁금하면서 혹시나 wordpress 에서는 php 파일을 저런식으로 추가할 수 없는건가 생각했는데 아직 실력이 미흡해서 그런지
도통 찾을 수가 없더군요
2. php 파일을 쓸 수 있다면 어떤 식으로 해야하는지
만약에 저런 식으로 php 파일을 추가할 수 있다면 wordpress 에서 확장성이 엄청 뛰어날 것 같은데 이렇게 추가하는 곳을 찾을수가 없네요
아니면 할 수 없어서 못하게 막은 것인지.....
3. 2번째 소스가 맞는 소스인지
require_once('{wordpress_path}/wp-config.php');
require_once('{wordpress_path}/wp-load.php');
require_once('{wordpress_path}/wp-includes/wp-db.php');
이렇게 선언하면 wpdb 함수를 사용할 수 있어서 DB를 사용할 수 있다고 인터넷에서 발견했는데 적용이 안되서 이렇게 올렸습니다.
4. 이 방식은 할 수가 없고 ajax를 사용해서 값을 얻어야할 경우 (추가적인 질문)
만약에 이 방식이 잘못된 방식이면 ajax를 사용해서 얻어와야할 것 같은데 그럴 경우에는 어떤 식으로
해야될지 모르겠습니다.
항상 좋은 답변 감사합니다
올려주신 코드 중에서 /wp-content/themaes/12-child/append_list.php 부분에 오타가 있는 듯합니다.
아래처럼 교체해주셔야 할 듯합니다.
/wp-content/themes/12-child/append_list.php
자식 테마에 코드를 추가하셨다면 아래의 코드는 따로 추가하지 않으셔도 됩니다.
require_once('{wordpress_path}/wp-config.php');
require_once('{wordpress_path}/wp-load.php');
require_once('{wordpress_path}/wp-includes/wp-db.php');
고맙습니다.
2번째 소스는 자식테마 폴더에다가 추가시켰습니다.
그럼 경로가 이상한 문제인건가요?
안녕하세요~^^
wp_ajax 액션을 사용해보시는 건 어떠신지요?
테마 쪽 functions.php 파일에 해당 코드를 추가해주시면 됩니다.
2번째 소스의 파일은 어디에 추가하신 건지요?
워드프레스 쪽이나 테마 쪽에 추가하셨다면 별도로 파일을 추가하지 않으셔도
global $wpdb; 코드를 바로 사용하실 수 있습니다.
아래의 링크들도 참고해보시겠어요?
https://codex.wordpress.org/ko:플러그인에서_AJAX_구현
https://codex.wordpress.org/Plugin_API/Action_Reference/wp_ajax_(action)
고맙습니다.