2017-09-23 9 views
0

has_post_thumbnail()を使用してブログ投稿にサムネイル画像があるかどうかを確認しています。サムネイル画像がない場合、のをからblockに変更するためにJavaScriptスクリプト関数が呼び出されました。PHPでjQueryを呼び出そうとしていません - 動作していませんか?

これを行うには私は条件付きのステートメントでJavaScript関数を使用しています。以下のように:

content.php

<div class="blog-post"> 
<?php /* POST FEATURED THUMBNAIL*/ 
    if(has_post_thumbnail()) { ?> 

     <div class="post-thumbnail"> 
      <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('feature-image'); ?></a> 
     </div> 

<?php } else { ?> 

     <script type="text/javascript"> alert("asdsas"); xfullWidthPostWithThumbnail(); </script> 

    <?php } ?> 

    <article class="post-article para-text"> 
     <p id="blog-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p> 
     <p id="blog-info-text"><?php the_time('F jS, Y'); ?> | By <a href="<?php echo get_author_posts_url(get_the_author_meta('ID')); ?>"><?php the_author();?></a> | Posted In 
      <?php 
       $categories = get_the_category(); 
       $seperator = ", "; 
       $output = ''; 
       if($categories) { 
        foreach ($categories as $category) { 
         $output .= '<a href="'. get_category_link($category->term_id) .'">' . $category->cat_name . '</a>' . $seperator; 
        } 
       echo trim($output, $seperator); 
       } 

      ?></p> 


     <p><?php echo get_the_excerpt(); ?> <a href="<?php the_permalink(); ?>"> Read more &raquo;</a></p> 
     <p></p>    


    </article> 
</div> 

JavaScript関数

/* INDEX PAGE -- ADD DISPLAY BLOCK FOR FULL WIDTH OF POST EXCERPT IF NOT POST THUMBNAIL */ 
function xfullWidthPostWithThumbnail() { 
    alert("hhhhhhhhhhhhhhhh"); 
     jQuery(".blog-post").css("display","block !important"); 
     jQuery(".blog-post").css("color","red !important"); 

} 

問題:現在のエラー私は取得しています:

Uncaught ReferenceError: xfullWidthPostWithThumbnail is not defined at (index):155

のはなぜです関数n定義されていますか?何か案は??

+0

'xfullWidthPostWithThumbnail'はどこに定義されていますか?また、なぜJSでこれを行うのですか?それはクライアント側で不要な処理を追加することになります。それはPHPで直接行うのがはるかに望ましいでしょう。 – FluffyKitten

+0

どうしたらいいですか? wp_enqueue_script:\t wp_enqueue_script( 'script_js'、get_template_directory_uri()。 '/ js/ipe_script.js'、array( 'jquery')、 '2017'、true);これはWordPressにあります。 – Shaz

+0

スクリプトは適切にリンクされており、機能しているのではなく、機能しているかテストされています – Shaz

答えて

2

クライアントサイドで不要な処理を追加するためにJavascriptを使用する必要はありません。

.blog-postのCSSを変更する必要があるので、別のCSSクラスを作成し、サムネイルがない場合は適用してください。

  1. あなたはサムネイルが存在する場合
  2. チェックを適用するルールのための新しいCSSクラスを作成します。
  3. それがない場合は表示されない場合は、divの
  4. に新しいクラスを追加し、

通常のCSSのように表示:

は、あなたのスタイルを追加するno_thumbnailというクラスを作成します。 FYI !importantは使用しないでください。

.blog-post.no_thumbnail{ 
    display: block !important; 
    color: red !important; 
} 

PHP:

/* declare a variable for your extra class */ 
$blogpostclass = ""; 
/* If thumbnail doesn't exist, add your 'no_thumbnail' class */ 
if(!has_post_thumbnail()) $blogpostclass = "no_thumbnail"; ?> 

/* add the class variable to your blog-post div */ 
<div class="blog-post <?php echo $blogpostclass; ?>"> 

/* If there is a thumbnail, add it as usual */ 
<?php 
    if(has_post_thumbnail()) { ?> 

     <div class="post-thumbnail"> 
      <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('feature-image'); ?></a> 
     </div> 
    <?php } ?> 
[...] 
</div> 
+0

if(!has_post_thumbnail()) 'にするべきではありませんか? *( '!')* –

+0

@LouysPatriceBessetteいいキャッチ!はい、そうです、それは私が意味することですが、私はコードをテストしていないので、私はそれをキャッチしませんでした。私はそれを修正するために私の答えを更新します。 – FluffyKitten

+0

@FluffyKittenこれはばかげて簡単です。私はJavaScript JavaScript JavaScriptを考えていると信じられない。 PHPはこれで十分です。これを初めてお世話になりました! – Shaz

-1

あなたがこの方法で $( ""。ブログポスト "")CSS行う必要があります( "表示"、 "!ブロックを重要");

関連する問題