2015-05-12 4 views
1

Был помещен в проект, чтобы исправить ссылки на архив на сайте WordPress. Это чужой код и довольно грязный.WordPress Archive Ссылки не работают

Задача: Архивированный виджет отображается в боковой панели, но сами ссылки не работают. Нажатие ссылки (например, www.site.com/2015/03/) не сортирует сообщения, загружает страницы, а только с самыми последними сообщениями (хотя изменения URL-адреса).

Мои попытки:

  1. удален файл .htaccess
  2. Сохраненные Permalinks снова в настройках
  3. отключил все плагины
  4. заменены все основные файлы WP
  5. измененные темы - ПРИМЕЧАНИЕ : Работает с TwentyFifteen Theme

Основываясь на том, что я пробовал, единственное, что работало, это изменение тем. Однако это не вариант. Что я могу сделать, чтобы помочь просеять код, есть ли советы по устранению неполадок?

Спасибо за помощь!

Редакции Нет страницы архива.php. Существует специальная страница blog.php, вот цикл, который он использует.

<?php 
       $temp = $wp_query; $wp_query= null; 
    $wp_query = new WP_Query(); $wp_query->query('cat=' . get_cat_ID("Blog") . '&showposts=5' . '&paged='.$paged); 
    while ($wp_query->have_posts()) : $wp_query->the_post(); 
        ?> 
        <div id="post-<?php echo get_the_ID(); ?>" <?php echo post_class(); ?>> 
         <div class="eachPost"> 
           <div class="postTitle"><a href="<?php the_permalink(); ?>" title="Title"><?php the_title(); ?></a></div> 
          <div class="postMeta"> 
           by <?php the_author(); ?> on <?php the_time('F jS, Y'); ?> 
          </div> 
          <div class="entry"> 
          <?php 
global $more; // Declare global $more (before the loop). 
$more = 0;  // Set (inside the loop) to display content above the more tag. 
the_content('Read the rest of this entry &#10142;'); 
?> 


          </div><!-- entry --> 
         </div><!-- eachPost --> 
         <div class="postMetaComments"> 
          <div class="postComments"> 
           <?php comments_popup_link('No Comments ', '1 Comment ', '% Comments '); ?> 
          </div> 
          <div class="clear-both"></div> 
         </div> <!-- postMetaComments --> 
        </div><!-- /#post-<?php echo get_the_ID(); ?> --> 
    <?php endwhile; ?> 
+0

Проверьте свой индекс index.php или archive.php вашей (если он существует), чтобы проверить, жестко запрошен запрос. Не так много, что можно сказать, не видя никакого кода. – Kaloyan

+0

Благодаря @Kaloyan, архив включается через виджет боковой панели. Вот как они выводят сообщения, это то, что вы имели в виду, проверяя, был ли запрос жестко запрограммирован? – user1888521

ответ

1

В первую очередь можно решить следующие проблемы. Вы упомянули, что файл archive.php отсутствует. Если файл date.php также отсутствует, скопируйте код, вставленный в ваш вопрос в новый файл, в папку темы, называемую date.php. Замените все в первых <? Php? > тег с этим:

while (have_posts()) : the_post(); 

Из комментариев в ваш вопрос, я полагаю, вы знаете, чтобы включить фрагменты до и после цикла снова также. Например.

get_header(); 

// Loop goes here 

get_footer(); 

У меня когда-то был установлен плагин для SEO и проверен «отключить архивы на основе даты». Я сомневаюсь, что это будет проблемой в вашем сценарии, так как изменение темы TwentyFifteen исправляет проблему.

+0

Спасибо! Это фиксированные вещи. Я в основном сделал дубликат моей страницы блога, обменялся на вашем первом шаге, и все выглядит хорошо. – user1888521

Смежные вопросы