2014-03-31 80 views
0

我試圖調整一個Wordpress插件 - 類別縮略圖列表顯示「即將推出」,當短代碼調用類別中的帖子,但沒有。WordPress的類別縮略圖列表插件

我試過聯繫開發者,但沒有運氣。

我修改了原來的代碼,但是沒有顯示。有任何想法嗎?

foreach($myposts as $post) : 
     setup_postdata($post); 
     if (has_post_thumbnail()) { 
     $link = get_permalink($post->ID); 
     $thmb = get_the_post_thumbnail($post->ID,'thumbnail'); 
     $title = get_the_title(); 
     $output .= '<div class="categoryThumbnailList_item">'; 
      $output .= '<a href="' .$link . '" title="' .$title . '">' .$thmb . '</a><br/>'; 
      $output .= '<a href="' .$link . '" title="' .$title . '">' .$title . '</a>'; 
     $output .= '</div>'; 
     } else { 
       $output .= '<p>Coming Soon</p>'; 
       } 
    endforeach; 

下面是完整的代碼:

<?php 
/* 
Plugin Name: Category Thumbnail List 
Plugin URI: http://jonk.pirateboy.net/blog/category/bloggeriet/wordpress/plugins/ 
Description: Creates a list of thumbnail images, using the_post_thumbnail() in WordPress 2.9 and up. 
Version: 1.11 
Author: Jonk 
Author URI: http://jonk.pirateboy.net 
*/ 
$categoryThumbnailList_Order = stripslashes(get_option('category-thumbnail-list_order')); 
if ($categoryThumbnailList_Order == '') { 
    $categoryThumbnailList_Order = 'date'; 
} 
$categoryThumbnailList_OrderType = stripslashes(get_option('category-thumbnail-list_ordertype')); 
if ($categoryThumbnailList_OrderType == '') { 
    $categoryThumbnailList_OrderType = 'DESC'; 
} 

$categoryThumbnailList_Path = get_option('siteurl')."/wp-content/plugins/categoy-thumbnail-list/"; 

define("categoryThumbnailList_REGEXP", "/\[categorythumbnaillist ([[:print:]]+)\]/"); 

define("categoryThumbnailList_TARGET", "###CATTHMBLST###"); 

function categoryThumbnailList_callback($listCatId) { 
    global $post; 
    global $categoryThumbnailList_Order; 
    global $categoryThumbnailList_OrderType; 
    $tmp_post = $post; 
    $myposts = get_posts('numberposts=-1&&category='.$listCatId[1].'&&orderby='.$categoryThumbnailList_OrderType.'&&order='.$categoryThumbnailList_Order); 
    $output = '<div class="categoryThumbnailList">'; 
    foreach($myposts as $post) : 
     setup_postdata($post); 
     if (has_post_thumbnail()) { 
     $link = get_permalink($post->ID); 
     $thmb = get_the_post_thumbnail($post->ID,'thumbnail'); 
     $title = get_the_title(); 
     $output .= '<div class="categoryThumbnailList_item">'; 
      $output .= '<a href="' .$link . '" title="' .$title . '">' .$thmb . '</a><br/>'; 
      $output .= '<a href="' .$link . '" title="' .$title . '">' .$title . '</a>'; 
     $output .= '</div>'; 
     } else { 
       $output .= '<p>Coming Soon</p>'; 
       } 
    endforeach; 
    $output .= '</div>'; 
    $output .= '<div class="categoryThumbnailList_clearer"></div>'; 
    $post = $tmp_post; 
    wp_reset_postdata(); 
    return ($output); 
    $output = ''; 
} 

function categoryThumbnailList($content) { 
    return (preg_replace_callback(categoryThumbnailList_REGEXP, 'categoryThumbnailList_callback', $content)); 
} 

function categoryThumbnailList_css() { 
    global $categoryThumbnailList_Path; 
    echo " 
<style type=\"text/css\"> 
    @import url(\"".$categoryThumbnailList_Path."categoy-thumbnail-list.css\"); 
</style> 
"; 
} 
add_action('wp_head', 'categoryThumbnailList_css'); 
add_filter('the_content', 'categoryThumbnailList',1); 
?> 
<?php 
add_action('admin_menu', 'my_plugin_menu'); 

function my_plugin_menu() { 
    add_options_page('Category Thumbnail List Options', 'Category Thumbnail List', 'manage_options', 'category-thumbnail-list', 'my_plugin_options'); 
} 

function my_plugin_options() { 
    global $categoryThumbnailList_Order; 
    global $categoryThumbnailList_OrderType; 

    if($_POST['save_category-thumbnail-list_settings']) { 
     // update order type 
     if(!$_POST['category-thumbnail-list_ordertype']) 
     { 
      $_POST['category-thumbnail-list_ordertype'] = 'date'; 
     } 
     update_option('category-thumbnail-list_ordertype', $_POST['category-thumbnail-list_ordertype']); 

     // update order 
     if(!$_POST['category-thumbnail-list_order']) 
     { 
      $_POST['category-thumbnail-list_order'] = 'DESC'; 
     } 
     update_option('category-thumbnail-list_order', $_POST['category-thumbnail-list_order']); 

     $categoryThumbnailList_Order = stripslashes(get_option('category-thumbnail-list_order')); 
    $categoryThumbnailList_OrderType = stripslashes(get_option('category-thumbnail-list_ordertype')); 

    echo "<div id=\"message\" class=\"updated fade\"><p>Your settings are now updated</p></div>\n"; 

    } 
    ?> 
    <div class="wrap"> 
    <h2>Category Thumbnail List Settings</h2> 
    <form method="post"> 
     <table class="form-table"> 
      <tr valign="top"> 
       <th scope="row">Order by</th> 
       <td> 
        <select name="category-thumbnail-list_ordertype" id="category-thumbnail-list_ordertype"> 
          <option <?php if ($categoryThumbnailList_OrderType == 'date') { echo 'selected="selected"'; } ?> value="date">Date</option> 
          <option <?php if ($categoryThumbnailList_OrderType == 'title') { echo 'selected="selected"'; } ?> value="title">Title</option> 
        </select> 
       </td> 
      </tr> 
      <tr valign="top"> 
       <th scope="row">Display order</th> 
       <td> 
        <select name="category-thumbnail-list_order" id="category-thumbnail-list_order"> 
          <option <?php if ($categoryThumbnailList_Order == 'DESC') { echo 'selected="selected"'; } ?> value="DESC">Descending (z-a/9-1/2010-2001)</option> 
          <option <?php if ($categoryThumbnailList_Order == 'ASC') { echo 'selected="selected"'; } ?> value="ASC">Ascending (a-z/1-9/2001-2010)</option> 
        </select> 
       </td> 
      </tr> 
     </table> 

     <div class="submit"> 
      <!--<input type="submit" name="reset_category-thumbnail-list_settings" value="<?php _e('Reset') ?>" />--> 
      <input type="submit" name="save_category-thumbnail-list_settings" value="<?php _e('Save Settings') ?>" class="button-primary" /> 
     </div> 
     <div> 
      <a href="options-media.php">Update the thumbnail sizes here</a> 
     </div> 
     <div> 
      <a href="plugin-editor.php?file=categoy-thumbnail-list/categoy-thumbnail-list.css&plugin=categoy-thumbnail-list/categoy-thumbnail-list.php">You may need to update your css when changing the thumbnail size</a> 
     </div> 

    </form> 
    </div> 
<?php 
} 
?> 

非常感謝,

邁克

+0

退房**分類縮略圖**它更容易:http://wordpress.org/plugins/category-thumbnails/ –

+0

嗨阿德里安,感謝您答覆,但不符合我的需要。我需要能夠從某個類別中提取帖子,並在使用短代碼的頁面上使用他們的縮略圖和標題顯示它們。像這樣 - http://s.w.org/plugins/categoy-thumbnail-list/screenshot-1.png?r=885207 – designmagic

回答

0

沒有測試你的代碼,但看一眼就顯示至少一個問題...你在循環之外使用這個。當不在循環中使用時,has_post_thumbnail()不知道你正在檢查的是什麼帖子。因爲只有該修改,你的代碼應該是這樣的:

foreach($myposts as $post) : 
    setup_postdata($post); 
    if (has_post_thumbnail($post->ID)) { 
     $link = get_permalink($post->ID); 
     $thmb = get_the_post_thumbnail($post->ID,'thumbnail'); 
     $title = get_the_title(); 
     $output .= '<div class="categoryThumbnailList_item">'; 
      $output .= '<a href="' .$link . '" title="' .$title . '">' .$thmb . '</a><br/>'; 
      $output .= '<a href="' .$link . '" title="' .$title . '">' .$title . '</a>'; 
     $output .= '</div>'; 
    } else { 
     $output .= '<p>Coming Soon</p>'; 
    } 
endforeach; 
+0

嗨,謝謝你的回覆。它似乎沒有解決這個問題。你能測試它嗎? – designmagic