我没有安装插件来测试这段代码
你必须搜索代码才能确认,但“email\\u author”似乎就是这篇文章的作者电子邮件。为什么它不被命名为“author\\u email”,这是任何人的猜测。
我们应该能够添加一些代码来检查传入的电子邮件:
if ( \'zzz.com\' == $post[\'email_author\'] ) {
// Add category Z.
} else if ( \'yyy.com\' == $post[\'email_author\'] ) {
// Add category Y.
}
但是,首先,让我们后退一点。您的筛选函数都被同一个钩子(“posite\\u post”)调用。(过滤器是一个钩子。另一种类型的WordPress钩子是一个动作。)因此,您可以将所有内容放在同一个函数中:
add_filter( \'postie_post\', \'postie_custom_changes\' );
/**
* Make several custom changes to a Postie post.
*/
function postie_custom_changes( $post ) {
if ( \'zzz.com\' == $post->\'email_author\' ) {
// Add category X.
} else if ( \'zzz.com\' == $post->\'email_author\' ) {
// Add category Y.
}
// Prepend a link to bookmark the category of the post.
$category = get_the_category( $post[\'ID\'] );
$link = \'<a href="\' . get_category_link( $category[0]->term_id ) . \'">Bookmark this category</a>\' . "\\n";
$post[\'post_content\'] = $link . $post[\'post_content\'];
// Appends "(via postie)" to the title (subject).
$post[\'post_title\'] = $post[\'post_title\'] . \' (via postie)\';
// Insert tags for a post.
foreach ( $my_tags as array( \'cooking\', \'latex\', \'wordpress\' ) ) {
if ( stripos( $post[\'post_content\'], $my_tag ) !== false )
array_push( $post[\'tags_input\'], $my_tag );
}
// Append "(via postie)" to the title (subject).
add_post_meta( $post[\'ID\'], \'postie\', \'postie\' );
return $post;
}
我所做的其他更改是对注释、缩进和
$this_cat
到
$category
因为缩写“类别”这个词让我烦透了
“postie\\u post”筛选器似乎在创建帖子后运行。谷歌搜索互联网上的管道可以打开WordPress功能wp_set_post_categories()
第一个参数是a是帖子ID,第二个参数是一个数组,其中包含要将帖子设置为的类别ID。从您的代码来看,每个帖子似乎只需要一个类别,所以让我们看看更改帖子类别的代码,而不是添加它。
// Replace categories on some posts.
if ( \'zzz.com\' == $post[\'email_author\'] ) {
wp_set_post_categories( $post[\'ID\'], array( 2 ) );
} else if ( \'yyy.com\' == $post[\'email_author\'] ) {
wp_set_post_categories( $post[\'ID\'], array( 1 ) );
}
假设该类别
Y id为
1 和类别
Z id为
2.
您可能还想更改$post[\'category\']
设置也一样。
// Replace categories on some posts.
if ( \'zzz.com\' == $post[\'email_author\'] ) {
wp_set_post_categories( $post[\'ID\'], array( 2 ) );
$post[\'category\'] = array( 2 );
} else if ( \'yyy.com\' == $post[\'email_author\'] ) {
wp_set_post_categories( $post[\'ID\'], array( 1 ) );
$post[\'category\'] = array( 1 );
}