サポート » 使い方全般 » functions.phpへの関数の追加の仕方について

  • 解決済 simejikinoko

    (@simejikinoko)


    検索してみつけたページャーのコードを拝借し、category.phpなどに直接書き込んでいました。

    <div class="pager">
        <?php global $wp_rewrite;
        $paginate_base = get_pagenum_link(1);
        if(strpos($paginate_base, '?') || ! $wp_rewrite->using_permalinks()){
            $paginate_format = '';
            $paginate_base = add_query_arg('paged','%#%');
        }
        else{
            $paginate_format = (substr($paginate_base,-1,1) == '/' ? '' : '/') .
            user_trailingslashit('page/%#%/','paged');;
            $paginate_base .= '%_%';
        }
        echo paginate_links(array(
            'base' => $paginate_base,
            'format' => $paginate_format,
            'total' => $wp_query->max_num_pages,
            'mid_size' => 2,//ページャーの表示する数
            'current' => ($paged ? $paged : 1),
            'prev_text' => '<',
            'next_text' => '>',
        )); ?>
    </div>

    これをfunctions.phpにこのように記述し

    function my_pager_link(){
    
    global $wp_rewrite;
        $paginate_base = get_pagenum_link(1);
        if(strpos($paginate_base, '?') || ! $wp_rewrite->using_permalinks()){
            $paginate_format = '';
            $paginate_base = add_query_arg('paged','%#%');
        }
        else{
            $paginate_format = (substr($paginate_base,-1,1) == '/' ? '' : '/') .
            user_trailingslashit('page/%#%/','paged');;
            $paginate_base .= '%_%';
        }
        echo paginate_links(array(
            'base' => $paginate_base,
            'format' => $paginate_format,
            'total' => $wp_query->max_num_pages,
            'mid_size' => 2,//ページャーの表示する数
            'current' => ($paged ? $paged : 1),
            'prev_text' => '<',
            'next_text' => '>',
        ));
    
    }

    そのあとcategory.phpにこのように書きましたが出力されませんでした。
    何か書き方が間違っているのでしょうか。ご助言お願いします。

    <div class="pager">
        <?php my_pager_link(); ?>
    </div>

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • モデレーター jim912

    (@jim912)

    global 宣言に $wp_query も必要になるかと思われます。

    モデレーター gatespace

    (@gatespace)

    別回答
    4.1 なら the_posts_pagination という関数が追加されていますので、これを使ったほうが楽です。

    Home

    自分のブログでRC時点で書きましたが、正式版でも変わってないです。
    http://gatespace.jp/2014/12/12/new-template-tags-in-4-1/

    ざっくりな例

    <div class="pager">
    <?php
        the_posts_pagination( array(
            'mid_size'           => 2,
            'prev_text'          => '<',
            'next_text'          => '>',
      ) );
    ?>
    </div>

    トピック投稿者 simejikinoko

    (@simejikinoko)

    jim912さん
    functions.phpに、このように付け足したら出力することができました。

    global $wp_rewrite;
    global $wp_query;

    gatespaceさん
    新しい関数を教えていただきありがとうございます。
    かなりすっきりしました。Archiveタグも便利そうです。

    ありがとうございました

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「functions.phpへの関数の追加の仕方について」には新たに返信することはできません。