0

私はカスタムWordPressテーマである108.179.217.161に取り組んでおり、ホームページにスライダーを設定しています。ただし、個々のページでは、注目の画像を実際のメイン画像として使用し、ホームページのローテーターを使用したいと思います。

ローテーター用のウィジェットを備えたウィジェットエリアを使用しており、ページがホームページでない場合はifステートメントを使用して区別していますが、画像が正しくレンダリングされていません。108.179.217.161/contact-us/を参照してください。

以下は私のコードです:

<div id="slider" style="position:relative;height:679px;width:100%;">
<!--<img width=1228 src="<?php bloginfo(template_url)?>/images/room-slider.png" alt="" style="position:absolute;z-index:-20;width:100%;height:679px;"/>-->
<div style="position:absolute;z-index:-20;width:100%;height:679px;overflow:hidden;">
<?php if (is_page('Home')) {?>
<?php if (!function_exists('dynamic_sidebar') || !dynamic_sidebar('Rotator')) : ?>
[ do default stuff if no widgets ]
<?php endif; ?>
<? } else {
    $thumb = get_post_meta($post->ID,'_thumbnail_id',false);
    $thumb = wp_get_attachment_image_src($thumb[0], 'header', false);
    $thumb = $thumb[0];
echo "<img src='$thumb' alt='' style='position:relative;z-index:1;width:1621px;height:679px;'";
}?>
</div>
4

1 に答える 1

0

トリッキーなビジネスそれらのワードプレスの添付ファイル!

まず、wp_get_attachment_image_src呼び出し内で「ヘッダー」画像サイズを呼び出しています。このカスタム画像サイズをfunctions.phpファイルで定義しましたか?

次に、メディアページで、ファイルが実際に投稿またはページに添付されていることを確認します。上記のコードがループしていると思いますか?それ以外の場合は、ワードプレスに現在のページ/投稿を伝える必要があります。wp_queryを参照してください。

次に、if()ステートメントが非ホームページを検出した場合、「NON HOME PAGE」などをエコーアウトできることを確認できますか?これにより、関数自体が機能することがわかりますか?

最後に、これを確認する必要がありますが、電話すると次のように思います。

$thumb = get_post_meta($post->ID,'_thumbnail_id',false);

そして、次の行でその戻り値を次のように参照します。

$thumb[0]

get_post_metaから連想配列を取得できるかどうかわかりません。コーデックスによると、彼らは「この関数はカスタムフィールドの値を返す」と言っています。

しかし、wp_get_attachment呼び出しに関して、Codexは「画像属性を持つ配列を返します」と述べています。したがって、ここで返された配列を参照するのは正しいことです。

したがって、そのための私の提案された書き直しは次のようになります。

$myID = get_post_meta($post->ID,'_thumbnail_id',false);
$myPic = wp_get_attachment_image_src($myID, 'header', false);
$thumb = $myPic[0];

お役に立てば幸いです-後でもう一度確認して、進捗状況があるかどうかを確認します

リック

于 2012-10-15T22:21:40.673 に答える