Skocz do zawartości
kacper3355

Problem z elementem w poście / Wordpress

Polecane posty

Cześć.

Mam problem z pewnym elementem w poście. Otóż na końcu każdego posta posiadam przyciski udostępniania. Teraz chciałem umieścić reklamę na końcu postu, ale jest pewien problem - reklama zamiast na końcu postu pojawia się pod przyciskami udostępniania. Gdy je wyłączę to wszystko jest ok. Jak mogę przenieść reklamę powyżej w/w przycisków?

 

Screen o co mi chodzi - http://i.imgur.com/T13rrPa.jpg

 

Przykładowy post - http://goo.gl/UrjJGB

 

Z góry dzięki za pomoc.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Właśnie na sztywno też się nie da. Przyciski social są zawsze nad reklamą :/

 

A obecne reklamy są właśnie wstawione wtyczką do Adsense, przy opcji "after post content".

Plugin nazywa się WP-Advertize It.

Edytowano przez kacper3355 (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Takie dodatki - jak te przyciski udostępniania czy wtyczka dodająca reklamy - są zazwyczaj dodawane poprzez add_action/add_filter do funkcji the_content. Mogą być one zarówno umiejscowione jako wtyczki, jak też w pliku functions.php wykorzystywanego motywu.

add_filter('the_content', 'dodatkowa_akcja');

 

Twoim problemem jest kolejność wykonywania tych filtrów: najpierw do treści posta dodawane są przyciski (i stają się technicznie dla Wordpressa integralną częścią posta), później do tej zmodyfikowanej treści posta dodawane są reklamy (i też stają się częścią posta dla kolejnych ewentualnych filtrów/akcji). A Ty chcesz odwrotnie, dlatego możesz pobawić się priorytetem dla tych akcji. Czy to dla przycisków, czy to dla reklam dodaj odpowiedni priorytet (niższy - wcześniejsze wykonanie, wyższy - późniejsze, domyślny wynosi 10):

add_filter('the_content', 'dodatkowa_akcja', 5);

 

Opcjonalnie - co ja zazwyczaj robię dla znajomego - zamiast wykorzystywać jakiekolwiek wtyczki, wszystkie takie elementy umieszczam w plikach wykorzystywanego motywu (aby nie psuć oryginału, który może w przyszłości być uaktualniany, tworzę motyw "dziecko/child").

 

PS. Dla lepszej optymalizacji kodu obie rzeczy (reklamy i przyciski) umieściłbym w jednym miejscu, w jednym filtrze w functions.php wykorzystywanego motywu.

Edytowano przez Piotr GRD (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@Piotr GRD

Dzięki za odpowiedź, ale mówisz trochę niezrozumiałym dla mnie językiem.

Rozumiem, że mam dodać w functions.php

add_filter('the_content', 'dodatkowa_akcja', 5);

ale co wrzucić w "dodatkowa_akcja"?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jeśli mam rację co do sposobu implementacji, to odnajdź w plikach wtyczki "WP-Advertize It" fragment wyglądający jak podałem (albo add_filter albo add_action, to dwie nazwy na to samo) i tam dodaj priorytet mniejszy od 10.

 

ALBO odnajdź w functions.php używanego motywu podobny fragment odpowiedzialny za przyciski i dodaj priorytet większy od 10 (zakładam, że przyciski to element motywu, a nie osobna wtyczka).

 

A osobiście reklamę wrzuciłbym w tę samą funkcję, która odpowiada już za przyciski (zamiast osobno jedno, osobno drugie).

 

 

 

edycja:

Pobrałem tę wtyczkę. W pliku classes/wp-advertise-it.php w linii 230 jest

add_filter('the_content', array($this, 'show_ad_in_content'));

I to jest chyba to, więc można to zmienić na

add_filter('the_content', array($this, 'show_ad_in_content'), 5);

 

Twojego motywu nie sprawdzałem, ale coś podobnego będzie zapewne w functions.php - tam można albo obniżyć priorytet przycisków (większy niż 10) zamiast podwyższać priorytet reklamy, albo do przycisków dopisać kod reklamy (rezygnując z wtyczki dla reklam).

Edytowano przez Piotr GRD (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Niestety po zastosowaniu powyżej modyfikacji wszystko się wykrzaczyło - cały szablon.

W pliku functions.php niestety nie mogę nic znaleźć. Jeśli masz chwilę, mógłbym podesłać Ci cały szablon lub sam plik functions.

 

Wielkie dzięki za chęć pomocy.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie powinno, ale to duża wtyczka (jeśli używasz jej tylko do tej jednej reklamy pod postem, to jest to przesada), więc może coś faktycznie pomieszała taka mała zmiana...

 

 

Wyszedłem z błędnego założenia, że te przyciski to element motywu. A to przecież kolejna wtyczka: "Cocorico Social". Spróbujmy więc obniżyć priorytet Cocorico, w pliku "cocorico-social.php" w linii 176 jest

add_filter ('the_content', 'coco_social_share');

spróbujmy zmienić na

add_filter ('the_content', 'coco_social_share', 11);

 

 

Szczerze powiedziawszy to nie lubię bawić się z wtyczkami, wolę wszystko wrzucać w pliki motywu.

 

Edytowano przez Piotr GRD (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@podbijam

 

Jest jeszcze jeden problem - taki sam, tyle że trzeba by przenieść reklamę powyżej przycisków paginacji w postach.

 

Przykładowy post - http://goo.gl/2Q4jyM

 

Ktoś ma jakiś pomysł jak mogę się za to zabrać? :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Podstawowe pytanie (bo nigdy nie bawiłem się w dzielenie posta na kilka stron) - czy to funkcjonalność dodana przez jakąś wtyczkę? Jeśli przez wtyczkę, to można spróbować obniżyć priorytet podobnie jak zrobione to zostało dla "cocorico social".

 

A może jest to częścią używanego szablonu? Na samym końcu używanego przez Ciebie hueman/functions.php widzę coś, co być może jest odpowiedzialne właśnie za to (choć pewien nie jestem):

add_filter('the_content','pagination_after_post',1);

wstaw 11 zamiast 1 i zobacz co się stanie. Gdyby przeskoczyło aż za nisko (pod przyciski "cocorico"), to dla "cocorico" daj liczbę większą od 11 wówczas. *** edycja: skreślam, to raczej nie to.

 

 

Zamiast jednak bawić się z obniżaniem priorytetu dla wszystkiego poza reklamą, rozsądniej byłoby podwyższyć priorytet reklamy - co Ci się powyżej nie udało, ale kiedyś można się spróbować tym pobawić.

 

Edytowano przez Piotr GRD (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Poczytałem. To nie wtyczka, tylko wbudowana funkcja Wordpressa wp_link_pages (nie wiedziałem o tej funkcjonalności nawet.. ale to pewnie dlatego, że nie korzystam osobiście z Wordpressa, a jedynie zmieniam/dodaję drobiazgi dla innych).

 

Wspomniana przez Ciebie wtyczka jedynie zmienia sposób działania powyższej funkcji (to jak linki do "następnej/poprzedniej strony" są wyświetlane).

 

Rozwiązania (między innymi) będą zatem następujące (ja osobiście nie bawiłem się nigdy wtyczkami, więc stosowałbym trzecie, Ty możesz zechcieć wykorzystać drugie):

 

- albo podwyższyć priorytet WP-Advertize-It, co jednak ci się nie udało i wymaga testów osoby, która zna się trochę na PHP i sobie to zainstaluje i posprawdza;

 

- albo zmodyfikować wtyczkę WP-Advertize-It jak opisałem poniżej;

 

- albo w podobny sposób jak kod prezentowany poniżej wyprowadzić reklamę do "functions.php" używanego szablonu, zamiast korzystania z wtyczki (ja tak właśnie robię wszystko związane z wyglądem - przyciski, reklamy itd.).

 

 

 

UWAGA, kodu NIE testowałem, ale wydaje mi się, że powinien działać (przy założeniu, że korzystasz z wtyczki "Custom Nextpage", i że dobrze namierzyłem właściwy fragment wp-advertize-it):

 

Plik wp-advertize-it/classes/wp-advertize-it.php linijki 785-787:

            if (is_single()) {
                return $post_below_title . $content . $post_below_content;
            } else if (is_home()) {

zmienić na:

            if (is_single()) {
                // MODYFIKACJA 2015-03-01, reklama PRZED stronicowaniem postu z wtyczką Custom Nextpage
                if ($post_below_content !='' && strpos($content, '<div class="page-link-box">') !== false)
                { return $post_below_title . str_replace('<div class="page-link-box">', $post_below_content . '<div class="page-link-box">', $content); }
                else
                { return $post_below_title . $content . $post_below_content; }
                // KONIEC modyfikacji 2015-03-01, reklama PRZED stronicowaniem postu z wtyczką Custom Nextpage
            } else if (is_home()) {

Pamiętaj, że w przypadku aktualizacji wtyczki modyfikację utracisz i będzie trzeba to powtórzyć.

 

Edytowano przez Piotr GRD (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

To już jest kwestia tylko i wyłącznie CSS. Wyrzuć "float:left" z kodu reklamy (<div style="float: left;"> ... </div>). A jeśli koniecznie ma on być z jakichś względów, to po reklamie daj dodatkowo <div style="clear:both;"></div>

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×