У меня нет полностью удовлетворительного решения c для Genesis, и мне было бы любопытно узнать, что говорит сама StudioPress, но у меня есть решения WordPress.
Во-первых, чтобы использовать Хук Genesis и условие, вам нужно обернуть его в функцию:
Процитируем Кодекс: «Предупреждение: вы можете использовать теги условного запроса только после хука действия posts_selection в WordPress (хук действия wp - это первый, с помощью которого вы можете использовать эти условные выражения). Для тем это означает, что условный тег никогда не будет работать должным образом, если вы используете его в теле функций. php, т.е. вне функции. "
https://codex.wordpress.org/Conditional_Tags
Следующие действия позволяют удалить отрывок на указанной странице архива категории:
add_action( 'loop_start', 'remove_content_on_category_pages' ) ;
function remove_content_on_category_pages() {
if ( is_category( '5' ) ) {
remove_action( 'genesis_entry_content', 'genesis_do_post_content' );
}
}
Однако условие in_category()
- что должно помочь с содержанием записи, когда оно появляется в других архивах (категории, блог и т. д. c.) - похоже, не работает.
Чтобы получить желаемые результаты, как я их понимаю - нет размещать контент, в этой реализации «отрывок», для этой категории на любой странице архива, но с сохранением его для отдельных сообщений - вы можете вернуться к надежному the_content filter
, но обратите внимание, что the_content
может быть сложным и мощный инструмент, подверженный неожиданным побочным эффектам. Тем не менее, на ванильной установке Genesis были выполнены следующие тесты:
add_filter( 'the_content', 'test_gen_content' ) ;
function test_gen_content( $content ) {
/**
apply to all secondary queries don't apply if single page or post, or in
admin, otherwise obliterate - can use is_single() instead of is_singular()
if only posts are at issue
**/
if ( ! is_singular() && ! is_admin() && in_category( '157' ) ) {
return '' ;
}
return $content ;
}
Однако я должен сказать, что, учитывая особенности и сложности структуры Genesis, а также особенности запроса, в дикой природе я был бы очень соблазнен использовать клудж CSS, сформированный в соответствии с требованиями - по крайней мере, без прямой инструкции или вмешательства со стороны знатока Genesis или самого StudioPress. Я не могу сказать, нужно ли вам доработать CSS в соответствии с вашей конкретной установкой, но на самом деле это могло бы быть намного проще, если бы затем отсортировать PHP даже с правильными крючками и c.
//substitute appropriate category slug for "development-forums"
.home .category-development-forums .entry-content,
.blog .category-development-forums .entry-content,
.archive .category-development-forums .entry-content
{
display: none;
}