WordPress缩略图如果没有缩略图,则添加操作

时间:2013-10-16 作者:user40514

我正在学习如何制作自己的WordPress插件,目前我很困惑,如果帖子中没有缩略图,那么我如何使用默认图像作为缩略图。我使用的代码:

add_action( \'the_post\', \'mythumb\' );

function mythum(){
   if (!has_post_thumbnail()) {
    $defaultthum = "http://example.com/default.jpg"
    echo (\'<div class="featured-thumbnail"><img width="150" height="150" src="\'.$defaultthum.\'" class="attachment-featured wp-post-image" alt="7" title="" /></div>\')
   }
}
My problem: 默认图像缩略图的位置不正确。看见this image 有什么想法吗?或是钩子the_post 是否不正确?

3 个回复
SO网友:Karine

挂钩The\\u post不是用于此的正确挂钩。

您可以将筛选器添加到\\u内容中,请参见http://codex.wordpress.org/Plugin_API/Filter_Reference/the_content

SO网友:Imperative Ideas

对于像插入缩略图这样的特定内容,我将声明一个新的挂钩。

/**
 * Register hook: thumbnail
 *
 * In the post, if no thumbnail exists
 * use a default instead
 */

function thumbnail_hook() {
    do_action(\'thumbnail_hook\');
}
然后在主题中,添加挂钩:

<?php thumbnail_hook(); ?>
最后,您的操作将连接到该新空间:

add_action( \'thumbnail_hook\', \'mythumb\' );
此解决方案允许您将缩略图放置在主题页面上下文中的任何位置,同时更接近MVC方法。在您的情况下,您需要添加更多的条件逻辑。

SO网友:cjbj

如果主题符合规则,则会使用get_the_post_thumbnail. 此函数的末尾有一个过滤器,您可以使用它查看是否有缩略图。像这样:

add_filter (\'get_the_post_thumbnail\', \'wpse119033_default_thumb\',10,5);

function wpse119033_default_thumb ($html, $post_id, $post_thumbnail_id, $size, $attr) {
  if (\'\' == $html) {
    $defaultthum = "http://example.com/default.jpg";
    $html = \'<div class="featured-thumbnail"><img width="150" height="150" src="\'.$defaultthum.\'" class="attachment-featured wp-post-image" alt="7" title="" /></div>\';
    }
  return $html;
  }

结束