KATEGORIA:

04 – Własny motyw WordPress

własny motyw wordpress

WSTĘP

Zostało jeszcze 5 plików i szablon będzie gotowy. W tym artykule zajmiemy się plikami single.php i comments.php.

SINGLE.PHP

Teraz zajmiemy się plikiem single.php, który odpowiada za wyświetlanie jednego artykułu (po kliknięciu na link ‚Czytaj więcej’ na liście artykułów na stronie głównej, albo w archiwum).

Schemat tej strony jest podobny do strony głównej a części składowe jak headerfooter czy sidebarmamy już przygotowane.

SCHEMAT PLIKU SINGLE.PHP

Pętla jest bardzo podobna do tej, której użyliśmy w pliku index.php. Wyświetlamy cały wpis więc nie używamythe_excerpt a the_content.

<?php get_header(); ?>

<section class="content">
<?php if (have_posts()) : ?>
	<?php while (have_posts()) : the_post(); ?>
	<article> 
		<div class="info">
			<span><?php the_category(); ?></span>
			<span><?php the_author(); ?></span>|<span><?php the_time('d-m-Y'); ?></span>
		</div>
		<h2> <?php the_title(); ?> </h2>
		<p> <?php the_content(); ?> </p>
		<?php comments_template(); ?>
		<?php comment_form(); ?>
	</article>
<?php endwhile; ?>

<div> 
	<div class="nav"> 
		<div class="next">
			<?php previous_posts_link('« Nowsze') ?>
		</div>
		<div class="prev">
			<?php next_posts_link('Starsze »') ?>
		</div>
	</div>
</div>

<?php else : ?>

	<h2> Nic nie znaleziono </h2>

<?php endif; ?>
	

</section>
<?php get_sidebar(); ?>
		
		<?php get_footer(); ?

Zaraz po the_content pojawiły się jeszcze dwie linie odpowiedzialne za komentarze. Pierwsza pobiera szablon wyświetlania komentarzy, kolejna pobiera formularz do wpisywania komentarza. Skąd je pobiera? Formularz jest w WordPressie już przygotowany więc wyświetli się już po wpisaniu tej funkcji. Natomiast szablon musimy stworzyć sami.

<?php comments_template(); ?>
<?php comment_form(); ?>

COMMENTS.PHP

Czas na komentarze do wpisu! Na początku w pliku comments.php dodajemy kod, który zabezpiecza przed otwieraniem tego pliku w przeglądarce i przygotowuje nasz szablon do obsługi wpisów chronionych hasłem. Niżej instrukcja wyświetlania komentarzy wraz z omówieniem.

<?php if (!empty($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME']))

die ('Prosze nie otwierac tej strony bezposrednio. Dzieki!');

if ( post_password_required() ) { ?>

<p> Wpis chroniony haslem. Wpisz je, aby uzyskac dostep do komentarzy. </p>

<?php return;} ?>

//
	
<?php if (have_comments() ) : ?> // jesli sa komentarze do tego wpisu

<h3 id="comments">Komentarze do wpisu </h3> // to wyswietlamy tytul (wpisujemy co chcemy)
<ol class="commentlist">					// wyswietlamy tez liste tych komentarzy
	<?php wp_list_comments('callback=komentarze'); ?> // z zastrzezeniem, ze autor zdefiniowal ich wlasny wyglad w funkcji 'komentarze'
</ol>


<?php else : ?>	// jak nie ma komentarzy

<?php if ('open' == $post->comment_status) : ?>		// to albo nikt ich nie dodal
	<p> Brak komentarzy. Twoj moze byc pierwszy! </p>	// wiec piszemy, ze nie ma 
<?php else : ?>										// albo autor je zablokowal

<p> Komentarze sa wylaczone. </p>				// wiec informujemy tez o tym

<?php endif; ?>

<?php endif; ?>					// i kropka

Jeżeli chcemy zrobić paginację na stronie z komentarzami, możemy skorzystać z poniższej funkcji.

<?php paginate_comments_links(); ?>

Wyświetli ona linki do poszczególnych stron z komentarzami w postaci linków: 1, 2, 3, Następna strona…

WYGLĄD POJEDYNCZEGO KOMENTARZA

Aby określić jak ma wyglądać jeden komentarz, musimy wyjść z pliku comments.php i przejść do functions.php. Tutaj umieszczamy poniższy przykładowy kod.

function komentarze($comment, $args, $depth) {
$GLOBALS['comment'] = $comment; ?>

<li>
	<span class="author"><?php comment_author_link() ?></span>
	<div class="date"><span><?php comment_date('d-m-Y') ?></span> <span>- </span>
	<span><?php comment_time('G:i') ?></span> </div>
	<?php comment_text() ?>
	<?php edit_comment_link('Edytuj komentarz') ?>
// nie uzywamy tagu zamykajacego </li>

<?php if($args['max_depth']!=$depth) { ?>

<div class="reply">
	<?php comment_reply_link(array_merge($args, array('depth' => $depth, 'max_depth' => $args['max_depth']))) ?>

<?php } ?>
<?php } 

Jakich funkcji możemy użyć w tym miejscu? Poniżej lista z wyjaśnieniem.

<?php comment_author_link() ?> // wyswietla imie lub nick autora komentarza - jezeli podal adres swojej strony to to pole jest linkiem prowadzacym do tego miejsca
<?php comment_time() ?> // data dodania komentarza jak w nawiasie wpiszemy 'd-m-Y', lub godzine jak wpiszemy w nawiasie 'G:i'
<?php comments_text() ?> // tresc komentarza
<?php edit_comments_link('Edytuj komentarz'; ?> // link widoczny dla admina

PODSUMOWANIE

Komentarze są gotowe. Formularz dodaje się w tagu div id="respond" i nie wygląda zachęcająco, więc należy go solidnie ostyować, np. tak jak poniżej.

form

Najtrudniejsze i najważniejsze już za nami! Pozostały nam trzy pliki: archive.phppage.php i 404.php. Potem pozostanie już tylko dopieszczanie szczegółów. Podstawa szablonu będzie gotowa, a jest to punkt wyjścia do tworzenia fajnych stron w WordPressie.

Ostatni krok: 05 – Własny motyw WordPress

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *