根据自定义元数据自动添加标签

时间:2013-02-17 作者:TheMadcore

我正在尝试根据我添加到编辑屏幕的元框中的复选框,创建一个函数,自动向帖子添加“特色”标记。

我想我需要使用的功能是wp_set_object_terms, 但我不明白它是怎么工作的。我知道如何检查这些复选框是否处于活动状态,但仅此而已。

我希望有人能把我带上正确的轨道。

3 个回复
SO网友:Darko

我无意中在搜索类似的内容时发现了这个问题,我喜欢你的方法,所以我对你的代码做了一些改进。

我更新了动作挂钩,以便在保存和更新时触发它wp_remove_object_terms 能够切换回(切换)自定义元框值(在本例中为复选框值)函数可用于常规和自定义帖子类型,也可用于标记、类别或自定义分类。

function set_term( $post_id, $your_term ){

    $post_id = get_the_ID();

    $your_term = get_post_meta( $post_id, \'your_custom_meta_id\', true ); 

    // check the custom meta-box checkbox value
    if ( $your_term == \'1\' ) {
        // Create a new term if checked
        wp_set_object_terms( $post_id, \'YourTerm\', \'your_custom_taxonomy\', true );
    } else {
        // Remove the created term if unchecked
        wp_remove_object_terms( $post_id, \'YourTerm\', \'your_custom_taxonomy\' );
    }
}

add_action( \'save_post\', \'set_term\', 10, 3 );

SO网友:TheMadcore

好的,找到问题了。

此代码就像一个符咒:

function is_featured_post(){
$postid = get_the_ID();
$featured = get_post_meta($postid, \'wpcf-slider-if\', true); if ( $featured == 1 ) { 
    wp_set_object_terms( $postid, \'Destacado\', \'post_tag\', true );
}
}

add_action ( \'publish_post\', \'is_featured_post\' );
但它只适用于标准帖子,不适用于自定义帖子类型。有一个钩子可以对自定义帖子类型执行相同的操作?

SO网友:Anagio

你可以用add_action ( \'publish_post\', \'your_function\' );

编写一个函数,检查复选框是否选中,如果选中,则更新posts术语

http://codex.wordpress.org/Plugin_API

结束

相关推荐

Filter categories using tags

我有一个包含以下类别的网站:视频、图片、故事,我有很多标签,比如:Funny, Awesome, Mind Blowing, Crazy, 等有没有一种方法可以过滤让我们说:Videos 标记为Crazy?我知道你可以做到:http://domainname.com/tag/crazy/ 但这将检索所有标记为crazy, 我只是想Videos.我很幸运地搜索了WordPress文档。