single-product.php не открывается

Я создал набор страниц. На первой странице product.php показаны все пользовательские категории (название и изображение). Если пользователь нажимает на нее, он переходит на страницу таксономии-продукт_категории, где отображаются продукты определенной категории. Теперь я хочу, чтобы если пользователь нажимал на продукт, он переходил на страницу single-product.php.

код здесь

<?php
get_header();
$slug = get_queried_object()->slug; // get clicked category slug
$name = get_queried_object()->name; // get clicked category name
$tax_post_args = array(
    'post_type' => 'products', // your post type
    'posts_per_page' => 999,
    'orderby' => 'id',
    'order' => 'ASC',
    'tax_query' => array(
        array(
            'taxonomy' => 'product_categories', // your taxonomy
            'field' => 'slug',
            'terms' => $slug
        )
    )
);
?>
<div id="main-wrap">
    <div class="container">
        <?php
        $counter = 1;
        $tax_post_qry = new WP_Query($tax_post_args);
        if ($tax_post_qry->have_posts()) {
            while ($tax_post_qry->have_posts()) {
                $tax_post_qry->the_post();
                $the_url = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), $type);
                //var_dump($the_url);


                if ($counter % 4 == 0) {
                    echo '<div class="row product-gallery">';
                }
                ?>
                <div class="col-sm-3">
                    <div class="product-warp">
                        <div class="product">
                            <a href="#"><img src="<?php echo $the_url[0] ?>" title="" alt=""></a>
                        </div>
                        <div class="product-name">
                            <h5>
                                <a href="">
                                    <?php echo get_the_title();
                                    ; ?>
                                </a>
                            </h5>
                        </div>
                    </div>
                </div>
                <?php
                if ($counter % 4 == 0) {
                    echo '</div>';
                }
                ?>

                <?php
            }
        }
        ?>
    </div>
</div>
<?php get_footer(); ?>

это место, где пользователь щелкает, затем он должен перейти к single-product.php

<a href="#"><img src="<?php echo $the_url[0] ?>" title="" 

Кто-нибудь, направьте меня шаг за шагом, пожалуйста


person Waqas_aamer    schedule 22.03.2016    source источник
comment
Вы используете какой-то конкретный магазин или? Woocommerce, jigoshop...?   -  person dingo_d    schedule 22.03.2016
comment
нет. я не использую эти   -  person Waqas_aamer    schedule 22.03.2016
comment
Если product является CPT, то просто вызов get_permalink() должен указывать на single-product.php.   -  person dingo_d    schedule 22.03.2016
comment
показывает пустую страницу   -  person Waqas_aamer    schedule 22.03.2016
comment
попробуйте добавить href=‹?php the_permalink() ?› также измените постоянную ссылку из меню настроек и попробуйте   -  person vrajesh    schedule 22.03.2016
comment
Ты создал single-product.php страницу с вещами на ней? Попробуйте сбросить постоянные ссылки (сбросить их).   -  person dingo_d    schedule 22.03.2016
comment
да я создал это   -  person Waqas_aamer    schedule 22.03.2016
comment
и у меня есть данные... он получает файл single.php, а не single-product.php   -  person Waqas_aamer    schedule 22.03.2016


Ответы (2)


Если ваш post_type => products то имя вашего файла должно быть таким single-products.php

Прочтите эту статью.

И в целях предосторожности (если страница еще не открыта, значит выдает ошибку 404) перейдите по ссылке

  1. Панель администратора
  2. настройки
  3. постоянные ссылки

Сначала сохраните постоянные ссылки как обычные и обновите домашнюю страницу сайта.

Затем сохраните постоянные ссылки как post_name и снова обновите домашнюю страницу.

Надеюсь, что это поможет вам.

person deemi-D-nadeem    schedule 22.03.2016

Пожалуйста, попробуй

'post_type' => 'products'

Тип вашего поста — «продукты». А правила wordpress — «single-{post_type}.php». Вы делаете «single-products.php» и удаляете «single-product.php»

https://codex.wordpress.org/Post_Type_Templates

person bhavesh vala    schedule 22.03.2016
comment
Да, это работает. но в single-products.php он показывает заголовок, а не содержимое страницы. - person Waqas_aamer; 22.03.2016
comment
вы используете get_the_content(); - person bhavesh vala; 22.03.2016
comment
Вы используете echo get_the_content(); или the_content(); - person bhavesh vala; 22.03.2016