Почему я не могу просто изменить a href на жестко заданную URL-ссылку?

#php #wordpress #woocommerce

#php #wordpress #woocommerce

Вопрос:

Я хочу страницу http://zanifesto.com/product/boise-infographic / вернитесь к http://zanifesto.com/gallery , а не на страницу категории инфографики по ссылке «Назад к» вверху.

Когда я заменяю .home_url и т.д. И т.п., Которые вы видите ниже, на URL галереи, упомянутый выше, он выдает ошибку.

Я пытаюсь понять, почему php-код не действует так, как будто я заменяю один URL на другой.

 <div class="product_navigation desktops">

            <?php
                $term_list = '';
                $j=0;
                foreach ($terms as $term) {
                    if($term->parent==0){
                        $j  ;
                        if( $j <= 1 ){
                            $term_list .= '<a href="'.home_url() . '/' . $category_slug . '/'. $term->slug . '">' . $term->name . '</a>';
                        }
                    }
                }
                if(strlen($term_list) > 0){ echo '<div class="nav-back">amp;lsaquo;amp;nbsp;amp;nbsp;amp;nbsp;'. __('Back to ', 'theretailer').$term_list.'</div>'; };
            ?>

            <?php if (function_exists('be_previous_post_link')) { ?>
            <div class="nav-next-single"><?php be_next_post_link( '%link', '', true,'', 'product_cat' ); ?></div>
            <div class="nav-previous-single"><?php be_previous_post_link( '%link', '', true,'', 'product_cat' ); ?></div>
            <div class="nav-prev-next-txt"><?php _e('Prev / Next', 'theretailer'); ?></div>
            <?php } ?>
            <div class="clr"></div>
        </div>

        <?php } ?>
  

Ответ №1:

этот взлом кода может сделать то, что вы хотите…

 <?php
    $term_list = '';
    $j=0;
    foreach ($terms as $term) {
        if($term->parent==0){
            $j  ;
            if( $j <= 1 ){
                $url=home_url() . '/' . $category_slug . '/'. $term->slug;
                if($url=='http://zanifesto.com/product-category/infographics'){
                    $url='http://zanifesto.com/gallery';
                }
                $term_list .= '<a href="'. $url . '">' . $term->name . '</a>';
            }
        }
    }
    if(strlen($term_list) > 0){ echo '<div class="nav-back">amp;lsaquo;amp;nbsp;amp;nbsp;amp;nbsp;'. __('Back to ', 'theretailer').$term_list.'</div>'; };
?>
  

Комментарии:

1. Итак, если я правильно понимаю, там написано if ‘home_url() . ‘/’ . $category_slug . ‘/’. $term-> slug;’ имеет значение равно zanifesto.com/product-category/infographics , тогда он должен использовать URL галереи?

2. Могу ли я аналогичным образом жестко запрограммировать название термина? Я попытался добавить if($term->name=='Infographics'){$term->name='Gallery'; , но ему это не понравилось.

3. если вы установите $ term-> name=’Gallery’, только текст ссылки изменится на gallery, вам нужно установить URL в атрибуте href тега привязки на » zanifesto.com/gallery «, здесь я добавил переменную $url в строку, которая формирует ссылку