Custom Menus and taxonomies

时间:2014-01-20 作者:Chris

好的,我刚开始使用WordPress,不是很好,我有一个菜单问题,我真的需要一些帮助。

我在一个网站上工作,它有多个地点,并非所有地点都销售相同的产品。所有位置都是具有父结构的页面。

俄亥俄州-联系我们-关于我们-产品等。。。

西弗吉尼亚州-联系我们-关于我们-产品等。。。

宾夕法尼亚州-联系我们-关于我们-产品

我掌握了自定义页面模板的窍门,并为其添加了自定义菜单(因此,我所有的Ohio页面都使用了我制作的自定义Ohio模板,并包含了自定义Ohio菜单)。

我正在使用帖子创建产品信息页面,并使用以下方式显示它们:

*post_type="post" taxonomy="category" posts_per_page="10" tax_term=*
这在一般的产品页面上似乎效果不错(特别是因为我只想创建一次产品页面,因为有很多),但我不知道如何根据它们来自的父页面添加自定义菜单。

因此,如果他们来自我的自定义俄亥俄州页面,并单击指向产品帖子的链接,则没有菜单,因为该产品可能也在西弗吉尼亚州,但不在宾夕法尼亚州,因此我无法使用标准菜单。

有没有办法从他们刚出生的地方或者其他什么地方得到父母的信息?

有什么想法吗?

我对WordPress编码很陌生,所以请温柔一点

1 个回复
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) );  
}

结束

相关推荐

Menus like a CMS

以下是一些内容的结构示例:Parent A -- Child A -- Child B Parent B -- Child C -- Child D Parent A 应链接到的内容Child A 和Parent B 应链接到的内容Child C. 除此之外,我不确定这是否应该完全由wordpress中的“菜单”来管理,或者它是否应该是Parent A 包含子页面的页面。唯一的问题是Parent A 不是真正的内容,只是链接到Child A.如果你需要一个真