0

wp-naviプラグインは、グローバル読み取り構成(ページごとの投稿 "3")を使用するすべてのカテゴリでスムーズに機能しますが、ページごとに1つだけ表示する必要があるカテゴリがあり、この値をループの外で手動で設定します私のページリンクを破壊し、それはたくさんのページを生成し(私は2つの投稿しかないので2つではなく)そしてそれらは家に持ち帰ります(私はある種の404だと思います)、私は見つけることができる限り多くの解決策を試しましたstackoverflowとgoogleで、まだ運がないので、私は2週間wpを使用しているので、ここで本当に愚かなことをしているのかどうかわからないので、助けてください。

コードは次のとおりです。

<?php
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 

    //query 1 post
    query_posts("posts_per_page=1&paged=$paged");       
?>
<?php while(have_posts()) : the_post(); ?>
    <div class="entry"> 
        <div class="single_entry">
            <p>
                <?php the_content(); ?>
                <div class="clear"></div>
            </p>
            <?=get_social(); ?>
            <div class="clear"></div>
        </div>
    </div>
<?php endwhile; ?>
<?php if(function_exists('wp_pagenavi')) { ?>
    <div id="pagination">
        <?php wp_pagenavi(); ?> 
    </div>
<?php } ?>

よろしくお願いします=)。

編集: 何か面白いものを見つけました。設定する&paged=2と、実際には2ページ目が表示され、ページナビには「2/2ページ」と表示されますが、URLがこの「mysite.com/category/」のようになっている場合に限り、「 / page / 2 / "を最後まで実行すると、壊れたホームページにリダイレクトされます。したがって、pagenaviが機能していても、「/ page /#/」はもちろんそれを壊しているthe get_query_var('paged')get_query_var('page')、「/ page /」構造を使用していないため、デフォルトの「1」を返します。ページナビの各番号をクリックするときに?p =#を追加しますが、プラグインファイルでそれを行う方法がよくわからないので、今言っていることに基づいて、皆さんが私を助けてくれることを願っています。私はこれを醜い方法で修正する方法を見てみます。よろしくお願いします。

4

4 に答える 4

1

js / jqを使用してこの問題を修正しましたが、wpコーデックスを使用して修正を見つけたいと思いますが、試したものはすべて役に立たず、これらのパーマリンクが内部でどのように機能するかわからないことに加えて、これを解決するために必要です、プラグインの編集はちょっと悲惨でした。URLに「&p =2」を追加すると「/page/ 2」と同じダメージが発生したため、jqを使用してスクリプトを作成し、ページナビからリンクを削除してターゲットを取得しました。ページ、それぞれにonclickを追加し、ターゲットページ番号を引数として渡して、後でフォームの非表示の値を置き換えてフォームを送信し、ページ番号を取得してquery_postsに追加すると、魅力のように機能します。しかし、wpで適切な修正を行う方法を知っていればいいのですが、バグの場合はチケットを提出する必要があると思います。あなたの助けに感謝します、誰かがもっとアイデアを持っているなら大歓迎です、

<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post" id="change_page">
    <input name="target_page" type="hidden" value="1" id="target_page" />
</form>
<script type="text/javascript">
    function go_to_page(target_page){
        var page = target_page;
        $("#target_page").val(page);
        $('#change_page').submit()
    }
    $(".wp-pagenavi").find("a").each(function(){
            var page = $(this).attr("href");
            page = page.slice(-3);
            page = page.replace("/","");
            page = page.replace("/","");
            // The if below, only apllies to the first link, since it doesn't use "/page/#" structure. 
            if(isNaN(page)) { page = 1; } 
            $(this).attr("href","javascript:void(0)");
            $(this).attr("OnClick","go_to_page("+page+")");
            console.log(page);
    });
</script>

そして、ページの上部に私はこれを使用します:

if(isset($_POST["target_page"])) {
     $page = $_POST["target_page"];
} else {
    $page = 1;
}
于 2012-11-04T04:52:55.303 に答える
0

これを試して、1つのカテゴリから1つの投稿を取得し、ページを維持します。

query_posts( "category_name=cat_slug_here&posts_per_page=1&paged=$paged");
于 2012-10-23T01:44:13.183 に答える
0

また、このページ付けの奇妙な問題に遭遇しました。最新バージョンのwpが原因かどうかはわかりませんが、さまざまな解決策を試しましたが、この調整だけがうまくいきました。get_query_var('paged')get_query_var('page')に変更します。これを試して

<?php
    $paged = (get_query_var('page')) ? get_query_var('page') : 1; //notice this 
    $temp = $wp_query; 
    $wp_query= null;
    $wp_query = new WP_Query(); 
    $wp_query->query('showposts=1&paged='.$paged);
?>
<?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
    <div class="entry">
        <div class="single_entry">
            <p>
                <?php the_content(); ?>
                <div class="clear"></div>
            </p>
            <?=get_social(); ?>
            <div class="clear"></div>
        </div><!-- fin expert -->
    </div><!-- fin entry -->

<?php endwhile; ?>
<?php if(function_exists('wp_pagenavi')) { ?>
    <div id="pagination">
        <?php wp_pagenavi(); ?>
    </div>
<?php } ?>

<?php $wp_query = null; $wp_query = $temp; ?>

注:if(function_exists('wp_pagenavi')){ステートメントに閉じ括弧がないことにも気づきました。これも修正してください。

于 2012-10-23T04:16:08.557 に答える
0

クエリを作成するには、WP_Queryクラスを使用する必要があります。そして、このオブジェクトをwp_pagenavi()の変数として使用します。

したがって、コードは次のようになります。

<?php
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $the_query = new WP_Query( $args );
    $the_query->query('showposts=1&paged='.$paged);
?>
<?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
    <div class="entry"> 
        <div class="single_entry">
            <p>
                <?php the_content(); ?>
                <div class="clear"></div>
            </p>
            <?=get_social(); ?>
            <div class="clear"></div>
        </div><!-- fin expert -->
    </div><!-- fin entry -->

<?php endwhile; ?>
<?php if(function_exists('wp_pagenavi')) { ?>
    <div id="pagination">
        <?php wp_pagenavi(array( 'query' => $the_query )); ?>
    </div>
<?php } ?>
于 2013-11-06T18:00:45.057 に答える