• bbpressでトピックのタイトルを日本語で記入した場合、/forums/topic/topic-0/になってしまいます。

    ちなみにfunction.phpで

    function auto_post_slug( $slug, $post_ID, $post_status, $post_type ) {
    if ( preg_match( ‘/(%[0-9a-f]{2})+/’, $slug ) ) {
    $slug = utf8_uri_encode( $post_type ) . ‘-‘ . $post_ID;
    }
    return $slug;
    }
    add_filter( ‘wp_unique_post_slug’, ‘auto_post_slug’, 10, 4 );

    にしています。

    このフォーラムみたいにトピックのタイトルを日本語にしてもURLが英語表記で順番になる方法を教えていただけたら助かります。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • 原因はわかりませんが wp_unique_post_slug フィルターのパラメーターが足りないようです。

    /**
     * Filter the unique post slug.
     *
     * @since 3.3.0
     *
     * @param string $slug          The post slug.
     * @param int    $post_ID       Post ID.
     * @param string $post_status   The post status.
     * @param string $post_type     Post type.
     * @param int    $post_parent   Post parent ID
     * @param string $original_slug The original post slug.
     */
    return apply_filters( 'wp_unique_post_slug', $slug, $post_ID, $post_status, $post_type, $post_parent, $original_slug );

    トピック投稿者 yca

    (@yca)

    ありがとうございます。

    でも、理解できていません。どうすればいいのでしょうか?

    すみません、パラメーターが足りない云々は私の勘違いですので忘れて下さい。

    改めて、原因は、トピックのIDが決まる前に wp_unique_post_slug フィルターが呼び出されている為です。新しくトピックを作った時、データベースにトピックが(投稿データとして)登録される前にこのフィルターが呼び出されるのですが、まだトピック(投稿データ)が存在しないのでIDは仮に 0 が与えられています。そのため必ず topic-0 になってしまいます。

    対策をどのようにすれば良いか思いつきませんが、関数 auto_post_slug の処理を変更するか、それとも wp_unique_post_slug フィルターを使わないようにするかでしょう。知識も経験も少ないので具体的にお答えできなくてすみません。

    Web検索で探してみると、非公式プラグインですが、パーマリンクを書き換えるものがありました。実際に試していませんので効果や不具合の有無はわかりませんが、ご参考まで。

    bbPress Permalinks with ID
    https://github.com/korobochkin/bbPress-permalinks-with-id

4件の返信を表示中 - 1 - 4件目 (全4件中)

トピック「bbpressのトピックのタイトルがすべて同じになる」には新たに返信することはできません。