0

redir.php を作成し、wordpress のホーム ディレクトリに配置してリダイレクトを行いました。投稿 ID を渡し、投稿のカスタム フィールド値を取得し、header('location:'.$url); にフィードしたいと考えています。

redir.php の www.mysite.com/redir.php?id=30 は、post id=30 カスタム フィールドの値を取得し、それを $url に渡します。

これは私が持っているものですが、機能していません。「解析エラー: 5 行目の \redir.php の解析エラー」が表示されます。

wordpress環境が読み込まれていないようです。

 <?php

    require('./wp-blog-header.php');
      $id = $_GET['id'];
  $url= get_field('deal_http_link',post->$id);
    header('Location:'.$url);
?>

ありがとう

4

1 に答える 1

1

スクリプトには複数の問題があります。

  • 開始タグの前に空白がある<?phpため、ヘッダーが既に送信されているため、リダイレクトは機能しません。代わりに<?php、ファイルの一番最初にある必要があります。
  • post->$idは無効な構文です。$idおそらく、前の行で定義した変数を意味していたでしょう。
  • カスタム フィールドの値を取得するには、get_field()ではなく get_post_meta() を使用します。

代わりに次のようにしてみてください。

<?php
require('./wp-blog-header.php');
$id = $_GET['id'];
$url = get_post_meta($id, 'deal_http_link', true);
header('Location: ' . $url);
exit();
于 2012-08-18T14:06:41.407 に答える