2013-08-23 2 views
2

내 데이터베이스의 내용을 다른 연도의 페이지로로드하려고합니다.데이터베이스에서 WordPress 페이지로로드

$yearQuery = mysql_query("SELECT DISTINCT YEAR(startDate) AS year FROM series ORDER BY startDate DESC"); 

if(mysql_num_rows($yearQuery) > 0) { 
    while($year = mysql_fetch_assoc($yearQuery)) { 
     echo "<li><a href='/teaching/podcasts?year=".$year['year']."'>".$year['year']."</a></li>"; 
    } 
} 
else { 
    echo "<li>".mysql_error()."</li>"; 
} 

나는 성공적으로 작동하려면 하나를 얻을 관리해야 : 이전 시리즈의 주 표시

while($yearSeries = mysql_fetch_assoc($yearSeriesQ)) { 
    echo "<div class='prevSermon'>"; 
     echo "<div class='prevImage'>"; 
      echo "<a href='/teaching/podcasts?id=".$yearSeries['id']."'><img height='90' width='90' alt='".$yearSeries['title']."' src='/admin/".$yearSeries['image']."'/></a>"; 
     echo "</div>"; 
     echo $yearSeries['title']; 
    echo "</div>"; 
} 

합니다.

내가 몇 년 동안 잘못하고있는 것은 무엇입니까? bottom right hand side에있는 자료실은 무엇입니까?

+0

Welcome to Stackoverflow! – Ma9ic

+0

현재 아카이브 링크는 첫 번째 코드에 의해 생성되지 않습니다.이 링크는'podcasts/id ='에 대한 링크를 생성합니다. – andrewsi

+0

예, @andrewsi가 지적했듯이, 링크하는 HTML 코드가 현재 보여주고있는 PHP와 일치하지 않습니다. 내일 다른 사이트로 연결하는 것보다 여기에 붙여 넣는 것이 좋습니다. – brasofilo

답변

1

Wordpress에서는 여기에서하는 것처럼 원시 SQL 쿼리를 수행 할 필요가 없습니다. 훨씬 안전한 게시물을 얻는 방법에는 여러 가지가 있습니다. get_posts 또는 WP_Query을 사용하고 게시물을 얻는 데 필요한 인수를 정확하게 전달해야합니다. 이것은 또한 setup_postdata을 실행하고 the_title()the_content()과 같은 Wordpress 마법 함수를 사용할 수있는 객체로 게시물을 반환합니다.

이 방법을 사용하면 필요한 정확한 게시물을 타겟팅 할 수 있습니다. 특정 사례와 관련된 Codex의 주장과 비교하십시오. 원시 SQL에서와 마찬가지로 메타 쿼리와 조인을 할 수 있습니다.

+1

OP가 커스텀 테이블을 다루는 것처럼 보입니다.이 경우 관련 문서가 될 것입니다 : [Class_Reference/wpdb] (http://codex.wordpress.org/Class_Reference/wpdb). – brasofilo

+0

좋은 지적! $ wpdb는 원시 SQL보다 여전히 좋습니다. –

관련 문제