自定义帖子类型-不可见标题及其对URL的影响

时间:2011-12-22 作者:turbonerd

我正在使用WordPress作为我养鱼网站的定制CMS。

目前,我正在开发一个名为“物种”的自定义帖子类型,它会生成一个关于特定鱼类物种的信息表。

为了防止人们不熟悉鱼类的分类,我无意光顾任何人,在下面的例子中,我将提到“Apistograma panduro”。“Apistograma”是“属”,“panduro”是“种”。这两个字段都是此自定义帖子类型中的字段。

例如,我的自定义帖子类型可能会生成一份关于Apistograma panduro的简介,其中包含如何保存和繁殖它的详细信息,等等。

我想知道这篇文章的标题,因为现在我所有的文章都被命名为“Auto Draft X”(X是一个数字),因此URL为“?物种=Auto-Draft-9”。

我可能会在这里问一个三管齐下的问题(文章的标题、文章的URL和任何可能的htaccess重写),但基本上我想做的是:我想all of my species profiles to have the Genus and Species in the URL

我不太在意它的布局,但这将是理想的:/species/apistogramma/panduro

抱歉,如果这篇文章的形式不是最好的,现在是0100,我已经花了几个小时在“代码中的头”上了。。!请不要犹豫,请澄清,我会尽我所能,当我明天醒来。

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

好的,我做了一些细微的改变,帮助我解决了这个问题。

首先,一个更改职位标题的功能。

function custom_post_type_title ( $post_id ) {
    global $wpdb;
    if ( get_post_type( $post_id ) == \'species\' ) {
        $genus = strip_tags(get_post_meta($post_id, \'genus\', true));
        $species = strip_tags(get_post_meta($post_id, \'species\', true));
        $common_names = strip_tags(get_post_meta($post_id, \'common_names\', true));
        if ($common_names) {
            $title = $genus . \' \' . $species . \' (\' . $common_names . \')\';
        } else {
            $title = $genus . \' \' . $species;
        }

        $where = array( \'ID\' => $post_id );
        $wpdb->update( $wpdb->posts, array( \'post_title\' => $title ), $where );
    }
}

add_action( \'save_post\', array( &$SpeciesProfile, \'custom_post_type_title\' ) );

其次,我可以手动修改slug 反映属种。

第三,我将“permalink”结构设置为“%postname%”。

SO网友:rikkit

我无法对此SX发表评论,但我认为最好的方法是使用自定义的帖子类型,但将其与自定义的分类法相结合。正如帖子属于一个类别一样,鱼类物种也可以属于一个属(属是自定义分类法定义的部分)。然后,如果需要,可以将该属按类别进行排列-例如,示例。com/fish/apistograma/panduro。

我在可湿性粉剂开发这一领域没有经验(事实上,我目前正在着手我的第一个涉及它们的项目),但我认为它们会是一个比将蛞蝓改为/属物种更好的选择。

看见http://codex.wordpress.org/Taxonomies 了解更多信息。

结束

相关推荐