我想做的与this one 但我们在获取信息方面有点不同。
基本上,当用户创建帖子时(在suggestions 自定义帖子类型),但它没有立即发布,但处于待定审阅状态。我正在使用重力表单,以便用户可以在前端创建帖子/建议。我将此前端表格附在特定页面上。
我想要的是,在保存用户的帖子(待审核)时,将根据name and slug of the current page 表格附于此处。当然,如果它已经存在,就不应该再创建它(例如,有另一个用户首先发布了建议)。
例如:用户在演员页面上发布了建议(电影帖子类型)。此页面包含slug演员。如果他是第一个在此页面上提出建议的人,则应在建议帖子类型下创建一个类别,并将其帖子(或建议)保存在名称为Actors和slug的帖子(或建议)中。如果他不是第一个提出建议的人,那么就没有必要重新创建类别,因为它之前已经由某人创建,只需要保存在该类别下(只要类别存在且不创建,就可以通过重力表单处理)。
我不确定要在函数中放入什么。php。有人能帮我吗?我希望我在这里说清楚了。
SO网友:Seamus Leahy
这里您需要使用的主要内容是save_post
在保存帖子后立即挂接WordPress以执行代码。Read up on the save_post
hook on the WordPress codex first and then come back here.
下一部分是将帖子分配给分类术语。这可以很容易地用wp_set_post_terms()
function.
你最终会得到一些基本上类似于下面的代码的东西,你可以将这些代码粘贴到你的functions.php
:
<?php
function save_suggestions_term( $post_id ) {
// Check the post-type of the post being saved is our type
$suggestions_post_type_slug = \'suggestion\';
if ( $suggestions_post_type_slug != $_POST[\'post_type\'] ) {
return; // Not ours - stop
}
// You\'ll need to figure out the name of your category.
// You\'ll have $_REQUEST that you can get the fields that were just saved
$suggestion_term = \'Actors\';
$taxonomy = \'category\'; // The name of the taxonomy the term belongs in
wp_set_post_terms( $post_id, array($suggestion_term), $taxonomy );
}
add_action( \'save_post\', \'save_suggestions_term\' );
请注意
wp_set_post_terms
如果该术语不存在,将创建该术语,或将其添加到现有术语中。这将在每次再次保存帖子时运行,这意味着如果更改用于创建分类术语名称的输入字段的值,分类术语也将更改。