Jak dodać na stałe we wpisie na blogu okno newsletter?

Serwus!

Chciałbym, żeby na końcu każdego wpisu było okienko z newsletterem. Zastanawiam się tylko jak to ugryźć. Na obecny moment kompletnie nie mam pomysłu od czego zacząć. Podsuniecie jakąś sugestię?

Bloga mam w oparciu o WP. :slight_smile:

Plugin do newslettera z opcją shortcode, albo taką która z automatu doda stosowny formularz pod wpisem.
Pierwsze rozwiązanie ma ten minus, że musisz dodać je ręcznie do każdego wpisu. Drugie jest znacznie lepsze, ale nie wiem czy takie coś będzie zaimplementowane większości pluginów. Jest też opcja dodania tego poprzez edycje motywu i dodanie zależnie od wtyczki newslettera np. poprzez dedykowaną funkcję lub znów shordcode, ale uruchomiony z poziomu kodu motywu, a nie treści posta. Tylko jeśli chcesz edytować motyw to najlepiej poprzez utworzenie motywu potomnego i dopiero jego edycję.
Podobnie można to zrobić poprzez napisanie pluginu do pluginu newsletter który będzie taką funkcję dodawał.

2 polubienia

Ten plugin - wtyczka byłaby najlepszym rozwiązaniem. Jednak szukam i większość jakie mi wyskakują to właśnie tabele w stronach, wpisach. Ja zaś potrzebuje :smiley: tak jakby zaimplementowac ten newsletter do wszystkich wpisów. :smiley: pokręciłem trochę. :smiley:

Z tym motywem potomnym to chyba nigdy się nie uda :smiley: Już dawno o nim wspominałeś jednak mam poczucie, że zbyt skomplikowana sprawa dla mnie.

Zastanawiam się czy nie napisać wpisu na blogu jakimś na ten temat bo pomimo masy materiałów ludzie dalej o takiej opcji nie wiedzą, a inni znów się tego boją :stuck_out_tongue:. Myślę, że jednym z problemów dlaczego ludzie się tego boją jest fakt, że chyba nigdzie nie ma tego sensownie opisanego od a do za w języku polskim, a drugi powód to, że materiały po angielsku przerażają :smiley:.

Jest też inny sposób, możesz użyć filtra w WordPressie.
Tutaj => https://www.wpart.pl/ajax-w-wordpress-kompletny-przewodnik/ jest użyty filtr do dodania kodu pod każdym wpisem. Korzystając z tego jesteś w stanie umieścić coś pod każdym wpisem. Jeżeli chcesz odpalać shortcode wtyczki to sprzawdć do_shortcode( string $content, bool $ignore_html = false ).

Możesz to też zrobić pisząc własną wtyczkę :wink: wtedy będzie to niezależne od motywu. We wtyczce musisz dodać tylko odpowiedni komentarz inicjujący wtyczkę i kod który ma się wykonać :wink:

1 polubienie

CHłopaki, a co myślicie, gdybym wszedł w WP -> edytor i tam w wierszu należącym do single.php dodał na końcu - kod newslettera?

" * The template for displaying all single posts." - single.php

<?php
/**
 * The template for displaying all single posts.
 *
 * @package Quest
 */

get_header();
$view = quest_get_view();
?>

<div id="content">
	<?php quest_title_bar( $view ); ?>

	<div class="quest-row site-content">
		<div class="<?php echo apply_filters( 'quest_content_container_cls', 'container' ); ?>">
			<div class="row">

				<?php quest_try_sidebar( $view, 'left' ); ?>

				<div id="primary" class="content-area single <?php quest_main_cls(); ?>">
					<main id="main" class="site-main" role="main">

						<?php while ( have_posts() ) : the_post(); ?>

							<?php get_template_part( 'content', 'single' ); ?>

							<?php
							// If comments are open or we have at least one comment, load up the comment template
							if ( comments_open() || get_comments_number() ) :
								comments_template();
							endif;
							?>

						<?php endwhile; // end of the loop. ?>

					</main>
					<!-- #main -->
				</div>
				<!-- #primary -->

				<?php quest_try_sidebar( $view, 'right' ); ?>

			</div>
			<!-- .row -->
		</div>
		<!-- .container -->
	</div>
	<!-- .quest-row -->
</div><!-- #content -->

<?php get_footer(); ?>

Zadziała, lecz konsekwencją będzie to, że ta modyfikacja zniknie w przypadku aktualizacji motywu. Więc albo będziesz musiał za każdym razem ją wprowadzać, albo przestać aktualizować motyw. Oba rozwiązania są kiepskie, a do rozwiązania tego problemu powstało coś takiego jak motyw potomny o którym wspomniałem w pierwszym moim poście.

Fizyda, a gdybym wprowadził te zmiany za pomocą wtyczki, która nadpisuje motyw nawet po aktualizacji? :slight_smile:
Tylko pytanie jak ułożyć ten kod, żeby zaimplementowało na końcu single.php?

Nie wiem jak działa taka wtyczka, ale na 100% niepotrzebnie obciąża ona stronę w porównaniu do zrobienia tego przez motyw potomny.

Co do samej edycji single.php to interesuje cię ten fragment:

<?php while ( have_posts() ) : the_post(); ?>

	<?php get_template_part( 'content', 'single' ); ?>

	<?php // pierwsze miejsce ?>

	<?php
	// If comments are open or we have at least one comment, load up the comment template
	if ( comments_open() || get_comments_number() ) :
		comments_template();
	endif;
	?>

	<?php // drugie miejsce ?>

<?php endwhile; // end of the loop. ?>

Jak wstawisz kod w pierwsze miejsce to będzie on pod treścią posta, ale przed sekcją z komentarzami. W drugie miejsce będzie on pod sekcją z komentarzami.

1 polubienie

Fizyda z tym motywem potomnym to mam zrobić coś takiego jak ten koleś radzi na filmiku: https://www.youtube.com/watch?v=Z7vFmj6G4xY ?

Tak, ale to zależnie od motywu może być tylko połowa rzeczy do zrobienia. Możliwe, że trzeba będzie jeszcze dodać ładowanie styli css motywu bazowego.

No i linijka z importem w pliku css może nie być konieczna - zależnie od motywu bazowego.

Zaraz stworzę ten motyw potomny :smiley:

/*
 * Theme Name: motyw-potomny-quest
 * Description: Motyw potomny QUEST
 * Author: Tomasz
 * Template: quest
*/

@import url('..quest/style.css'):  

Dostrzegasz jakieś błędy?

edit. wyświetla mi się motyw potomny na WP - jednak jak biorę podgląd to wyświetla rozwaloną stronę, tak jakby css nie pobierało. :frowning:

Nie
@import url('..quest/style.css'):
tylko
@import url('../quest/style.css'):

Tak jak pisałem może być potrzeba załadowania styli, wszystko zależy od motywu bazowego. Niestety nie ma jednej recepty na tworzenie motywu potomnego, lecz co najmniej 3/4.

2 polubienia

Fizyda - przecież jest w kodzie ładowanie styli?
Czy się mylę?

@import url('../quest/style.css'):

Teoretycznie tak, ale po pierwsze to nie jest najlepszy sposób na ładowanie styli (wydajność w ich ładowania przeglądarce gorsza). Kolejna sprawa jest taka, że plik style.css jest obowiązkowy do utworzenia (zarejestrowania) motywu, ale niekoniecznie w nim muszą być umieszczone style motywu, a nawet jeśli są to nie muszą znajdować się w nim wszystkie potrzebne style.

Zobacz co znajduje się w pliku style.css motywu bazowego, oraz jakie jeszcze style ten motyw ma i ładuje.

1 polubienie

hmm, może póki ogarnę z tym motywem potomnym to podpowiesz jak prze wtyczkę “Custom CSS & JS” wrzucić ten newsletter pomiędzy wpisem, a systemem komentarzy? :slight_smile:

Mam do wyboru 2 opcje na wstawienie newslettera: JS i HTML. Mam już wygenerowane kody. Muszę jedynie to jakoś wrzucić w kod, żeby czytało.

PS> Fizyda - ten kod html jest cholernie długi. Można zrobić tak, żeby w kodzie wstawić np. tylko link i z tego linku zasysało? To jest ten link: https://landing.mailerlite.com/webforms/landing/x7q8p9

Po nazwie wtyczki raczej wnioskuję, że się tego nie da zrobić. Myślałem, że mówisz o jakiejś wtyczce umożliwiającej nadpisywanie szablonów motywu.
Owszem możesz to dodać przy pomocy JS, ale to jeszcze trudniejsze w wykonaniu będzie niż motyw potomny.

Wpisałem w edytorze. :smiley: Jak będzie aktualizacja motywu to ręcznie zmienię. :smiley: Jest to zawsze jakieś rozwiązanie na czas, aż uda mi się stworzyć motyw potomny (działający). :smiley: