• 解決済 thermos

    (@thermos)


    カスタム投稿で作成したページをサイドバーに一覧で表示させたのですが、リンク先がエラーになります。
    カスタム投稿のポストタイプ名を「info」としております。
    固定ページに同じように「info」というページを作っていましたので、固定ページは別名に修正しました。
    パーマリンク設定は「/%postname%」に設定しており、何度か更新もいたしました。
    デフォルト等の別のパーマリンクも試しました。

    また、今回のカスタム投稿タイプの前に作成していたポストタイプ名「news」というカスタム投稿があるのですが、
    なんと、こちらもエラーが表示されるようになりました。

    エラー内容は「Bad Request
    Your browser sent a request that this server could not understand.」と表示されています。

    そして、リンク先のURLは以下のように表示されています。

    http://ドメイン/info/%info%
    http://ドメイン/news/%news%

    カスタム投稿ページは以下のように設定しています。

    <ul>
          <?php $args = array(
            'post_type' => 'info'
          );
          $customPosts = get_posts($args);
          if($customPosts) : foreach($customPosts as $post) : setup_postdata( $post );
          ?>
          <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
          <?php endforeach; ?>
          <?php endif;
          wp_reset_postdata(); ?>
        </ul>

    解決方法がございますでしょうか…汗

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック投稿者 thermos

    (@thermos)

    自己解決しました。
    functions.phpに「投稿タイプのパーマリンクを記事IDにする」設定をしておりまして、
    そちらを削除することでなおりました。
    できれば削除せずに解決させたかったですが、無理そうでした。
    ちなみに以下のようなソースです。
    今後の参考までに。

    add_action('init', 'myposttype_rewrite');
    function myposttype_rewrite() {
        global $wp_rewrite;
    
        $queryarg = 'post_type=news&p=';
        $wp_rewrite->add_rewrite_tag('%news_id%', '([^/]+)',$queryarg);
        $wp_rewrite->add_permastruct('news', '/news/%news_id%.html', false);
        $wp_rewrite->add_permastruct('info', '/info/%info_id%.html', false);
    }
    add_filter('post_type_link', 'myposttype_permalink', 1, 3);
    function myposttype_permalink($post_link, $id = 0, $leavename) {
        global $wp_rewrite;
        $post = &get_post($id);
        if ( is_wp_error( $post ) )
            return $post;
        $newlink = $wp_rewrite->get_extra_permastruct($post->post_type);
        $newlink = str_replace('%'.$post->post_type.'_id%', $post->ID, $newlink);
        $newlink = home_url(user_trailingslashit($newlink));
        return $newlink;
    }

    手前味噌ですが、こんなプラグイン有ります。WordPress › Simple Post Type Permalinks « WordPress Plugins

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「カスタム投稿で作成したページの一覧のリンク先がエラーになります。」には新たに返信することはできません。