• Здравствуйте. Есть проблема на сайте http://rusvacant.ru при нажатии на «Следующая страница» выводит что «Страница, вакансия или статья, возможно, была перемещена или удалена» хотя это не все вакансии а последние, другие можно увидеть через разделы меню справа. Что и где нужно изменить скажите пожалуйста!?

Просмотр 15 ответов — с 1 по 15 (всего 34)
  • попробуйте отключить все плагины и проверить еще раз. если после этого пагинация заработает, то дело в каком-то плагине. я слышал, что всякие сео-плагины частенько ломают навигацию по страницам.

    По всей видимости вакансии выводятся дополнительным циклом, не изменяя главный цикл, а в главном цикле всего одна страница, поэтому при переходе на следующую получаете 404. Не глядя на код сложно сказать, но мне кажется, что где-то там в шаблоне главной страницы есть вызов функции query_posts?

    Если нет, то возможно что-то с рерайтами.. В общем нужно смотреть код страницы, запостите его на какой-нибудь pastebin и дайте ссылку.

    я не большой знаток WP. какие вам файлы конкретно нужно увидеть?

    Охх.. Ну если вы не сами создавали этот сайт то вам будет сложнее. В таком случае советую то же, что и посоветовал @shin, смените тему на стандартную, деактивируйте все плагины.

    я сам создавал на базе готовой темы, начальные знания сайтостроения мне известны. В тему внесено несколько изменений, куча настроек, сбрасывать все это я не хочу. А что разве нельзя посмотрев несколько файлов найти сбой!?

    Еще такой вариант может мне назвать эту проблемную страницу допустим «последние 10 вакансий» чтобы пользователь не тыкал «следующая страница» просто убрать ее с главной страницы (чтобы не отображалась!) но как и где это сделать я не знаю. Может подскажите пожалуйста!?

    Можно конечно, только это может затянуться, если не знать где искать 🙂 у вас всегда была недоступна вторая страница или вы что-то поменяли или дописали и она перестала работать? Копаться нужно в том шаблоне, который выводит этот список. Какой именно шаблон за это отвечает глядя на сайт я не могу сказать, т.к. реализовать подобное можно разными (правильными и не правильными) способами. На ум приходит:

    * Через событие pre_get_posts в файле functions.php
    * Через шаблон страницы (они могут называться произвольно)
    * Через archives.php, index.php, page.php, single.php
    * Через кастомные типы, archive-{cpt}.php

    В общем успехов в поисках =)

    покажите для начала содержимое index.php

    Если не удасться решит, напишите мне на почту kovshenin@gmail.com доступ к админке и доступ к FTP, если время будет — гляну.

    а еще можно резко сузить круг поиска с помощью функции

    function get_filename() {
        $array = debug_backtrace();
        $file = basename( $array[0]['file'] );
        echo '<!-- ' . $file . ' -->' . "\n";
    }

    если добавить ее в functions.php и вызвать в начале и конце каждого файла шаблона,
    <?php get_filename(); ?>
    то в нужных местах на странице появятся закомментированные имена шаблона. после этого сразу будет понятно, какой именно шаблон выводит эти записи.

    и вызвать в начале и конце каждого файла шаблона,

    Что-то многовато телодвижений. имхо 😉
    Можно поступить проще:

    function wikicms_show_template() {
        global $template;
        print_r($template);
    }
    add_action('wp_head', 'wikicms_show_template');

    wikicms в какие файлы нужно установить то что вы сказали? в functions.php в начало и конец файла?

    @wikicms ведь разные же функции совершенно. ту, что дал я покажет в коде название шаблона в том месте, где он подключается. грубо говоря, если в index.php будет вызываться loop.php, ваша функция этого не отобразит.

    но телодвижений немало, согласен. хотя это можно автоматизировать)

    содержимое index.php

    <?php
    // Empty search fixes
    if (isset($_GET[‘resume_search’]) && $_GET[‘resume_search’]) :
    if (isset($_GET[‘s’]) && isset($_GET[‘location’]) && !empty($_GET[‘location’])) : get_template_part(‘search-resume’); exit; endif;
    wp_safe_redirect(get_post_type_archive_link(‘resume’));
    exit;
    endif;
    if (isset($_GET[‘s’]) && isset($_GET[‘location’]) && !empty($_GET[‘location’])) : get_template_part(‘search’); exit; endif;
    ?>
    <?php get_header(‘search’); ?>
    <?php do_action(‘jobs_will_display’); ?>
    <?php
    global $featured_job_cat_id;
    if ( get_query_var(‘paged’) )
    $paged = get_query_var(‘paged’);
    elseif ( get_query_var(‘page’) )
    $paged = get_query_var(‘page’);
    else
    $paged = 1;
    // include the featured jobs
    if (is_front_page() && $paged==1 && $featured_job_cat_id) get_template_part(‘includes/featured-jobs’);
    ?>
    <?php if (get_option(‘jr_indeed_front_page’)==’yes’ && $paged==1) { ?>
    <div class=»async_indeed_results»><div class=»indeed-placeholder»></div><p><?php _e(‘Fetching Sponsored Job Listings’,’appthemes’); ?></p></div>
    <?php } ?>
    <div class=»section»>
    <h2 class=»pagetitle»>
    <small class=»rss»>«><img src=»<?php bloginfo(‘template_url’); ?>/images/feed.png» title=»<?php _e(‘Latest Jobs RSS Feed’,’appthemes’); ?>» alt=»<?php _e(‘Latest Jobs RSS Feed’,’appthemes’); ?>» /></small>
    <?php _e(‘Latest Jobs’,’appthemes’); ?> <?php if ($paged>1) { ?>(page <?php echo $paged; ?>)<?php } ?>
    <?php if (isset($_GET[‘action’]) && $_GET[‘action’] == ‘Filter’) { ?>
    <small> — «><?php _e(‘Remove Filters’,’appthemes’); ?></small>
    <?php } ?>
    </h2>
    <?php
    $args = jr_filter_form();
    query_posts($args);
    // call the main loop-job.php file
    get_template_part( ‘loop’, ‘job’ );
    ?>
    <?php jr_paging(); ?>
    <?php wp_reset_query(); ?>
    <div class=»clear»></div>
    </div><!— end section —>
    <?php do_action(‘after_front_page_jobs’); ?>
    <div class=»clear»></div>
    </div><!— end main content —>
    <?php if (get_option(‘jr_show_sidebar’)!==’no’) get_sidebar(); ?>
    <?php get_footer(); ?>

    Что-то вы слишком сильно заморочились с дебагами и $template… @nix03, выложите всю тему в виде .zip архива куда-нибудь 🙂

Просмотр 15 ответов — с 1 по 15 (всего 34)
  • Тема «Нужен совет специалиста по WP» закрыта для новых ответов.