好的,我刚开始使用WordPress,不是很好,我有一个菜单问题,我真的需要一些帮助。
我在一个网站上工作,它有多个地点,并非所有地点都销售相同的产品。所有位置都是具有父结构的页面。
俄亥俄州-联系我们-关于我们-产品等。。。
西弗吉尼亚州-联系我们-关于我们-产品等。。。
宾夕法尼亚州-联系我们-关于我们-产品
等
我掌握了自定义页面模板的窍门,并为其添加了自定义菜单(因此,我所有的Ohio页面都使用了我制作的自定义Ohio模板,并包含了自定义Ohio菜单)。
我正在使用帖子创建产品信息页面,并使用以下方式显示它们:
*post_type="post" taxonomy="category" posts_per_page="10" tax_term=*
这在一般的产品页面上似乎效果不错(特别是因为我只想创建一次产品页面,因为有很多),但我不知道如何根据它们来自的父页面添加自定义菜单。
因此,如果他们来自我的自定义俄亥俄州页面,并单击指向产品帖子的链接,则没有菜单,因为该产品可能也在西弗吉尼亚州,但不在宾夕法尼亚州,因此我无法使用标准菜单。
有没有办法从他们刚出生的地方或者其他什么地方得到父母的信息?
有什么想法吗?
我对WordPress编码很陌生,所以请温柔一点
SO网友:bellasys
我可以确认您在每个州都为这些重复产品创建了单独的子页吗?
假设这是真的,您可以使用我称之为“软系统”的方法,并使用命名约定。如果您在页面名称中包含Ohio(同样,假设帖子名称是permalink结构的一部分,这对SEO更有利…),您可以有条件地测试页面名称。如果您的命名约定规定您的产品页面将以父状态开始,那么这将变得更加实用。
xyz。com/ohio-product-1
然后,有很多方法可以在第一个破折号之前剥离uri的重要部分。
请原谅我的代码缺失。我总是可以提供一个基本的例子。
这并不是最面向对象的方法,但如果您刚接触WP,并且对PHP不太在行,那么我的解决方案可能会对您有好处。
否则,请尝试以下操作:
http://wordpress.org/support/topic/how-to-get-top-level-parent-pages
或者,您可以始终使用此WP功能:
get_post_ancestors();
“返回ID数组,如果找不到祖先,则返回空。直接父级作为数组中的第一个值返回。最高级别的祖先作为数组中的最后一个值返回。”
当然,最终还是会得到一个条件语句,例如:
$ancestry = get_post_ancestors( $post );
if( isset($ancestry) && !empty($ancestry)){
$last = count($ancestry) - 1;
$menu_per_state = get_the_title( $ancestry[ $last ] ); //uses ID
// relies on matching name for menu and page title using this method.
// uses default theme_location since none specified
// refer to docs on wp_nav_menu, very helpful
wp_nav_menu( array(\'menu\' => $menu_per_state) );
}