Значок по умолчанию – как его установить

Мне нужен код, который добавит большой палец по умолчанию, если нет доступного изображения. Я использовал указатель по умолчанию плюс для этого, но этот плагин использует много ресурсов, поэтому мне нужно его удалить.

Я пытался следовать этому руководству

Но не повезло. Внутри моего виджета есть этот код

<?php if ( (function_exists('has_post_thumbnail')) && (has_post_thumbnail()) ) { ?> 

Отредактировано: И весь код вы можете увидеть здесь pastebin.com/715evL1E

Любая идея, как это сделать? благодаря

Я пробовал также с предлагаемым кодом, но у меня ошибка. Это то, что я пытаюсь сделать последним в index.php

 <?php if ( (function_exists('has_post_thumbnail')) && (has_post_thumbnail()) ) { ?> <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_post_thumbnail('large-thumb'); } ?> <img src="<?php echo get_template_directory_uri(); ?>/images/transfer-deadline-150x150.jpg" /><?php } ?></a> 

Solutions Collecting From Web of "Значок по умолчанию – как его установить"

Хотя в ядре нет такой функциональности, есть два трека, которые я предложил 2 года назад. Вы можете просто разорвать функциональность из предложенной функции wp_default_img() . Я буду очень признателен за поддержку в комментариях к этому билету, поскольку это будет очень необходимо для каждого разработчика темы. Заранее спасибо.

MU-Plugin

Следующий код предназначен для удаления в папку ~/wp-content/mu-plugins (или как вы его назвали). Он будет по умолчанию доступен на каждом сайте при сетевой установке или просто повсеместно в вашем единственном месте установки. Используйте его так:

 default_img( array( /* attributes - see doc block */ ) ); 

Просто сохраните код ниже в новый файл с любым именем, и вы готовы к работе.

 <?php defined( 'ABSPATH' ) OR exit; /** * Plugin Name: Default Image template tag * Plugin URI: http://unserkaiser.com * Description: Adds a default image template tag * Version: 0.1 * Author: Franz Josef Kaiser * Author URI: http://unserkaiser.com * License: GNU GPL 2 <https://gist.github.com/1365159> */ /** * Default image * * Builds an default <img> for use in themes or plugins before any other images are added. * Resizes & crops the image using the built-in (retireved via `get_intermediate_image_sizes();`) * or custom image (added via `add_image_size();`) sizes. * * Retrieves calculated resize dimension @uses image_resize_dimensions(); * Builds the width and height string @uses image_hwstring(); * * @param $attr * @internal param $args (array) * string $url URl to the given default image. * string $size Optional. Default is 'medium'. * string (optional) $alt Image Description for the alt attribute. * string (optional) $title Image Description for the title attribute. * string (optional) $align Part of the class name for aligning the image. * string (optional) $echo Wheter to return or echo the $image * @return string HTML IMG element for given image attachment */ function default_img( $attr ) { // Sizes registered via add_image_size(); global $_wp_additional_image_sizes; $defaults = array( 'size' => 'medium', 'classes' => false, 'alt' => '', 'title' => '', 'align' => 'none', 'echo' => true, ); $attr = wp_parse_args( $attr, $defaults ); $attr = array_map( 'esc_attr', $attr ); if ( 'thumb' === $attr['size'] ) $attr['size'] = 'thumbnail'; // Size in built in sizes - call size setting from DB # behavoir in here dependent on @link http://core.trac.wordpress.org/ticket/18947 # if in core, we change to: # $sizes = get_intermediate_image_sizes(); # $size_data = $sizes[ $size ]; if ( ! in_array( $attr['size'], array_keys( $_wp_additional_image_sizes ) ) ) { # @TODO delete? $sizes = get_intermediate_image_sizes(); // Get option - gladly autoloaded/can use wp_cache_get(); $size_data['width'] = intval( get_option( "{$attr['size']}_size_w" ) ); $size_data['height'] = intval( get_option( "{$attr['size']}_size_h" ) ); // Not sure how this will behave if cropped is false (autoloaded option not added) if ( ! $size_data['crop'] = get_option( "{$attr['size']}_crop" ) ) $attr['crop'] = false; } // Size array from global registered additional/custom sizes array else { $size_data = $_wp_additional_image_sizes[ $attr['size'] ]; } // Retrieve image width & height $img_info = @getimagesize( $attr['url'] ); // Calculate final dimensions - if "crop" was set to true during add_image_size(), the img will get ... cropped $end_sizes = image_resize_dimensions( $img_info[0], $img_info[1], $size_data['width'], $size_data['height'], $size_data['crop'] ); // defaults to px units. // Can't get changed, as applying units is not possible $hwstring = trim( image_hwstring( $end_sizes[4], $end_sizes[5] ) ); // Attributes: // Not made required as users tend to do funky things (...and lock screen readers out) ! empty( $attr['alt'] ) AND $attr['alt'] = " alt='{$attr['alt']}'"; if ( ! $attr['title'] ) { $mime = explode( "/", $img_info['mime'] ); $attr['title'] = sprintf( __( 'default image of type: %1$s' ), ucfirst( $mime[1] ) ); } $attr['title'] = " title='{$attr['title']}'"; $attr['align'] = " align{$attr['align']}"; $attr['size'] = " size-{$attr['size']}"; // Allow filtering of the default attributes $attr = apply_filters( 'wp_default_img_attr', $attr ); // Build class attribute, considering that maybe some attribute was unset via the filter $classes = "class='wp-img-default{$attr['align']}{$attr['classes']}{$attr['size']}'"; $url = trim( $attr['url'] ); $image = "<img src='{$url}' {$hwstring} {$classes}{$attr['alt']}{$attr['title']} />"; // Allow filtering of output $image = apply_filters( 'wp_default_img', $image ); $attr['echo'] AND print $image; return $image; } 

Функция has_post_thumbnail (), используемая без идентификатора , должна находиться внутри цикла .

 while(has_post()) { the_post(); if ( has_post_thumbnail() ) { the_post_thumbnail(); } else { ?> <img src="<?php echo get_template_directory_uri(); ?>/images/default-thumb.jpg" /> <?php } } 

Вы также можете использовать has_post_thumbnail () с определенным идентификатором сообщения:

  <?php //Just an exampl $post_id = 45; if ( has_post_thumbnail($post_id) ) { //in this case we can not use the_post_thumbnail get_the_post_thumbnail($post_id, 'thumbnail'); } else { ?> <img src="<?php echo get_template_directory_uri(); ?>/images/default-thumb.jpg" /> <?php } 

Кроме того, убедитесь, что тема добавляет миниатюры сообщений, добавляя это в functions.php

 add_theme_support( 'post-thumbnails' ); 

Если вы разместите полный код своего виджета, я смогу научить вас точно, как реализовать функцию эскизов по умолчанию.

В ядре WordPress такой функции нет. Вам не придется создавать, загружать и вызывать свой собственный миниатюр по умолчанию, если не выбрано выбранное изображение. Например, если у вас есть миниатюра по умолчанию в структуре файла темы, вы можете использовать has_post_thumbnail (), чтобы проверить, имеет ли текущий столбец эскиз и the_post_thumbnail (), чтобы отобразить его; обе функции должны использоваться внутри цикла .

  if ( has_post_thumbnail() ) { the_post_thumbnail(); } else { ?> <img src="<?php echo get_template_directory_uri(); ?>/images/default-thumb.jpg" /> <?php } ?> 

Существует множество методов для реализации; это просто быстрый и грязный пример.