最近の業務の5%くらいは、WordPressで構築されたサイトのバグ修正とか機能追加をやっています。
Contact Form 7 に値を渡す際に、URLパラメーターとして値を渡す記事はたくさんあるのですが、POSTで渡す記事がちゃんとなかったのでメモがてら残します。
single.php
// 例えば、single.phpとかに以下を書く
<form action="contact form 7で構築したページのURL" method="post" name="form1">
    <input type="hidden" name="hogehoge" value="渡す値">
    <a href="javascript:form1.submit()">fugafuga</a>
</form>
function.php
// function.phpに以下を書く
  function my_form_tag_filter($tag){
    if (!is_array($tag)){
      return $tag;
    }
    if(isset($_POST['hogehoge'])){
    $name = $tag['name'];
    if($name == 'hogehoge')
      $tag['values'] = (array) $_POST['hogehoge'];
    }
    return $tag;
  }
  add_filter('wpcf7_form_tag', 'my_form_tag_filter');
// Contact Form 7内の設定で、以下で取得
[text* hogehoge default:post class:readonly readonly]
hogehogeとdefault:post以外は、用途に合わせて変更してください。
