WordPress: Добавяне на връзки за предишен/следващ пост

Преди седмица или две Дончо ми се оплака от един недостатък на WordPress темата, която ползвам за блога – в режим “четене на един постинг” нямаше бутони за предишен и следващ постинг и така човек, който не е чел от известно време, трябва или постоянно да щрака напред-назад или ръчно да сменя номера на постинга в мястото за адреса така че да чете тема по тема… Реших да уважа така докладвания feature request и си седнах на четирибуквието да ровя PHP код и да видя дали ще мога да се справя сам. Както може да се види, този feature вече присъства в настоящия блог. Ето какво точно трябваше да направя:

  • Досега съм видял два главни начина за четене на един пост – или в различно изглеждаща страница (без страничните полета с връзки – както тук) или в страница, изглеждаща по същия начин като главната, но съдържаща само един постинг, а не последните 10, да речем – така е тук.
  • При първия начин обикновено съществува отделен .php файл, който съдържа код за показването на различно изглеждащата страница…
  • Втория начин приложих тук:
    • Ако ползвате тема, различна от тази по подразбиране, тя обикновено съдържа файла index.php в папката wp-content/themes/< име_на_темата>. Трябва или да редактирате файла от папката на сървъра ви (поне cPanel дава възможност за това) или да редактирате файла локално и после да го хвърлите на сървъра.
    • В началото на файла (промененият код е в курсив):


      <title >
      <?php bloginfo('name'); ?>

      <?php if ( is_single() ) { ?>
      »Blog Archive
      <?php } ?>

      <?php wp_title(); ?>

    • В частта от файла, където се показва съдържанието:


      <div id="main">
      <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

      <?php if ( is_single() ) { ?>
      <div id="h2">
      <div id="prev_post">
      <?php previous_post('« %','','yes') ?>
      </div>
      <div id="next_post">
      <?php next_post('% »','','yes') ?>
      </div>
      <br />
      </div>
      &
      #60;br />
      <?php } ?>

      <?php the_date('','<h2>','</h2>'); ?>

    • prev_post и next_post дефинирах в style.css като:


      #next_post { float: right; }
      #prev_post { float: left; }

Това беше всичко май. Ако имате въпроси, питайте. Не че съм много голям спец по PHP програмиране, но обикновено като направя нещо придобивам поне някаква представа за принципите му на работа.

Leave a Reply

Your email address will not be published. Required fields are marked *