2017-03-05 3 views
2

나는 Cars, Trucks, Buses와 같은 다른 WordPress 카테고리의 컨텐츠를 보여주는 탭 메뉴를 가지고있다. 페이지가 다시로드 될 때마다 무작위로 활성 탭을 선택합니다. 탭이있는 메뉴 내용의 맨 아래에는 해당 선택한 탭 메뉴의 전체 범주 목록에 연결되는 "자세히보기"단추가 있습니다. 문제는 페이지를로드하거나 새로 고침 할 때마다보기 단추가 더 이상 표시되지 않습니다. 활성 탭 메뉴의 카테고리 페이지에 대한 링크를 표시하지 마십시오. 그러나, 그렇게해서는 안되는 다른 탭 메뉴를 수동으로 클릭하면 링크가 표시됩니다. 아래의 탭 메뉴에 대한 코드를 참조하십시오. 탭이 메뉴의 내용 하단 jquery set href link on page load

<ul id="myTab" class="nav nav-tabs"> 
<?php 
$taxonomy = 'browse'; 
$queried_term = get_query_var($taxonomy); 
$terms = get_terms($taxonomy, 'slug='.$queried_term); 
$items = array("1","2","3"); 
$array_val = $items[array_rand($items)]; 
if ($terms) { 
    $j = 1; 
    foreach($terms as $term) { 
     $termname = $term->name; 
     $termslug = $term->slug; 
     if($j == $array_val){ 
?> 
<li data-id="<?php echo trim($termslug);?>" class="active"><a data-toggle="tab" data-target="#m-<?php echo trim(str_replace('/','',$termname));?>" aria-expanded="false"><?php echo trim($termname);?></a></li> 
<?php 
     } else { 
?> 
<li data-id="<?php echo trim($termslug);?>"><a data-toggle="tab" data-target="#m-<?php echo trim(str_replace('/','',$termname));?>" aria-expanded="false"><?php echo trim($termname);?></a></li> 
<?php 
     } 
     $j++; 
    } 
} 
?>     
</ul> 

이 아래에 대응하는 탭 선택 메뉴에 링크하는 "더보기"버튼을위한 코드;

<a href="" class="nymcls"> 
    <input type="submit" value="View More" class="btnclass"> 
</a> 

이것은 탭 메뉴를 클릭 할 때만 작동하는 것처럼 보이는 jquery 코드입니다. 페이지가로드 될 때마다 무작위로 선택된 탭 메뉴의 해당 링크를 지정해야합니다.

<script> 
$(document).ready(function() { 
    $("#myTab li").click(function() { 
     var templateDir = '<?php echo site_url(); ?>/';   
     var catname = $(this).data("id"); 
     var cat = "browse/" 
     $('a.nymcls').each(function() { 
      ($(this).attr('href', templateDir + cat + catname +'/?top_rate=yes')); 
     }); 
    }); 
}); 
</script> 

답변

0

페이지로드시에도 링크를 업데이트하는 함수를 호출해야합니다. 사용자가 한 번 클릭했을 때뿐만 아니라

function updateMoreLink(catname){ 
    var templateDir = '<?php echo site_url(); ?>/'; 

    var cat = "browse/" 

    $('a.nymcls').each(function() { 
     ($(this).attr('href', templateDir + cat + catname +'/?top_rate=yes')); 
    }); 
} 

$(document).ready(function(){ 

    $("#myTab li").click(function(){ 
     updateMoreLink($(this).data("id")); 
    }); 

    updateMoreLink($("#myTab li.active").data("id")); 

}); 
+0

나는 코드를 시도했지만 버튼의 URL에 정의되지 않은 것을 보여주는 점을 제외하면 링크가 표시됩니다. updateMoreLink()의 ​​이름을 바꾸거나 그대로 사용해야합니까? – zimylink

+0

내 대답이 업데이트되었습니다. 주석에서 언급했듯이 페이지의 첫 번째로드의 category_name을 알아야합니다. 위에 제공된 코드를 사용하면이 정보를 추출 할 수 없습니다. –

+0

지금까지 대단히 감사합니다. 하지만 어떻게 페이지의 첫 번째로드의 category_name을 결정할 수 있습니까? – zimylink