Forum portalu Fan-Strefa.pl
Dla webmastera => Kodowanie => Wątek zaczęty przez: PA_BLO w 05 Lipiec 2012, 23:21:36
-
Zawsze tak mam, że jak zabieram się za nowo poznaną funkcję to mam problemy. Otóż chodzi o przycinanie ikony wpisu.
Mam szablon w którym jest plik functions.php z kodem:
<?php add_theme_support('post-thumbnails'); ?>
oraz w pliku index.php, gdzie ma pojawiać się ikona wpisu mam zdefiniowany następujący kod:
<?php if(has_post_thumbnail()): ?>
<?php $image = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID)); ?>
<a href='<?php the_permalink(); ?>' title='<?php the_title(); ?>'><img src="<?php echo $image[0]; ?>" alt="<?php the_title(); ?>" width='209' height='96'/></a>
<?php else: ?>
<a href='<?php the_permalink(); ?>' title='<?php the_title(); ?>'><img src="<?php bloginfo('template_directory'); ?>/images/ikona-wpisu.png" alt="<?php the_title(); ?>" width='209' height='96' /></a>
<?php endif; ?>
Wiem, że wygląda on strasznie ale ma ona funkcję automatycznego ładowania domyślnego obrazka, gdyby zapomniało się ustawić ikonę. Ale mniejsza o to.
Problem polega na tym, że po wgraniu obrazka(ikony) o wymiarach 209x96, obrazek przycina się automatycznie do rozmiarów 150x96 (jakby była zaznaczona opcja miniatury wpisu - a nie jest, bo wybieram oryginalny rozmiar) po czym rozciąga się do 209x96. Nie mam pojęcia w czym tkwi problem. Wygląda na to jakby WP samo przycinało mi obrazek. Jeżeli ktoś zna przyczynę lub wie co powinienem zrobić w takiej sytuacji proszę o pomoc.
-
Rozciaga Ci bo tak zaznaczyles w kodzie w indexie. A wydaje mi sie, ze musisz dodac do functions.php komendę dotyczącą rozmiaru obrazka. Niestety jej nie pamietam, a jestem na telefonie. Jest na 100% w theme twentyten, a jak nie znajdziesz to jutro jak wejdę na kompa to Ci podam ;)
-
Ustawiłem teraz takie coś w functions.php:
<?php if ( function_exists( 'add_theme_support' ) ) {
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 209, 96 );
} ?>
Również nic nie pomaga. W folderze uploads robi się przycięta kopia ikony i to ona jest podstawiana zamiast oryginalnego obrazka.
-
W tej linijce
<?php $image = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID)); ?>
zmień $post->ID na $post->ID, 'full'
-
W tej linijce
<?php $image = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID)); ?>
zmień $post->ID na $post->ID, 'full'
Niestety nie pomaga.
-
Tzn. nie wiem czy o to będzie Ci chodzić. Ale aby włączyć ikonę wpisu musisz dodać do pliku functions.php następujący kod:
add_theme_support( 'post-thumbnails' );
Tutaj masz szczegóły w razie problemu -> http://codex.wordpress.org/Post_Thumbnails
A później:
<?php set_post_thumbnail_size( $width, $height, $crop ); ?>
Na przykładzie masz: if ( function_exists( 'add_theme_support' ) ) {
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 150, 150 );
}
Jak coś to: http://codex.wordpress.org/Function_Reference/set_post_thumbnail_size
Dodatkowo jeżeli obrazek wgrywasz przez wordpressa to sprawdź najlepiej ustawienia miniatur w Panelu Admina -> Ustawienia -> Media, bo możesz mieć tam złe ustawienia. Jak coś to pisz.
-
Dzięki Wam, już poradziłem sobie.
W index.php wstawiłem:
<a href='<?php the_permalink(); ?>' title='<?php the_title(); ?>'><?php
if ( has_post_thumbnail() ) {
set_post_thumbnail_size( 209, 96 );
the_post_thumbnail();
}
?>
</a>
Zaś do functions.php
<?php if ( function_exists( 'add_theme_support' ) ) {
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 209, 96 );
} ?>
Dodatkowo w divie w którym mają wyświetlać się ikony zdefiniowałem styl tła z domyślną ikoną, która pojawi się w poprzednich postach, które nie miały ustawianych ikon. Jeszcze raz dzięki, + dla obojga