Как вставить 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/

Author: AndrettiMilas, 2012-11-11

3 answers

Вы могли бы сделать это с помощью jQuery. Вот так...

$("a:contains('Newer')").addClass('YourNewerClassHere');
$("a:contains('Older')").addClass('YourOlderClassHere');
 2
Author: Matthew Woodard, 2012-11-11 17:37:50

Я бы использовал прагматичный подход и добавил пользовательский класс в элемент контейнера:

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>';
}
 3
Author: fuxia, 2012-11-11 23:06:44

Функция paginate_links не принимает параметры для самого стиля CSS, и я не уверен, что это очень хорошая идея - использовать некоторые CSS из вашей пользовательской функции.

Если у вас отображаются разные элементы в зависимости от параметров, почему бы вам не добавить CSS для них обоих в ваш основной файл CSS? Тогда элемент будет стилизован по умолчанию, если он напечатан, и вообще не будет виден, если нет (из-за вашего состояния)?

Если вы по какой-либо причине хотите сохранить файл CSS коротким или имея большое количество селекторов для стиля, вы можете вызвать внутри своей условной функции wp_enqueue_style, чтобы загрузить дополнительную таблицу стилей с изменениями. Существует аргумент в пользу зависимости, чтобы это можно было загрузить после CSS вашей темы.

Для некоторых трюков черной магии вы можете подключить пользовательский CSS к wp_head и распечатать CSS там, но это определенно НЕ лучшая практика, а скорее что-то, что можно использовать для очень динамичных пользовательских опций (где вы можете извлекать данные из параметров базы данных или экспортировать файлы для использования в качестве CSS-скриптов).

 0
Author: Mario Peshev, 2012-11-11 12:29:48