显示自定义帖子类型的不同信息

时间:2014-10-14 作者:leemon

我正在为一位客户开发一个房地产网站,我正在努力解决这个问题。我创建了一个名为“Property”的自定义帖子类型。房产可以出售和/或出租。网站上有两个不同的菜单项,“待售物业”和“出租物业”,显示待售或出租物业的列表。

当用户单击“待售房产”列表中的房产时,我需要显示一些数据,当用户单击“待租房产”列表中的房产时,我需要显示略有不同的数据。基本上,将有两个略有不同的单一属性模板。我的问题是,我该怎么做?我是否需要向属性的url添加一些参数(例如www.domain.com/property/ID/?onsale和www.domain.com/property/ID/?onrent)。

任何帮助都将不胜感激。

3 个回复
最合适的回答,由SO网友:bysanchy 整理而成

向自定义帖子添加类别。例如:

add_action( \'init\', \'create_gallery_taxonomies\', 0 );

function create_gallery_taxonomies() {

    $labels = array(
        \'name\' => _x( \'B&A Categories\', \'taxonomy general name\' ),
        \'singular_name\' => _x( \'B&A\', \'taxonomy singular name\' ),
        \'search_items\' => __( \'Search B&A Categories\' ),
        \'all_items\' => __( \'All B&A Categories\' ),
        \'parent_item\' => __( \'Parent B&A Category\' ),
        \'parent_item_colon\' => __( \'Parent B&A Category:\' ),
        \'edit_item\' => __( \'Edit B&A Category\' ),
        \'update_item\' => __( \'Update B&A Category\' ),
        \'add_new_item\' => __( \'Add New B&A Category\' ),
        \'new_item_name\' => __( \'New B&A Category Name\' ),
        \'menu_name\' => __( \'B&A Categories\' ),
    );

    $args = array(
        \'hierarchical\'      => true,
        \'labels\'            => $labels,
        \'show_ui\'           => true,
        \'show_admin_column\' => true,
        \'query_var\'         => true,
        \'rewrite\'           => array( \'slug\' => \'gallery-categories\' ),
    );

    register_taxonomy( \'gallery-categories\', array( \'gallery_post\' ), $args );

}
查看最后一行的“gallery\\u post”,这将是您自定义的帖子类型。

然后可以将参数添加到url,并仅显示类别中的参数

$gallery_slug = $_GET[\'parameter\'];

$gallery_menu =  get_terms(\'gallery-categories\', \'hide_empty=1\');

foreach($gallery_menu as $item) {
    if( $item->slug == $gallery_slug ) {
        $current_cat = $item;
    }
}
if( !$current_cat )
    $current_cat = get_term(81, \'gallery-categories\'); // DEFAULT CATEGORY TO SHOW


$args = array(
    \'post_type\' => \'gallery_post\',
    \'taxonomy\' => $current_cat->taxonomy,
    \'term\' => $current_cat->slug,
    \'posts_per_page\' => -1,
    \'nopaging\' => true,
);
$query = new WP_Query( $args );
在单个模板上,您必须检查帖子必须显示哪些类别的所需信息。

SO网友:Heidi

我认为您可以使用一个模板(例如single property)来实现这一点。php。

正如Sanchy建议的那样,您需要“销售”和“租赁”类别

您还需要数据的自定义字段。高级自定义字段插件可以轻松添加这些字段。https://wordpress.org/plugins/advanced-custom-fields/ 添加您想要出租和出售的所有物品。然后,当您或您的客户向网站添加属性信息时,他们将选择适当的类别,然后只填写该类别所需的字段。(您可以包括有关此的说明。)

然后在模板中,使用类似这样的方法调用字段的内容。这可以调用名为“price”的字段

<?php if(get_field(\'price\'))
{
echo \'<p>\' . get_field(\'price\') . \'</p>\';
}
?>
这样,只应显示已填写的字段。高级自定义字段在以下位置提供了其他文档:http://www.advancedcustomfields.com

SO网友:s_ha_dum

WordPress将自动加载自定义帖子类型的不同模板:

用于呈现单个贴子页的模板文件。

单一{post\\u类型}。php-如果帖子类型是product,WordPress将查找单个产品。php

http://codex.wordpress.org/Template_Hierarchy#Single_Post_display

这就是加载“略有不同的单一属性模板”所需的全部内容

结束

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在