"ctr_state"という名前のカスタムメタフィールドを持つページがあり、それには "Arizona"のような州名が含まれています。
探しているmeta_valueと一致するアーカイブのようなページのリストを返すハイパーリンクを構築しようとしています。
例えば、
<a href="http://mydomain.com/?type=page&meta_key=ctr_state&meta_value=Arizona">Show All Arizona Pages</a>
これはうまくいきませんが、リンクとして機能させる方法を示すためだけのものです。ページにリストを表示したくない場合は、アーカイブタイプのページにリンクして、目的の状態に一致するページだけを表示するようにします。
これは可能ですか?
これは私がそれを動かした方法です:
これをfunctions.phpに追加しました:
function include_template_function( $template_path ) {
global $wp;
if ($wp->request == 'state') {
$template_path = locate_template( array ( 'state.php' ) );
}
return $template_path;
}
$state_name = $_GET['st']; //this is added to use as a global variable
WPは404ページを処理していると考えているため、これをheader.phpに追加しました
if ($wp->request == 'state') {
echo 'Member Centers in ' . $state_name . ' | ';
} else {
wp_title( '|', true, 'right' );
}
?>
</title>
これを基本テンプレート(page.php)に追加します。
<?php
$baseURL = esc_url( home_url( '/' ) );
$ak_link = $baseURL . 'state?st=Alaska'; // for each state
?>
<a href="<?php echo $ak_link; ?>">Show Alaska Pages</a>
状態問い合わせを処理するCREATED state.phpテンプレート:
<?php global $state_name; ?> ?>
<?php
$mypages = get_pages('child_of='.$parent_page_id.'&sort_order=ASC&parent='.$parent_page_id.'&meta_key=ctr_state&meta_value='.$state_name);
foreach($mypages as $page)
{
?>
... Do Stuff! ...
<?php } ?>