サポート » 使い方全般 » カスタムタクソノミーのタームに半角スペースが挟まってあると投稿記事の絞り込み抽出をしてくれない

  •  蔵書管理・読書管理データベース(#)からエクスポートしたCSVファイルをWordpressにインポートしました。
     # メディアマーカー
     本の書名をpost_titleにし、著者名はカスタム分類「著者」(タクソノミースラッグは”auth”)を作ってそこにタームとして書き込みます。カスタムタクソノミーはプラグインCustom Post Type UIバージョン1.6.1で追加しました。
     全投稿記事から著者名で同著者の本を抽出する場合、URL末尾にクエリー文字列”?auth=著者名”を附加してやると、”http://ドメイン名/wp/auth/著者名”にリダイレクトされ、絞り込み結果が出ます。
     ところで登録データはAmazonデータの流用が大半なので、著者名の姓と名との間に半角スペースが入って「三島 由紀夫」みたいになったものも多い(これは元のサイトでも問題になってました)。
     著者名等の検索時に空白の半角/全角を無視してほしい
     苗字の後のスペースを統一してください。
     さて例として三島由紀夫著が何冊か登録してあり、そのカスタムタクソノミー「著者」のタームが姓名の間隔が詰まった「三島由紀夫」だったり姓名半角空きの「三島 由紀夫」だったりするとします。両者が別物のタームとして処理されるのはこの際まあ目をつむります。問題なのは、前者は”?auth=三島由紀夫”で絞り込み抽出できるのに、後者の半角空きの方は”?auth=三島 由紀夫”とスペースを入れた値ではヒットせず、「ページが見つかりませんでした」(404)になることです。
     新規投稿の編集画面でカスタムタクソノミー「著者」に入力してもみました。著者名がひとつながりなら問題ありませんでしたが、著者名に半角スペースを挟むとやはりタクソノミーの値(ターム)による抽出が効かなくなり、該当する筈の投稿記事が出て来なくなります。
     一体なぜ半角スペースありと無しとでこんな差が出るのか、どうすれば両方とも同様に絞り込みを有効にできるのか、これが質問です。
     元のMediaMarkerのサイトでは半角スペースが入った著者名であってもそれに準じて”http://mediamarker.net/u/ユーザー名/auth1/三島 由紀夫”といったurlで絞り込めたのですけど……。ワードプレスのカスタムタクソノミー機能でこれを再現するのには何か支障があるのですか?
     環境は、Wordpressのバージョンが5.0.2、テーマがtwentysixteenの子テーマです。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • CG

    (@du-bist-der-lenz)

    三島+由紀夫ではどうでしょう

    半角スペースの位置に加算記号を入れた”?auth=三島+由紀夫”で絞り込みしようとしても、そんなタームを附けた投稿記事は存在しませんから、当然404 Not Foundになります。検索クエリーの”?s=検索語1+検索語2″とは事情が異なります。

    • この返信は1年、 7ヶ月前にmybookishが編集しました。

     新規投稿に対し「著者」に半角ならぬ全角空きの「三島 由紀夫」も追加してみましたが、更新ボタンを押すとなぜか消えます。え、全角空きの入ったターム名は採用されないのか?
     そこで、管理画面>投稿にて、投稿一覧、新規追加、カテゴリー、タグ、の下に表示されたカスタムタクソノミー「著者」を開きました。ここで「新規項目を追加」すれば全角空きの「三島 由紀夫」も追加可能です。
     それで気づいたのですが、カスタムタクソノミー「著者」における作成済のターム一覧中、半角空きの名前「三島 由紀夫」を見ると、「スラッグ」が「三島-由紀夫」と半角ハイフン入りとなってるのです。
     「項目を編集」に進んでスラッグ欄の「三島-由紀夫」を「三島 由紀夫」に変更しても、すぐ強制的に”-“へ自動置換されます。スラッグ欄の下には「“スラッグ” は URL に適した形式の名前です。通常はすべて半角小文字で、英数字とハイフンのみが使われます。」とあります。……これの所為か! 
     試しにやってみた”?auth=三島-由紀夫”→”http://ドメイン名/wp/auth/三島-由紀夫”でも該当投稿記事が抽出されました。
     現に英数字でない日本語全角文字を使用してあるわけですが、これは内部では「三島-由紀夫」→「%E4%B8%89%E5%B3%B6-%E7%94%B1%E7%B4%80%E5%A4%AB」とutf-8のコードで半角にして処理してあるのかと察せられます。となれば、半角スペースもユニコードで処理した「%20」にすればよいのでは、と思ってスラッグ欄を「三島%20由紀夫」と変更した所、これまたすぐ強制的に「三島 由紀夫」と半角空白を挟んだ表示に自動置換されました。で、改めて半角空きの”?auth=三島 由紀夫”→”http://ドメイン名/wp/auth/三島 由紀夫”を試すと、やっと該当投稿記事の絞り込みに成功しました。
     但し、管理画面>投稿>投稿一覧から「投稿の編集」へ進んで、こちらから「著者」欄に「三島%20由紀夫」と入力しても、「更新」ボタンをクリックすると「三島由紀夫」と空白無しに強制置換されます。
     それにしても、こんなややこしい手続きが要るとは……。投稿記事の編集からでは手が出せず、カスタムタクソノミーのターム編集からでないと変更できないのは不便ですし、著者名として他にも登録された多数のターム名をいちいちこんな風に置換するのは面倒でやりきれない。
     もっと楽に操作可能にする手立ては、何かないものですか。
     ワードプレスそれ自体よりもプラグインCustom Post Type UIと組み合せた場合の問題かもしれません。

    • この返信は1年、 7ヶ月前にmybookishが編集しました。
    • この返信は1年、 7ヶ月前にmybookishが編集しました。
    • この返信は1年、 7ヶ月前にmybookishが編集しました。
3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「カスタムタクソノミーのタームに半角スペースが挟まってあると投稿記事の絞り込み抽出をしてくれない」には新たに返信することはできません。