Как вставить CSS в функцию?
У меня есть пользовательская функция, которая позволяет пользователям выбирать между следующими/предыдущими ссылками и разбиением на страницы, и я пытаюсь добавить классы CSS к следующим/предыдущим ссылкам. Я пробовал это несколькими способами и продолжаю разбивать свою тему.
Как вставить классы CSS в предыдущую и следующую ссылку?
// Pagination
function my_theme_navigation()
{
global $shortname;
if( get_option( $shortname . '_next_prev_or_paginate' ) == 'Next' ) :
// the block for next-prev navigation
previous_posts_link ('Newer');
next_posts_link('Older');
else :
// the block for pagination
global $wp_query;
$big = 999999999; // need an unlikely integer
echo paginate_links(
array(
'base' => str_replace( $big, '%#%', get_pagenum_link( $big ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $wp_query->max_num_pages
)
);
endif;
}
Для примера проверьте нижнюю часть этой страницы: http://themeforward.com/demo2/
3 answers
Вы могли бы сделать это с помощью jQuery. Вот так...
$("a:contains('Newer')").addClass('YourNewerClassHere');
$("a:contains('Older')").addClass('YourOlderClassHere');
Я бы использовал прагматичный подход и добавил пользовательский класс в элемент контейнера:
function my_theme_navigation()
{
if ( empty( $GLOBALS['paged'] ) or 2 > $GLOBALS['paged'] )
return;
// Yes, we have at least one link.
echo '<div class="custom">';
// do the work …
echo '</div>';
}
Функция paginate_links
не принимает параметры для самого стиля CSS, и я не уверен, что это очень хорошая идея - использовать некоторые CSS из вашей пользовательской функции.
Если у вас отображаются разные элементы в зависимости от параметров, почему бы вам не добавить CSS для них обоих в ваш основной файл CSS? Тогда элемент будет стилизован по умолчанию, если он напечатан, и вообще не будет виден, если нет (из-за вашего состояния)?
Если вы по какой-либо причине хотите сохранить файл CSS коротким или имея большое количество селекторов для стиля, вы можете вызвать внутри своей условной функции wp_enqueue_style
, чтобы загрузить дополнительную таблицу стилей с изменениями. Существует аргумент в пользу зависимости, чтобы это можно было загрузить после CSS вашей темы.
Для некоторых трюков черной магии вы можете подключить пользовательский CSS к wp_head
и распечатать CSS там, но это определенно НЕ лучшая практика, а скорее что-то, что можно использовать для очень динамичных пользовательских опций (где вы можете извлекать данные из параметров базы данных или экспортировать файлы для использования в качестве CSS-скриптов).