2017-04-11 16 views
0

WordpressとCSSにちょっと新しくて、皆さんが私を助けてくれることを願っています。 特定のカテゴリのすべての投稿のsitelogo .site-brandingの位置を変更したいと思います。Wordpressでカテゴリ内の投稿のCSSを変更する

私のstyle.css内のsite-brandingを好きなように変更できますが、すべてのページ、投稿、カテゴリを含むサイト全体に影響します。

.site-branding { 
    left: 50%; 
    position: absolute; 
    top: 40%; 
    -webkit-transform: translate(-50%, -50%); 
    -ms-transform: translate(-50%, -50%); 
    transform: translate(-50%, -50%); 

あなたが私を助けてくれることを願っています。

ありがとうございます。

+0

にソースからのリンクか何か(HTML /コード)を投稿してください:それは完了だ後は

、あなただけのこのようなニュースのカテゴリに単一のポストに.site-brandingをターゲットにすることボディクラスを使用することができますフィドル。 – dutchsociety

+0

ボディ内のクラスによって特定のカテゴリページをターゲットにできるはずです。あなたのテーマでbody_class()を使うと仮定します。 –

答えて

0

おそらくJavascriptとJqueryが必要です。

だからこれはあなたのURL構造である場合:www.mysite.com/home/category/、

(function($){ 
var $pathArray = window.location.pathname.split('/'); 
var $location = pathArray[2] 
var $branding = $(".site-branding") 
if ($location == 'cat1' || $location == 'cat2') { 
    $branding.css({ 
     'left' : '50%', 
     'position' : 'absolute', 
     'top' : '40%', 
     '-webkit-transform' : 'translate(-50%, -50%)', 
     '-ms-transform' : 'translate(-50%, -50%)', 
     'transform' : 'translate(-50%, -50%)' 
    }); 
} 
}); 

はあなたは間違いなく、そうでない場合はその(あなたのワードプレスのインスタンスに子テーマを実行していると仮定すると、あなたのheader.phpファイルの最後にこのスクリプトを追加することができます)。

0

私はあなたのheader.phpに現在の投稿がその特定のカテゴリに含まれているかどうかをチェックするPHP条件を追加し、ロゴタグの位置を変更する別のクラスを追加する必要があると思います。

<h1 class="site-branding <?php in_array(YOUR_CATEGORY_ID, get_the_category((get_the_ID())) ? ' new-posision' : '' ; ?>"></h1> 
0

Wordpressのは、bodyタグにクラスとしてカテゴリを追加することがあります。

はこのようなものになるだろう。 カテゴリのための特定のCSSルールを追加するよりもあなたのテーマに合っているなら。

.category .site-branding { 
    /* your css rules here */ 
} 
1

WordPressは、あなたのスタイルシート(通常は「カテゴリ-X」)にその名前を追加することで、カテゴリをターゲットにして、あなたが一意にあなたのCSSの任意およびすべてのカテゴリをターゲットにすることができます機能を提供します。

Here's a great step by step article for targeting this class in your css。カテゴリ-農業があなたがそうのようにターゲットとするクラスであることで

<body class="archive category category-agriculture category-40"> 

例があるかもしれない努力のため

body.category-agriculture .site-branding {color: red;} 
1

おかげで、私は少しの助けがあったし、問題を修正しました。

私は、フィルタは、単一のポストにbodyにクラスとしてカテゴリ名を追加します私のfunctions.php

function pn_body_class_add_categories($classes) { 

// Only proceed if we're on a single post page 
if (!is_single()) 
    return $classes; 

// Get the categories that are assigned to this post 
$post_categories = get_the_category(); 

// Loop over each category in the $categories array 
foreach($post_categories as $current_category) { 

    // Add the current category's slug to the $body_classes array 
    $classes[] = 'category-' . $current_category->slug; 

} 

// Finally, return the $body_classes array 
return $classes; 
} 
add_filter('body_class', 'pn_body_class_add_categories'); 

にこのフィルタを追加しました。

たとえば、カテゴリがニュースの場合は、category-newsが単一の投稿のクラスとして本文に追加されます。

.single.category-news .site-branding { 
left: 20%; 
} 
関連する問題