我正在尝试创建一个函数,在循环外创建一条包含页面片段的面包屑轨迹。这些面包屑显示从主页到当前(子)页面的路径。
例如,在“example.com/attractions/parcs/parc name”页面上,会显示以下面包屑:Home > Attractions > Parcs > Parc Name
我做了很多研究,发现了可以执行部分函数的各种代码片段,但我的PHP技能还不足以自己创建整个函数。
这就是我所拥有的:
在循环中获取后段塞:$slug = basename(get_permalink());
(src) 将post slug移出循环: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>\';
}
}
}
}
非常感谢所有想法、建议和解决方案:)
最合适的回答,由SO网友:Mattvic 整理而成
好的,问题解决了。我将在下面添加脚本。希望对某人有用。
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!