0 レビュー
1 回答
php-投稿カテゴリに基づくカスタムボディタグ
投稿の種類とカテゴリに応じて、本文クラスを追加する必要があります。
これを試しましたが、うまくいかないようです。
add_filter( 'body_class', 'custom_body_class' );
function custom_body_class( $classes ) {
global $post;
if ( 'service_provider' == $post->post_type AND 'educational_services' == $post->post_category ) {
$classes[] = 'body-purple';
return $classes;
}
}
これはこのエラーを返します-
警告:join()[function.join]:394行目の/home/davedevj/public_html/wp-includes/post-template.phpで無効な引数が渡されましたclass = "">
それで私はいくつかの追加のコードを入れました:
add_filter( 'body_class', 'custom_body_class' );
function custom_body_class( $classes ) {
global $post;
if ( 'service_provider' == $post->post_type AND 'educational_services' == $post->post_category ) {
$classes[] = 'body-purple';
return $classes;
}
else {
$classes[] = '';
return $classes;
}
}
可能であれば、elseステートメントなしで実行する必要があります。
しかし、主な問題は、これでも機能しないことです。 post_categoryの部分をそのままにして、ANDを付けないようにしました。条件付きの場合だけですが、運がありません。
わからない
0
レビュー
答え :
解決策:
post_categoryプロパティがないため、コードは失敗します。これが私のバージョンです:
function wpse_custom_body_class( $classes ) {
// Check user is on a single service_provider post.
if ( ! is_singular( 'service_provider' ) )
return $classes;
// Get categories assigned to post.
$categories = get_the_category();
// Check categories were found.
if ( ! $categories )
return $classes;
foreach ( $categories as $category ) {
if ( 'educational_services' == $category->name ) {
$classes[] = 'body-purple';
}
}
return $classes;
}
add_filter( 'body_class', 'wpse_custom_body_class' );
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。