2011-09-08 118 views
1

我試圖讓我的博客WordPress的插件掃描包含自定義字段_videoembed的帖子。我就擁有了一切製成,它正確地激活,但是我收到一個PHP錯誤,當我打開一個頁面來測試它:WordPress的 - 獲取自定義字段

Fatal error: Call to a member function get_results() on a non-object in .../wp-content/plugins/youtubesubscription/videos.php on line 26.

有誰知道足夠的PHP幫助我嗎?這裏是我的插件代碼(粘貼在因爲大小的引擎收錄): http://pastebin.com/uaEWjTn2

編輯1

我不再得到任何錯誤。在插入後global $wpdb;但現在什麼也沒有顯示出來。這是我更新的代碼:http://pastebin.com/R2ZuEknY。請注意,此代碼還包含自動的YouTube縮略圖,這些縮略圖是通過將YouTube網址修剪到ID(鏈接)的功能獲得的。

EDIT 2

得到它的工作,原來都是我需要做的是插入「_videoembed」作爲一個wp_query的「meta_key」的說法。這是我工作的代碼如下:

<?php 
    $args = array(
     'meta_key' => '_videoembed', 
     'post_status'  => 'publish', 
     'posts_per_page' => '' . $number . '', 
     'order' => 'date' 
    ); 
    query_posts($args); 

    while (have_posts()) : the_post(); ?> 
     <?php 
     global $post; 
     $VIDEOID = ytvideoID($post->ID); 
     ?> 
     <li onClick="window.location.href='<?php the_permalink(); ?>'"> 

      <?php 
       global $post; 
       $videoId = ytvideoID($post->ID); 
       $videoInfo = parseVideoEntry($videoId); 
       echo '<a href="'.get_permalink().'">'; 
        echo '<div class="image">'; 
         echo '<img src="http://img.youtube.com/vi/'.$VIDEOID.'/default.jpg">'; 
         echo '<div id="time" style="position:absolute;z-index:9;bottom:2px;right:2px;font-size:10px;color:#fff;background:#000;padding:0px 2px;-webkit-border-radius: 4px;-moz-border-radius: 4px;border-radius: 4px;opacity:0.75;">'.hms($videoInfo->length).'</div>'; 
        echo '</div>'; 
       echo '<h4>'.get_the_title().'</h4>'; 
       echo '<div id="description">'; 
        echo '<div id"views"><h3>'.number_format($videoInfo->viewCount).' Views</h3></div>'; 
        echo '<div class="singleauthor"><h3>by '.$videoInfo->author.'</h3></div>'; 
       echo '</div>'; 
       echo '</a>'; 
      ?> 
     </li> 
    <?php endwhile; 

    // Reset Query 
    wp_reset_query(); 

    ?> 

回答

0

它看起來像你在一行缺少一個分號26

我看到:
$pageposts = $wpdb->get_results($querydetails, OBJECT_K)

+0

感謝您的快速響應。我試着添加一個分號,但是我仍然收到一個錯誤,請求調用非對象 – Matt

1

你必須添加global $wpdb;

嘗試更換

function mbrecentvids() 
{ ?> 
<?php 

function mbrecentvids() 
{ 
    global $wpdb; 
+0

仍然沒有運氣。我沒有收到任何錯誤,但沒有顯示出來。這裏是我更新的代碼:http://pastebin.com/R2ZuEknY – Matt

+0

現在可能是您的查詢,那麼您是否嘗試在mysql或phpmyadmin中運行它?嘗試在代碼中添加'echo'以查看它是否已達到 – Mark

+0

嗯,我已將它設置爲獨立於我的頁腳,但我希望將它製作出來。當它在那裏種植時,它運行良好,但不在小部件中。 – Matt

3

您使用meta_query自定義字段得到這個職位。

$args= array(
    'category_name' => 'courses', 
    'orderby'  => 'menu_order', 
    'order'   => 'ASC', 
    'meta_query' => array(
     array(
      'key'  => 'front_page', 
      'value' => 'yes', 
      'compare' => 'LIKE', 
     )) 

); 

$the_query = new WP_Query($args); 

請參考我的教程瞭解更多詳情。 http://www.pearlbells.co.uk/filter-posts-custom-fields-wp_query/