2017-02-02 1 views
3

내 데이터베이스에 persona라는 테이블이 있습니다. 이 테이블의 데이터를 WordPress의 페이지 안에있는 html 테이블로 가져와야합니다. 지금까지 내가 무엇을 가지고 : 내가 작업하고 게시하지만 난이 페이지를 새로 고침 할 때 그것은 단지 페이지에 인쇄 된 코드를 표시하고있는 특정 페이지에 추가데이터베이스 정보를 html 테이블에 표시 Wordpress

<table border="1"> 
<tr> 
<th>Firstname</th> 
<th>Lastname</th> 
<th>Points</th> 
</tr> 
<tr> 
    <?php 
    global $wpdb; 
    $result = $wpdb->get_results ("SELECT * FROM persona"); 
    foreach ($result as $print) { 
     echo '<td>' $print->ID_per.'</td>'; 
     } 
    ?> 
</tr>    

. 나는 올바른 장소에 코드를 넣고 있는지 또는 어디에 넣어야할지 모르겠다. 아래 이미지에서

봐 : 테마에 shortcode를 추가하는 것이 작업을 수행하는 가장 간단한, 가장 좋은 방법은 당신의 상황을 감안할 때 enter image description here

+1

당신은 어떤 WordPress의 페이지/포스트에도 PHP 코드를 넣을 수 없습니다. 템플릿을 만들어서 페이지에서 사용해야합니다. –

+1

더 나은 방법은 단문으로이 작업을 수행 할 수 있도록 테마의 functions.php 파일에 단축 코드를 만드는 것입니다. –

+0

훨씬 더 좋은 옵션! 코드 –

답변

4

.

이 코드를 테마의 functions.php 파일에 추가하면 페이지 또는 게시물에 [persona-table]을 추가하여 원하는 모든 정보를 표시 할 수 있습니다.

// add the shortcode [persona-table], tell WP which function to call 
add_shortcode('persona-table', 'persona_table_shortcode'); 

// this function generates the shortcode output 
function persona_table_shortcode($args) { 
    global $wpdb; 
    // Shortcodes RETURN content, so store in a variable to return 
    $content = '<table>'; 
    $content .= '</tr><th>Firstname</th><th>Lastname</th><th>Points</th></tr>'; 
    $results = $wpdb->get_results(' SELECT * FROM persona'); 
    foreach ($results AS $row) { 
     $content = '<tr>'; 
     // Modify these to match the database structure 
     $content .= '<td>' . $row->firstname . '</td>'; 
     $content .= '<td>' . $row->lastname . '</td>'; 
     $content .= '<td>' . $row->ID_per . '</td>'; 
     $content .= '</tr>'; 
    } 
    $content .= '</table>'; 

    // return the table 
    return $content; 
} 
+0

안녕 캐 일럽! 이 솔루션은 효과가있었습니다. 단지 somereason을 위해서 테이블 스타일을 취하지 않고있다. –

+0

나는 오타를 알아 차렸다. 닫는''는'/'가 빠져 있었기 때문에 그것을 고쳤다. 루프 안의 마지막 줄은'$ content. = ''이어야합니다. - 코드에 같은 오타가 있으면 제대로 표시되지 않습니다. –

+0

아무런 문제가 없습니다. 나는 이미 그것을 고쳤습니다. 지금 내가하고 싶은 일은 테이블을 스타일링하는 것입니다.하지만 요소에 클래스를 추가하면 작동하지 않습니다. $ content. = ''. $ row-> ID_per. ''; 어떤 제안? 덕분에 고급 –

0

같은 시도 :

function db_short() { 
    global $wpdb; 
    $result = $wpdb->get_results ("SELECT * FROM persona"); 
    foreach ($result as $print) { 
     echo '<td>' $print->ID_per.'</td>'; 
    } 
} 
add_shortcode('show_db_info', 'db_short'); 

을 그리고 당신은 당신이 PHP 코드를 넣어 단축 코드 [show_db_info]를 삽입 할 수 있습니다. PHP를 추가로 편집하려면이 함수 내부에서 자유롭게 수행 할 수 있습니다. 데이터베이스와 다른 선택이 필요한 경우 단축 코드 속성을 추가하되 목록 만 있으면 충분합니다. 이것은 functions.php에 들어갑니다

+0

ur help @L L에 감사드립니다. 나는 당신의 제안을 시도했지만 어떤 이유로 $ print 라인이 나에게 오류를 주었다. 매우 감사합니다. –

+0

방금 ​​작성한 코드를 기반으로 한 빠른 스 니펫을 작성했습니다. @cale_b의 대답은 훨씬 정확하고 정확합니다. 프로젝트에 행운을 빌어 요! –

+0

하지만 LL 덕분에 도움을 주셔서 감사합니다. 좋은 하루 되세요. –

관련 문제