The Loopの外側にPageスラッグのブレッドクラムトレイルを作成する関数を作成しようとしています。これらのブレッドクラムには、ホームページから現在の(サブ)ページへのパスが表示されます。
たとえば、 "example.com/attraction/parcs/parc-name"ページでは、このブレッドクラムは次のように表示されます。ホーム>アトラクション>パークス>パーク名
私は多くの研究をして、その機能の一部を実行することができる様々なコードスニペットを見つけました、しかし私のPHPスキルは私自身全体の機能を作成するのに十分ではありません。
これは私が持っているものです:
$slug = basename(get_permalink());
( src )global $post; echo $post->post_name;
(src:上記参照)<?php global $post; if($post->post_parent) { $post_data = get_post($post->post_parent); echo $post_data->post_name; } ?>
( src )ページタイトルを使用してページのブレッドクラムトレイルを取得します(これが現在使用しているものです)。
if ( is_page() )
{
$post = $wp_query->get_queried_object();
if ( $post->post_parent == 0 )
{
echo "<li> » ".the_title('','', FALSE)."</li>";
}
else
{
$title = the_title('','', FALSE);
$ancestors = array_reverse( get_post_ancestors( $post->ID ) );
array_Push($ancestors, $post->ID);
foreach ( $ancestors as $ancestor )
{
if( $ancestor != end($ancestors) )
{
echo '<li> » <a href="'. get_permalink($ancestor) .'">'. strip_tags( apply_filters( 'single_post_title', get_the_title( $ancestor ) ) ) .'</a></li>';
}
else
{
echo '<li> » '. strip_tags( apply_filters( 'single_post_title', get_the_title( $ancestor ) ) ) .'</li>';
}
}
}
}
すべてのアイデア、提案、解決策は大歓迎です:)
わかりました、問題は解決しました。以下にスクリプトを追加します。誰かに役立つことを願っています。
if ( is_page() ) {
$post = $wp_query->get_queried_object();
if ( $post->post_parent == 0 ){ echo "<li> » ".ucwords(str_replace("-", " ", $post->post_name))."</li>"; }
else {
$title = the_title('','', FALSE);
$ancestors = array_reverse( get_post_ancestors( $post->ID ) );
array_Push($ancestors, $post->ID);
foreach ( $ancestors as $ancestor ){
if( $ancestor != end($ancestors) ){
echo '<li> » <a href="'. get_permalink($ancestor) .'">'. ucwords(str_replace("-", " ", basename(get_permalink($ancestor)))) .'</a></li>';
} else {
echo '<li> » '. ucwords(str_replace("-", " ", basename(get_permalink($ancestor)))) .'</li>';
}
}
}
} // You just missed this bracket, else this is working awesome!