関連コンテンツ用の 3 つのメタ ボックスを備えたクライアント用の CMS セットアップがあります。クライアントがしなければならないことは、ページ スラッグ (それぞれに 1 つ) を入力することだけで、サイトは 3 つの関連する製品を返します。
クライアントが誤ってナメクジの 1 つをスペルミスするまで、すべてが正常に機能していました。このスポットに対して何も返さない代わりに、WordPress は約 6 つのランダムな項目を返します。
FUNCTIONS.PHP:
function get_ID_by_page_name($page_name) {
global $wpdb;
$page_name_id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_name = '".$page_name."' AND post_type = 'page'");
return $page_name_id;
}
テンプレート ファイル内:
$goesWith = get_post_meta($post->ID, 'goes_with', true);
if (($goesWith) or ($goesWith2) or ($goesWith3)) {
echo "<div class='goes-with'>";
echo "<h2>Goes Great With:</h2>";
// OPTION ONE
$pageID = get_ID_by_page_name($goesWith);
if ($goesWith) {
$args = array(
'post_type' => 'page',
'page_id' => $pageID,
'post_status' => 'publish'
);
query_posts( $args );
while(have_posts()) {
the_post(); // vital
echo "<div class='post-product'>";
echo "<a href=";
the_permalink();
echo ">";
thumbPath(140, 140);
echo "</a><a href=";
the_permalink();
echo "><p>";
the_title();
echo "</p></a></div><!--end post-product-->";
}
}
else {
echo "";
}
wp_reset_query();