WordPress Thumbnail добавить действие, если нет миниатюры

Я изучал, как сделать свой собственный плагин 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>') } } 

Моя проблема: миниатюра изображения по умолчанию не находится в правильном положении. Посмотреть это изображение любая идея? Или неправильный the_post ?

Solutions Collecting From Web of "WordPress Thumbnail добавить действие, если нет миниатюры"

Крючок the_post не подходит для этого.

Вы можете добавить фильтр в the_content, см. http://codex.wordpress.org/Plugin_API/Filter_Reference/the_content

Для чего-то такого, как вставка миниатюры, я бы объявил новый крючок.

 /** * 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. В вашем случае вы хотели бы добавить немного более условную логику.

Если ваша тема придерживается правил, отображаемое изображение загружается с помощью 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; }