私と同じように、CMSに存在しないページでWordPress関数を参照できるようにしたい場合があります。このようにして、バックエンド固有のままであり、クライアントによって誤って削除されることはありません。
wp-blog-header.php
PHPを使用してファイルをインクルードするだけで、これは実際には簡単require()
です。
以下は、クエリ文字列を使用してFacebook Open Graphを生成する例です。(OG)データ。
は、OGデータを生成する投稿のIDがhttp://example.com/yourfilename.php?1
どこであるかなどのリンクの例を見てみましょう1
。
内容はyourfilename.php
、便宜上、WordPressルートディレクトリにあります。
<?php
require( dirname( __FILE__ ) . '/wp-blog-header.php' );
$uri = $_SERVER['REQUEST_URI'];
$pieces = explode("?", $uri);
$post_id = intval( $pieces[1] );
// og:title
$title = get_the_title($post_id);
// og:description
$post = get_post($post_id);
$descr = $post->post_excerpt;
// og:image
$img_data_array = get_attached_media('image', $post_id);
$img_src = null;
$img_count = 0;
foreach ( $img_data_array as $img_data ) {
if ( $img_count > 0 ) {
break;
} else {
++$img_count;
$img_src = $img_data->guid;
}
} // end og:image
?>
<!DOCTYPE HTML>
<html>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=yes" />
<meta property="og:title" content="<?php echo $title; ?>" />
<meta property="og:description" content="<?php echo $descr; ?>" />
<meta property="og:locale" content="en_US" />
<meta property="og:type" content="website" />
<meta property="og:url" content="<?php echo site_url().'/your_redirect_path'.$post_id; ?>" />
<meta property="og:image" content="<?php echo $img_src; ?>" />
<meta property="og:site_name" content="Your Title" />
</html>
投稿の実際の画像、抜粋、タイトルを使用して、投稿の共有モデルを生成しました。
特別なテンプレートを作成し、これを行うためにパーマリンク構造を編集することもできますが、これは1つのページにのみ必要であり、クライアントがCMS内からテンプレートを削除したくないため、これはよりクリーンなオプションのように見えました。
EDIT 2017:
このアプローチは廃止されていることに注意してください
2016年以降のWordPressインストールについては、WordPressにPHPページを追加するにはどうすればよいですか?をご覧ください。ページデータをブラウザに出力する前に追加のパラメータを含めるため。