dodanie przycisku do streszczenia wpsiu

Dział poświęcony pozostałym kwestiom związanym z kodowaniem w CMS Wordpress.
no avatar
robotec
 
Posty: 3
Reputacja: 0 pkt
Od: 30 sty 2015, o 22:23

dodanie przycisku do streszczenia wpsiu

przez robotec » 30 sty 2015, o 22:48

Witam,
poszukuję rozwiązania pozwalającego mi dodanie przycisku obok "czytaj dalej". Za pomocą Advanced Custom Fields utworzyłem nowe pole tekstowe - do każdego wpisu w to pole wpisuję inny link do zewnętrznej strony.
Teraz chciałbym utworzyć button/link, którego title to tytuł posta, a linkiem jest ten pobrany z utworzonego przeze mnie pola w tym poście.
W css sobie już poradzę i spozycjonuję, nie wiem jak to ugryźć od strony php.
Będę wdzięczny za pomoc,
pozdrawiam
R.

no avatar
admin
Administrator
 
Posty: 627
Reputacja: 38 pkt
Od: 30 sty 2013, o 17:39
Lokalizacja: Kraj nad Wisłą

Re: dodanie przycisku do streszczenia wpsiu

przez admin » 31 sty 2015, o 00:24

Skorzystaj z takiego kodu i wklej go do pliku functions.php swojego szablonu

Kod: Zaznacz cały
function zmiana_excerpt_more($more) {
    global $post;
    return '... <div><a href="'. the_field('zdefiniowane_pole_acf', $post->ID) . '" class="klasa-css">'. get_the_title($post->ID) . '</a></div>';
}
add_filter('excerpt_more', 'zmiana_excerpt_more');

the_field - to nazwa zdefiniowanego pola acf

excerpt_more - to filtr dzięki któremu możemy zmienić te 3 kropki które kończą zajawkę wpisu


przy okazji jeśli chcesz zmienić długość tej zajawki ;)
Kod: Zaznacz cały
function zmiana_excerpt_length() {
return 100;
}
add_filter('excerpt_length', 'zmiana_excerpt_length');


Daj znać czy to zadziała u Ciebie.

no avatar
robotec
 
Posty: 3
Reputacja: 0 pkt
Od: 30 sty 2015, o 22:23

Re: dodanie przycisku do streszczenia wpsiu

przez robotec » 10 kwi 2015, o 16:04

Dziękuję za pomoc, przepraszam, że tak późno.
Musiałem dokonać pewnych modyfikacji, ale dzięki powyższej wskazówce osiągnąłem co zamierzałem. Być może motyw, którego używam (z serii flexithemes) mógł na to wpłynąć... Przede wszystkim kod umieściłem w pliku post.php, zmiany w functions.php nie przynosiły skutku, bądź powodowały błędy.
sam kod, który może się komuś do czegoś przyda wygląda tak :
Kod: Zaznacz cały
<div class="idz_do">
      <a href="<?php the_field('link_do_strony_rejestracji', $post->ID); ?>" title="<?php printf( esc_attr__( 'Idź do %s', 'themater' ), the_title_attribute( 'echo=0' ) ); ?> ">Idź do</a>
</div>

Zastanawiam się tylko, czy można było by ustawić to tak, że w przypadku kiedy pole 'link_do_strony_rejestracji' jest puste to ten link się nie wyświetli?

edit: widziałbym to tak, wyświetl fragment kodu html, czyli tego diva z klasą "idz_do" jeśli pole the_field('link_do_strony_rejestracji', $post->ID) ma jakąkolwiek wartość.

no avatar
admin
Administrator
 
Posty: 627
Reputacja: 38 pkt
Od: 30 sty 2013, o 17:39
Lokalizacja: Kraj nad Wisłą

Re: dodanie przycisku do streszczenia wpsiu

przez admin » 11 kwi 2015, o 12:20

Spróbuj podmienić powyższy kod który cytujesz na
Kod: Zaznacz cały
<?php
$link_do_strony_rejestracji = the_field('link_do_strony_rejestracji', $post->ID);

if (trim($link_do_strony_rejestracji) != ''){
?>
<div class="idz_do">
      <a href="<?php echo $link_do_strony_rejestracji; ?>" title="<?php printf( esc_attr__( 'Idź do %s', 'themater' ), the_title_attribute( 'echo=0' ) ); ?> ">Idź do</a>
</div>
<?php }?>

no avatar
robotec
 
Posty: 3
Reputacja: 0 pkt
Od: 30 sty 2015, o 22:23

Re: dodanie przycisku do streszczenia wpsiu

przez robotec » 12 kwi 2015, o 18:38

Niestety, nie wiem czemu tak się dzieje, ale:
- w miejscu przycisku wyświetlany jest adres, treść linku - nie link tylko tekst
- div nie przyjmuje stylów css, w podglądzie wygenerowanego źródła diva w ogóle nie widać.
próbowałem osadzać we wszystkich miejscach, kiedy nie zadziałało w tym oczywistym.

tak wyglądał cały fragment kodu odpowiedzialny za wyświetlanie 2 przycisków, który mi działał, ale z powodu iż mam 2 rodzaje postów, chciałem aby te, bez linka w polu nie wyświetlały jednego z nich - co zresztą wyjaśniałem wcześniej.

Kod: Zaznacz cały
<?php if($theme->display('read_more')) { ?>
<div>
        <div class="readmore">
            <a href="<?php the_permalink(); ?>#more-<?php the_ID(); ?>" title="<?php printf( esc_attr__( 'Czytaj więcej o %s', 'themater' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php $theme->option('read_more'); ?></a>
</div>
<div class="idz_do">
      <a href="<?php the_field('link_do_strony_rejestracji', $post->ID); ?>" title="<?php printf( esc_attr__( 'Idź do %s', 'themater' ), the_title_attribute( 'echo=0' ) ); ?> ">Idź do</a>
</div>
</div>

<?php } ?>   


Po podmianie kodu - efekt jak opisałem na początku.




  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Kodowanie w Wordpressie

Kto przegląda forum Wordpress

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości

cron