zamo@ddm
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: カスタム投稿タイプ+カスタム分類のパーマリンク整形について一応、投稿、ページ、各種アーカイブ全てに現状では対応させていました。
カテゴリーに階層に合わせたパンくず出力が出来ていたので良かったのですが、今回のカスタム投稿タイプ+カスタム分類で思いっきりNGでした(’・ω・`;)※当方、PHP経験がないので、もっと良い方法があるのかもしれませんが…。ご指摘あればコチラも合わせてよろしくお願い致します。
長くなってしまいましたが以上の状況で何か良い解決策がありましたらご教授ください。
よろしくお願い致します。フォーラム: 使い方全般
返信が含まれるトピック: カスタム投稿タイプ+カスタム分類のパーマリンク整形について通常の投稿でカテゴリーを親子関係を持たせた場合であれば、キチンと表示されますが、カスタム投稿タイプ+カスタム分類での実現はできないのでしょうか?
ちなみに、上記で(×)となっているようなURL構造をそのまま、パンくずリストでも表現したいのですが、うまくいきません…。現状、functions.phpに記述しているパンくず用の関数は以下の通りです。
function BreadCrumbsList(){ global $wp_query; $separate = '<span class="separate">></span>'; $bc_list_num = 0; if(!is_home() && !is_front_page()) { $front_page_ID = get_option('page_on_front'); if($front_page_ID != 0) { $front_page_title = get_the_title($front_page_ID); }else { $front_page_title = 'トップページ'; } echo '<ul class="breadcrumbs"><li class="first"><a href="'. get_bloginfo('url') .'">'. $front_page_title .'</a></li>'; if(is_category()) { $bc_cat = get_category(get_query_var('cat')); while($bc_cat->cat_ID != 0) { $bc_list_name[$bc_list_num] = $bc_cat->cat_ID; $bc_cat = get_category($bc_cat->parent); $bc_list_num++; } while($bc_list_num != 0) { $bc_list_num--; if($bc_list_num == 0) { echo '<li class="last">' . $separate . get_catname($bc_list_name[$bc_list_num]) . '</li>'; }else { echo '<li>' . $separate . '<a href="' . get_category_link($bc_list_name[$bc_list_num]) . '" title="' . get_catname($bc_list_name[$bc_list_num]) . 'を表示">' . get_catname($bc_list_name[$bc_list_num]) . '</a></li>'; } } }elseif(is_year()) { echo '<li class="last">' . $separate . get_the_time('Y') . '年</li>'; }elseif(is_month()) { echo '<li><a href="'. get_bloginfo('url') . '/date/' . get_the_time('Y') .'">' . $separate . get_the_time('Y') . '年</a></li>'; echo '<li class="last">' . $separate . get_the_time('n') . '月</li>'; }elseif(is_day()) { echo '<li><a href="'. get_bloginfo('url') . '/date/' . get_the_time('Y') .'">' . $separate . get_the_time('Y') . '年</a></li>'; echo '<li><a href="'. get_bloginfo('url') . '/date/' . get_the_time('Y') . '/' . get_the_time('n') .'">' . $separate . get_the_time('n') . '月</a></li>'; echo '<li class="last">' . $separate . get_the_time('j') . '日</li>'; }elseif(is_tag()) { echo '<li class="last">' . $separate . single_tag_title('',false) . '</li>'; }elseif(is_archive() && !is_category()) { echo '<li class="last">' . $separate . __('Archives') . '</li>'; }elseif(is_single()) { $bc_cates = get_the_category(); foreach($bc_cates as $bc_fastcate) { if($bc_fastcate->category_parent > 0) { $bc_cat = get_category($bc_fastcate); while($bc_cat->cat_ID != 0) { $bc_list_name[$bc_list_num] = $bc_cat; $bc_cat = get_category($bc_cat->parent); $bc_list_num++; } foreach(array_reverse($bc_list_name) as $bc_list_num) { echo '<li>' . $separate . '<a href="' . get_category_link($bc_list_num->cat_ID) . '" title="' . get_catname($bc_list_num->cat_ID) . 'を表示">' . get_catname($bc_list_num->cat_ID) . '</a></li>'; } echo '<li class="last">' . $separate . mb_strimwidth(the_title('','', FALSE), 0, 46, "(略)", 'UTF-8') . '</li>'; }elseif($bc_fastcate->category_parent == 0) { echo '<li>' . $separate . '<a href="' . get_category_link($bc_fastcate->cat_ID) . '" title="' . get_catname($bc_fastcate->cat_ID) . 'を表示">' . get_catname($bc_fastcate->cat_ID) . '</a></li>'; echo '<li class="last">' . $separate . mb_strimwidth(the_title('','', FALSE), 0, 46, "(略)", 'UTF-8') . '</li>'; } break; } }elseif(is_search()){ echo '<li class="last">' . $separate . __('Search Results') . '</li>'; }elseif(is_404()) { echo '<li class="last">' . $separate . __('Page not found') . '</li>'; }elseif (is_page()) { $bc_post = $wp_query->get_queried_object(); if($bc_post->post_parent == 0) { echo '<li class="last">' . $separate . the_title('','', FALSE).'</li>'; }else { $bc_title = the_title('','', FALSE); $bc_ancestors = array_reverse(get_post_ancestors($bc_post->ID)); array_push($bc_ancestors, $bc_post->ID); foreach($bc_ancestors as $bc_ancestor) { if($bc_ancestor != end($bc_ancestors)) { echo '<li>' . $separate . '<a href="'. get_permalink($bc_ancestor) .'">'. strip_tags(apply_filters('single_post_title', get_the_title($bc_ancestor))) .'</a></li>'; }else { echo '<li class="last">' . $separate . strip_tags(apply_filters('single_post_title', get_the_title($bc_ancestor))) .'</li>'; } } } } echo "</ul>"; } }
フォーラム: 使い方全般
返信が含まれるトピック: カスタム投稿タイプ+カスタム分類のパーマリンク整形について次に、現状のURL表示状況ですが、
http://sample.com/ ← トップページ(○)
http://sample.com/test/ ← 全てのアーカイブ(○)
http://sample.com/test/cat-a/ ← 親カテゴリーAのアーカイブ(○)
http://sample.com/test/cat-a/sub-a/ ← 子カテゴリーAのアーカイブ(×)
http://sample.com/test/cat-a/sub-b/ ← 子カテゴリーBのアーカイブ(×)
http://sample.com/test/cat-a/sub-b/last ← 孫カテゴリーのアーカイブ(×)
http://sample.com/test/cat-b/ ← 親カテゴリーBのアーカイブ(○)となります。ここで、現在(×)になっている項目ですが、下記のURLであれば認識されます。
http://sample.com/test/sub-a/ ← 子カテゴリーAのアーカイブ(○)
http://sample.com/test/sub-b/ ← 子カテゴリーBのアーカイブ(○)
http://sample.com/test/last/ ← 孫カテゴリーのアーカイブ(○)フォーラム: 使い方全般
返信が含まれるトピック: カスタム投稿タイプ+カスタム分類のパーマリンク整形についてで、パーマリンク設定には、Custom Post Parmalinkプラグインを採用し、
/%post_type%/%tests%/%test%.html
のように設定しています。尚、通常のパーマリンク設定は、
/%category%/%postname%.html
となっています。
で、カスタム分類には以下のようにカテゴリー登録しています。()内はSlugです。
親カテゴリーA(cat-a)
├ 子カテゴリーA(sub-a)
└ 子カテゴリーB(sub-b)
└ 孫カテゴリー(last)
親カテゴリーB(cat-b)フォーラム: 使い方全般
返信が含まれるトピック: 検索結果から特定のカスタム投稿タイプのみ除外する方法について>> dxd5001
書き込み、ありがとうございます。
除外するには、カスタム投稿タイプ側で制御するのですね…。
勉強になりました(^^;)
教えていただきました内容で無事解決しましたので、このトピックは解決済みにさせていただきます。
ありがとうございました。フォーラム: 使い方全般
返信が含まれるトピック: 投稿画面の並び順でカスタムフィールドを上部に配置するには?kz様、ご教授ありがとうございます。
投稿直後に病気でしばらく休んでおり、ご返信遅れましたことお詫び申し上げます。jQueryで配置転換するのは盲点でした…(^^;)私もよく、h2の装飾などでwrapInnerを使ってspanタグを挿入させたりしますが、よくよく考えれば、insertBeforeを使うことで実現できましたね。
今回の場合、カスタムフィールド部分は Custom Field Template のメタボックスでしたので、教えて頂いた admin-script.js の指定IDが異なります。
今後の方の参考までに記載します。jQuery(document).ready(function($){ $('#cftdiv').insertBefore('#postdivrich'); });
#postdivrich が記事コンテンツ(エディター)部分なので、その前(上)に出力したいメタボックスのIDを #cftdiv のように記述してください。
上記のように作成したjsファイルは任意の場所に保存してください。
例えば、テーマフォルダにjsフォルダを作成し、そこに admin-script.js (任意の名前)として保存した場合、 fanctions.php で以下のように記述します。function my_admin_enqueue_scripts() { wp_enqueue_script('my-admin-script', get_bloginfo('template_directory').'/js/admin-script.js', array('jquery'), false, true); } add_action('admin_enqueue_scripts', 'my_admin_enqueue_scripts');
以上で完成です。
本件は解決しましたので、トピックを閉めさせていただきます。
ありがとうございました。