サイト内検索
Cocoonフォーラム
書き込みの前に以下の3点をご確認ください。
何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。
不具合・カスタマイズ対象ページのURL:
相談内容:
不具合の発生手順:
解決のために試したこと:
※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。
環境情報の取得方法はこちら。
→ https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
→ https://wp-cocoon.com/theme-trouble/
フォーラム利用ガイドリンク
- フォーラムガイドライン
- よくある質問と答え(FAQ)
- サポート対象外のケース
- 原因不明の不具合用トラブルシューティング
- トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw)
- 真っ白画面でのエラーメッセージの確認方法
- ブラウザ環境チェックツール
- Cocoonカスタマイズ依頼
フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。
Topic starter
2021年6月6日 23:31
お世話になっております。
いつもCocoonを利用させていただいております。tkと申します。
不具合というか、要望かもしれませんが、パーマリンク設定で
%category%/%postname%
というような設定をした場合
記事に複数のカテゴリを登録すると、パーマリンクは勝手にカテゴリーIDの一番小さいものが選ばれます。
例えば、記事「pasta」にカテゴリ「italian」「umai」の2つを選んだ場合、
umaiのカテゴリIDが小さい場合、以下のようなリンクになってしまいます。
sample.com/umai/pasta
そこで、メインカテゴリーで指定したカテゴリがパーマリンクで選ばれるようにならないでしょうか。
メインカテゴリーで「italian」を選んで、以下のようなリンクにしたいと思っております。
sample.com/italian/pasta
調べただけですが、「wp category permalink」というプラグインを使えば指定できるようです。
が、サイトの記事数が多くなった場合、メインカテゴリとプラグインの指定を2つしないといけないので、できればcocoonで対応していただければ非常に助かります。
仕様かもしれませんが、ご検討よろしくお願いいたします<(_ _)>
2021年6月7日 01:01
不具合ではなくて、要望なのかな。。。と思いました。
(WordPressの仕様のようですし。)
WordPress.orgに載っていましたので、リンクしておきます。
「パーマリンクの使い方」-「複数カテゴリにした投稿の %category% と %tag%」
「WP Category Permalink」というプラグインについても記載があるようですね。
それだけ。。。です、すみません。
わいひら reacted
Topic starter
2021年6月7日 08:59
mk2さん、返信ありがとうございます。
そうですね。ほとんど要望かもしれません
ただ、複数カテゴリを選択した時の挙動で困っている方は多くいて、そのために、cocoonでもメインカテゴリを導入されたと思います。
なので、せっかくメインカテゴリという設定があるのであれば、パーマリンクにも反映していただければと思った次第です<(_ _)>
Topic starter
2021年6月7日 09:17
お世話になっております。
いつもCocoonを利用させていただいております。tkと申します。
不具合というか、要望かもしれませんが、パーマリンク設定で
%category%/%postname%
というような設定をした場合
記事に複数のカテゴリを登録すると、パーマリンクは勝手にカテゴリーIDの一番小さいものが選ばれます。
例えば、記事「pasta」にカテゴリ「italian」「umai」の2つを選んだ場合、
umaiのカテゴリIDが小さい場合、以下のようなリンクになってしまいます。
sample.com/umai/pasta
そこで、メインカテゴリーで指定したカテゴリがパーマリンクで選ばれるようにならないでしょうか。
メインカテゴリーで「italian」を選んで、以下のようなリンクにしたいと思っております。
sample.com/italian/pasta
調べただけですが、「wp category permalink」というプラグインを使えば指定できるようです。
が、サイトの記事数が多くなった場合、メインカテゴリとプラグインの指定を2つしないといけないので、できればcocoonで対応していただければ非常に助かります。
仕様かもしれませんが、ご検討よろしくお願いいたします<(_ _)>
わいひろ様
お世話になっております。
お忙しいと思いますので、自分なりに関数を作ってみました。
とういうか、ほとんど参考先の方の関数まんまですが・・・
参照: http://lilylila.hatenablog.com/entry/20120802/1343861223
あまり、post_linkフィルタを使ったことがないので、パーマリンクを取得するたびにこのような関数を読んで速度的に問題ないのか、私ではちょっとわかりません。
何かの参考になればと思い、ソースを貼らせていただきました。
ご検討、よろしくお願いいたします。
function hmo_modify_permalink($permalink, $post, $leavename) { /* 書き換えの必要がない場合は即関数を抜ける */ if ( empty($post->ID) || $post->post_type == 'page' || $post->post_type == 'attachment' || in_array($post->post_type, get_post_types( array('_builtin' => false) ) ) ) { return $permalink; } /* post_metaのparmalink_cat_idにカテゴリIDが登録されていない場合 は、デフォルトのパーマリンクを使う */ $permalink_cat_id = ''; $permalink_cat_id = get_post_meta($post->ID, 'the_page_main_category', true); if ($permalink_cat_id == '') { return $permalink; } /* パーマリンク作成、以下はほとんど wp-include/link-template.php のget_permalink関数のコピー */ $rewritecode = array( '%year%', '%monthnum%', '%day%', '%hour%', '%minute%', '%second%', $leavename? '' : '%postname%', '%post_id%', '%category%', '%author%', $leavename? '' : '%pagename%', ); $permalink_str = get_option('permalink_structure'); if ( '' != $permalink_str && !in_array($post->post_status, array('draft', 'pending', 'auto-draft')) ) { $unixtime = strtotime($post->post_date); $category = ''; if ( strpos($permalink_str, '%category%') !== false ) { /* post_metaのparmalink_cat_idに登録されたidの カテゴリを使う */ if ( $permalink_cat = get_category($permalink_cat_id) ) { $category = $permalink_cat->slug; if ( $parent = $permalink_cat->parent ) { $category = get_category_parents($parent, false, '/', true) . $category; } } // show default category in permalinks, without // having to assign it explicitly if ( empty($category) ) { $default_category = get_category( get_option( 'default_category' ) ); $category = is_wp_error( $default_category ) ? '' : $default_category->slug; } } $author = ''; if ( strpos($permalink_str, '%author%') !== false ) { $authordata = get_userdata($post->post_author); $author = $authordata->user_nicename; } $date = explode(" ",date('Y m d H i s', $unixtime)); $rewritereplace = array( $date[0], $date[1], $date[2], $date[3], $date[4], $date[5], $post->post_name, $post->ID, $category, $author, $post->post_name, ); /* get_permalink関数で生成した $permalinkをここで上書き */ $permalink = home_url( str_replace($rewritecode, $rewritereplace, $permalink_str) ); $permalink = user_trailingslashit($permalink, 'single'); } return $permalink; } /*テンプレートタグの <?php get_permalink() > が返すリンクを 上書きするフックをかける*/ add_filter( 'post_link', 'hmo_modify_permalink', 10, 3 );
2021年6月7日 19:26
申し訳ないですが、今回出来ればWordPressデフォルトの仕様を変更したくないです。
今回は特にURLが変わってしまうので、これまでの仕様で良い方のサイトでもURLが勝手に変わってしまい、SEO的に影響がある可能性も高いです。
カスタマイズ方法が現在分かっているのであれば、カスタマイズで対応していただければ幸いです。
Topic starter
2021年6月7日 21:12
返信ありがとうございます。
なるほどですね。
確かにURLが意図せず変わってしまう方もいるかもしれないですね。
了解いたしました。
わいひら reacted
2021年6月8日 19:27
そうなんです。
実際はURLも変更した方が仕様的にはスッキリはするのですが、後からできた機能でURLを意図せず変更させてしまうのは、サイト運営者さんの不利益になる可能性も高くて怖いです ?
tk reacted
問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。
また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。
(CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。
フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。
最近の書き込みはこちら。
詳細なカスタマイズ依頼をするならこちら。