function my_custom_markup( $item_output, $item, $depth, $args ) {
// Отлавливаем элемент меню с нашим классом
if ( in_array( 'has-icon-login', $item->classes ) ) {
// Меняем разметку
return str_replace(
'<a',
'<i class="icon-user"></i><a',
$item_output
);
}
return $item_output;
}
add_filter( 'walker_nav_menu_start_el', 'my_custom_markup', 100, 4 );
// 1. Просим WordPress выполнить только загрузку ядра (ключевого функционала)
define( 'SHORTINIT', true );
// 2. Загрузить среду WordPress
require( '/path/to/wp-load.php' );
// 3. Теперь доступна глобальная переменная $wpdb для работы с БД WordPress
$posts = $wpdb->get_results('SELECT * FROM '. $wpdb->prefix.'posts');
<?php
$step = 1;
while( have_posts() ) :
the_post();
if( $step % 9 == 0 ) { // каждому 9му прописываем кастомный класс
$class = 'nine';
} elseif( ( $step % 5 ) % 2 !== 0 ) { // тут хитрее, каждому 5му через один шаг (5, 15, 25...)
$class = 'five';
} else {
$class = '';
}
?>
<!-- A тут уже выводим элемент и дописываем класс -->
<div class="<?php echo $class; ?>">
...
</div>
<?php
// Увеличиваем счетчик
$step ++;
endwhile;
unset( $step ); // Не обязательно, но лучше такие вещи подчищать. Нано-оптимизация :)
?>
/* Каждый 9й элемент */
.item:nth-child(9n) {
...
}
/* Каждый 5й, но через один (нечетный) */
.item:nth-child(5n):nth-child(odd) {
...
}
if( ! empty( $image_field ) ) {
// Переменная содержит ссылку на загруженное изображение
return '<img src="' . $image_field . '">';
} else {
// Переменная пустая, выводим стандартную картинку
return '<img src="' . get_template_directory_uri() . '/images/default_logo.png">';
}