WP_INSERT_POST和自定义分类

时间:2016-12-22 作者:Markus Hirsch

嗨,我需要一些自定义分类法和wp\\u insert\\u post方面的帮助。

我有一个自定义的Post类型“Locations”和自定义的分类法“poicography”。

我的问题是,当我用wp\\u insert\\u post插入帖子时,没有正确创建帖子分类法。如果我在后台观看,则会创建帖子,但没有类别连接到帖子。当我进入post edit并观看时,类别被设置为post(参见图片)。

第一幅图片:在后端创建的帖子->未设置类别->编辑创建的帖子,您可以在POI Kategorien 3中看到所选类别

第二张图片:POI类别概述在后端->类别中没有帖子。

我的第一次尝试是截取以下代码:

    $ids = array (42,43,44);
    $defaults = array(
    \'post_type\' => \'locations\',
    \'post_title\' => $postTitle,
    \'post_status\' => \'draft\',
    \'comment_status\' => \'closed\',
    \'tax_input\' => array(
        \'poicategory\' => $ids
    ),
    \'post_author\' => 1,
    \'meta_input\' => $post_meta,
);
$mh_post_id = wp_insert_post($defaults, true);
if ($mh_post_id != 0 && $mh_post_id != false) {
    set_post_thumbnail($mh_post_id, $_SESSION[\'mediaDataID\'][0]);
    add_post_meta($mh_post_id, \'_yoast_wpseo_primary_poicategory\', $parentCat);
    destroySession();
}
用这个解释的结果。所以我四处搜索了一下,发现了一些东西。因此,我将代码切换为:

    $ids = array (42,43,44);
    $defaults = array(
    \'post_type\' => \'locations\',
    \'post_title\' => $postTitle,
    \'post_status\' => \'draft\',
    \'comment_status\' => \'closed\',
    \'post_author\' => 1,
    \'meta_input\' => $post_meta,
);


$mh_post_id = wp_insert_post($defaults, true);
if ($mh_post_id != 0 && $mh_post_id != false) {
    set_post_thumbnail($mh_post_id, $_SESSION[\'mediaDataID\'][0]);
    add_post_meta($mh_post_id, \'_yoast_wpseo_primary_poicategory\', $parentCat);
    wp_set_object_terms($mh_post_id, $ids, \'poicategory\', false);
    destroySession();
}
但结果是一样的。现在我不知道怎么了。我希望有人能帮助我:)。

Post Backend

POICategory Backend

1 个回复
最合适的回答,由SO网友:Markus Hirsch 整理而成

我找到了答案。代码正确。Wordpress在分类法中的作用。php行3392

    $count += (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->term_relationships, $wpdb->posts WHERE $wpdb->posts.ID = $wpdb->term_relationships.object_id AND post_status = \'publish\' AND post_type IN (\'" . implode("\', \'", $object_types ) . "\') AND term_taxonomy_id = %d", $term ) );
$count为空,因为WHERE语句和我的帖子另存为草稿中的post\\u status=“publish”。

我想是的,这就是为什么第二张图上的计数器是空的。

相关推荐