1

私はこれをさまざまなフォーラムに投稿しましたが、これまでのところ運がありません(ここにも投稿しても大丈夫ですか?)...私は数週間試みてきました...成功しませんでした。

私のブログには2つのページ(最高の評価と最も閲覧された)があり、投稿の列(タイトル/親指付き)を返しますが、これらの列の上部で、これらの投稿を週/月/すべての時間に「フィルタリング」したいと思います。(チュートリアルに従ったので、同じままにしておきたかったので、後で並べ替えオプションを日付などから変更します)。

次のコードは、ページを更新して、example.com / top-rated /?o=title-ascのような新しいURLをロードすることを意味します。しかし、これまでのところ、人気のある投稿とオプション付きのドロップダウンメニューが表示されています...クリックしても実際には何も起こりません。

私は友達のドメインに自分のサイトを便乗させました。誰かが見てもらえたら、あなたの考えを教えてください...それはありがたいです。

よろしくお願いします:)

これが私のコードです:

<?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();
4

2 に答える 2

1

フォローしているチュートリアルでselectドロップダウンを使用して投稿の順序を変更する場合は、ドロップダウンから選択したオプションの変更を処理するコードも提供する必要があります。いずれにせよ、ドロップダウンが変更されたときにトリガーされるイベントハンドラーをドロップダウンにアタッチする必要があります。jQuery 1.6.2なので、これで十分です。

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

注: JavascriptでそのURLをハードコーディングすることはおそらく望ましくありません。Wordpressについてはわかりませんが、現在のページのURL(この場合はhttp://beetniksound.com/feedme/top-rated/)を返す関数がある場合は、それを使用することをお勧めします。 。

于 2012-09-25T15:36:51.570 に答える
0

間違った場所にコードがあったことが判明しました(申し訳ありませんが、これは初めてです)...ケマルが試してみるコードを投稿した後、ついにそれを見つけました。ヘルプ/サポートに感謝します。OPを新しい動作コードで更新します。プロジェクトにコピーして貼り付けることで動作するはずです。もしそうなら、この部分に細心の注意を払って、window.location.href = "<?php echo home_url(); ?>/top-rated/?o="+str;トップレートをあなたのページスラッグに置き換えてください。誰かが週/月/すべての時間でソートする方法を理解している場合は、ここに投稿してください(役立つので) `

于 2012-09-26T11:19:54.597 に答える