2012-09-25 3 views
1

나는 이것을 여러 포럼에 올렸지 만 지금까지 행운은 없습니다. (여기에 게시해도 괜찮습니까?) ... 나는 몇 주 동안 노력해 왔습니다. .. 성공하지 못했습니다.PHP 마법사가 필요합니다. 다시 정렬/게시물 정렬

게시물의 열 (제목/엄지 손가락)을 반환하는 블로그 (최고 평점 및 최다 조회)에 두 페이지가 있지만이 열의 맨 위에 나는이 게시물을 주/월/모든 시간. (튜토리얼을 따랐으므로 같은 것을 유지하고 싶었으므로 나중에 날짜 등에서 정렬 옵션을 변경합니다).

다음 코드는 페이지를 새로 고치고 example.com/top-rated/?o=title-asc와 같은 새 URL을로드하는 것을 의미합니다. 하지만 지금까지 인기있는 게시물과 옵션이있는 드롭 다운 메뉴가 표시됩니다. 아무 것도 클릭하지 않으면 실제로 나타납니다.

친구 도메인에 내 사이트를 피기 백으로 남겼습니다. 누군가가 내 생각을 알려 주시면 ... 감사하겠습니다. 사전 사람 : 여기

에서

덕분에 내 코드입니다 : 당신이 다음하고있는 튜토리얼이 게시물의 순서를 변경하려면 select 드롭 다운을 사용하는 경우

<?php 
/* 
* Template Name: Top Rated 
*/ 
get_header(); ?> 

<?php 
if(isset($_GET['o']) && $_GET['o'] != '') 
      { 
       $order = $_GET['o']; 
       switch($order) 
       { 
       case 'date-asc': $orderby = 'order=ASC'; 
          $msg = 'Date Ascending'; 
           break; 

       case 'date-desc': $orderby = 'order=DESC'; 
          $msg = 'Date Descending(default)'; 
           break; 

       case 'date-mod': $orderby = 'orderby=modified'; 
           $msg = 'Date Modified'; 
           break; 

       case 'title-asc': $orderby = 'orderby=title&order=ASC'; 
           $msg = 'Title A-Z'; 
           break; 

       case 'title-desc': $orderby = 'orderby=title&order=DESC'; 
           $msg = 'Title Z-A'; 
           break; 

       case 'comment': $orderby = 'orderby=comment_count'; 
           $msg = 'Comment Count'; 
           break; 
       } 
      } 
      else 
      { 
       $orderby = 'order=DESC'; 
       $msg = 'Date Descending (default)'; 
      } 
?> 
<div id="content"> 
    <div id="sorter-container"> 
     <script type="text/javascript"> 
       var orderby = jQuery('#order-by'); 
       var str; 
       orderby.change(function(){ 
        str = jQuery(this).val(); 
        window.location.href = "<?php echo home_url(); ?>/top-rated/?o="+str; 
       }); 
      </script> 
<h2 id="sort-heading">Posts ordered by:<?php echo $msg; ?></h2> 
     <select id="order-by"> 
      <option value="date-desc" <?php echo (!isset($order) || $order == '' || $order == 'date-desc')? 'selected="selected"':''; ?>>Date Desc. (default)</option> 
      <option value="date-asc" <?php echo ($order == 'date-asc')? 'selected="selected"':''; ?>>Date Asc</option> 
      <option value="date-mod" <?php echo ($order == 'date-mod')? 'selected="selected"':''; ?>>Date Modified</option> 
      <option value="title-desc" <?php echo ($order == 'title-desc')? 'selected="selected"':''; ?>>Title Desc.</option> 
      <option value="title-asc" <?php echo ($order == 'title-asc')? 'selected="selected"':''; ?>>Title Asc.</option> 
      <option value="comment" <?php echo ($order == 'comment')? 'selected="selected"':''; ?>>Comments Count</option> 
     </select> 
    </div> 
<?php query_posts('meta_key=votes_count&orderby=meta_value_num&order=DESC&posts_per_page=10'); ?> 
    <?php if (have_posts()){ ?> 
    <?php while (have_posts()) : the_post() ?> 
    <div <?php echo post_class(); ?>> 
     <h3> <a href="<?php the_permalink(); ?>"class="img_hover_trans"><?php the_post_thumbnail('featured-small'); ?></a> 
     <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> | <small><?php the_time('F jS, Y'); ?></small></h3> 
     <?php the_excerpt('Read more...'); ?> 
    </div> 
    <?php endwhile; ?> 
<?php } ?> 
</div> 
<?php 
get_sidebar(); 
get_footer(); 
+0

질문을 짧고 정확하게 만들 수 있습니까 ?? 고마워요 – Baba

+0

그 바바에 대해 유감스럽게 여기 조금 더 명확해질 것입니다. 위의 코드를 사용하여 내 게시물을 정렬하는 드롭 다운 메뉴를 만듭니다. 이것은 window.location.href = "/top-rated /? o ="+ str; "URL을 고치면됩니다. Im (JQ, 코드 누락 등)이 잘못되어 있는지 잘 모르겠다. 내 문제에 대해 intrest를 가져 주셔서 감사합니다. –

답변

0

나는 틀린 장소 (미안, 이것에 관해서 새로운 Im)에서 약간의 코드를 가지고 있었다. .. 케말이 시도 할 약간의 코드를 게시하고 난 후에 그것을 마침내 발견했다. 도움/지원해 주셔서 감사 드리며, 새로운 작업 코드로 OP를 업데이트하고, 프로젝트에 복사하여 붙여 넣기하면 작동합니다. 그렇다면이 부분에주의를 기울이십시오 window.location.href = "<?php echo home_url(); ?>/top-rated/?o="+str; 귀하의 페이지 - 슬러그와 최상품을 대체하십시오. 누구든지 주/월/시간 단위로 정렬하는 방법을 알아 내면 여기에 게시하십시오 (도움이 됨)

+0

질문을 업데이트 할 필요없이이 대답을 수락 된 것으로 표시하십시오. 그것은 당신 자신의 질문에 대답하는 것이 완벽합니다. –

+0

아, 좋아, 케말까지 머리를 주셔서 감사합니다, 나는 시도했으나 어떤 이유로해서 couldnt했다. 다시 확인하면 내일 내 대답을 받아 들일 수 있다고 말했습니다. –

1

, 그것은 또한 당신에게 제공해야 드롭 다운에서 선택한 옵션의 변경을 처리하는 코드를 코드화합니다. 여하튼 드롭 다운이 변경되면 트리거되는 이벤트 핸들러가 드롭 다운에 연결되기를 원할 것입니다. 당신이 jQuery를 1.6.2 것 때문에,이 충분합니다 :

$('#order-by').bind('change', function(){ 
    window.location.href = 'http://beetniksound.com/feedme/top-rated/?o=' + $(this).val(); 
}); 

참고 : 당신은 아마 자바 스크립트에 하드 코드 된 해당 URL을 싶지 않을 것이다. 나는 Wordpress에 대해 모른다. 그러나 현재 페이지 (이 경우는 http://beetniksound.com/feedme/top-rated/)의 url을 반환하는 함수가 있다면, 이것을 사용하고 싶을 것이다.

+0

안녕하세요, Kemal 님, 우선, 귀하의 의견을 남길 시간을내어 주셔서 감사합니다. 이 튜토리얼에서는 다른 코드를 언급하지 않았다. (여기를 보시려면 http://blog.rutwick.com/use-jquery-to-reorder-your-wp-posts-on-the-fly). 귀하의 코드에 대해서, 나는 틀린 일을해야 할 것입니다 :'