get_terms on save_post hook

时间:2012-11-26 作者:AlxVallejo

通常,如果我想检查即将发布的帖子的某些属性,我会这样检查:

$post_title = $_POST[\'post_title\'];
post\\u title是编辑窗口中标题字段的名称。

我想我应该对分类法元框应用相同的逻辑。

$formats = $_POST[\'tax_input[formats][]\'];
本质上,我试图检查在发布帖子时是否选择了特定的分类术语。

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

你在正确的轨道上。

当你以某种形式做这样的事情时。。

<input name="tax_input[formats][]" />
您可以在$_POST 大堆

所以你会得到如下格式数组。。。

<?php
$formats = $_POST[\'tax_input\'][\'formats\'];
完整示例。。。

<?php
add_action(\'save_post\', \'wpse74017_save\');
function wpse74017_save($post_id)
{
    // check nonces and capabilities here.

    // use a ternary statement to make sure the input is actually set
    // remember that `save_post` fires on every post save (any post type).
    $formats = isset($_POST[\'tax_input\'][\'formats\']) ? $_POST[\'tax_input\'][\'formats\'] : array();

     // do stuff with $formats
}

SO网友:Ralf912

$formats = $_POST[\'tax_input[formats][]\'];
???????

A.var_dump( $_POST ); 可能会有帮助

\'tax_input\' => 
    array (size=1)
      \'post_tag\' => string \'tag_a,tag_b,tag_c\' (length=...)
尝试以下操作:

add_action( \'save_post\', \'find_post_tax\' );

function find_post_tax(){

  $tax_to_fetch = \'supersonicscrewdriver\';
  $found = false;

  if( isset( $_POST[\'tax_input\'][\'formats\'] ) && ! empty( $_POST[\'tax_input\'][\'formats\'] ) ){
    $taxs = explode( \',\', $_POST[\'tax_input\'][\'formats\'] );
    $found = in_array( $tax_to_fetch, $taxs );
  }

  return $found;

}

结束

相关推荐

如果未设置值,则空元框返回PublishDate?

我不知道为什么会发生这种情况。我有一个为自定义帖子类型设置的“event\\u end\\u date”自定义元数据库。如果我将此字段留空,它总是显示帖子本身的发布日期?我使用Custom-Metaboxes-and-Fields-for-WordPress 像这样的库…$meta_boxes[] = array( \'id\' => \'event_info_optional\', \'title\' => \'Optional\',