<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<header class="entry-header">
<?php
if ( is_singular() ) :
the_title( '<h1 class="entry-title">', '</h1>' );
else :
the_title( '<h2 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>' );
endif;
if ( 'post' === get_post_type() ) :
?>
<div class="entry-meta">
<?php
halo_halo_halo_posted_on();
halo_halo_halo_posted_by();
?>
</div><!-- .entry-meta -->
<?php endif; ?>
</header><!-- .entry-header -->
<?php halo_halo_halo_post_thumbnail(); ?>
<div class="entry-content">
<?php
the_content(
sprintf(
wp_kses(
/* translators: %s: Name of current post. Only visible to screen readers */
__( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'halo-halo-halo' ),
array(
'span' => array(
'class' => array(),
),
)
),
wp_kses_post( get_the_title() )
)
);
wp_link_pages(
array(
'before' => '<div class="page-links">' . esc_html__( 'Pages:', 'halo-halo-halo' ),
'after' => '</div>',
)
);
?>
</div><!-- .entry-content -->
<footer class="entry-footer">
<?php halo_halo_halo_entry_footer(); ?>
</footer><!-- .entry-footer -->
</article><!-- #post-<?php the_ID(); ?> -->
add_theme_support( 'post-formats', array( 'aside', 'gallery', 'chat', 'link', 'image', 'quote', 'status', 'video', 'audio' ) );
. Подскажите — что ещё нужно добавить и откуда скопировать. Что до кода пагинации, то я использую одну из его вариаций — «Kama Pagenavi»:function kama_pagenavi( $args = [], $wp_query = null ){
// параметры по умолчанию
$default = [
'before' => '', // Текст до навигации.
'after' => '', // Текст после навигации.
'echo' => true, // Возвращать или выводить результат.
'text_num_page' => '', // Текст перед пагинацией.
// {current} - текущая.
// {last} - последняя (пр: 'Страница {current} из {last}' получим: "Страница 4 из 60").
'num_pages' => 3, // Сколько ссылок показывать.
'step_link' => 100, // Ссылки с шагом (если 10, то: 1,2,3...10,20,30. Ставим 0, если такие ссылки не нужны.
'dotright_text' => '', // Промежуточный текст "до".
'dotright_text2' => '', // Промежуточный текст "после".
'back_text' => '<', // Текст "перейти на предыдущую страницу". Ставим 0, если эта ссылка не нужна.
'next_text' => '>', // Текст "перейти на следующую страницу". Ставим 0, если эта ссылка не нужна.
'first_page_text' => '|<', // Текст "к первой странице". Ставим 0, если вместо текста нужно показать номер страницы.
'last_page_text' => '>|', // Текст "к последней странице". Ставим 0, если вместо текста нужно показать номер страницы.
];
// Cовместимость с v2.5: kama_pagenavi( $before = '', $after = '', $echo = true, $args = array() )
$fargs = func_get_args();
if( $fargs && is_string( $fargs[0] ) ){
$default['before'] = isset($fargs[0]) ? $fargs[0] : '';
$default['after'] = isset($fargs[1]) ? $fargs[1] : '';
$default['echo'] = isset($fargs[2]) ? $fargs[2] : true;
$args = isset($fargs[3]) ? $fargs[3] : array();
$wp_query = $GLOBALS['wp_query']; // после определения $default!
}
if( ! $wp_query ){
wp_reset_query();
global $wp_query;
}
if( ! $args ){
$args = [];
}
if( $args instanceof WP_Query ){
$wp_query = $args;
$args = [];
}
/**
* Позволяет установить параметры по умолчанию.
* @param array $default_args
*/
$default = apply_filters( 'kama_pagenavi_args', $default );
$rg = (object) array_merge( $default, $args );
$paged = (int) $wp_query->get( 'paged' ) ?: 1;
$max_page = $wp_query->max_num_pages;
// navigation no needed
if( $max_page < 2 ){
return '';
}
$start_page = $paged - $half_page_start; // первая страница
$end_page = $paged + $half_page_end; // последняя страница (условно)
$pages_to_show = (int) $rg->num_pages;
$pages_to_show_minus_1 = $pages_to_show-1;
$half_page_start = floor( $pages_to_show_minus_1 / 2 ); // сколько ссылок до текущей страницы
$half_page_end = ceil( $pages_to_show_minus_1 / 2 ); // сколько ссылок после текущей страницы
if( $start_page <= 0 ){
$start_page = 1;
}
if( ( $end_page - $start_page ) != $pages_to_show_minus_1 ){
$end_page = $start_page + $pages_to_show_minus_1;
}
if( $end_page > $max_page ){
$start_page = $max_page - $pages_to_show_minus_1;
$end_page = (int) $max_page;
}
if( $start_page <= 0 ){
$start_page = 1;
}
// создаём базу чтобы вызвать get_pagenum_link один раз
$link_base = str_replace( PHP_INT_MAX, '___', get_pagenum_link( PHP_INT_MAX ) );
$first_url = get_pagenum_link( 1 );
if( false === strpos( $first_url, '?' ) ){
$first_url = user_trailingslashit( $first_url );
}
// собираем елементы
$els = [];
if( $rg->text_num_page ){
$rg->text_num_page = preg_replace( '!{current}|{last}!', '%s', $rg->text_num_page );
$els['pages'] = sprintf( '<span class="pages">' . $rg->text_num_page . '</span>', $paged, $max_page );
}
// в начало
if( $start_page >= 2 && $pages_to_show < $max_page ){
$els['first'] = '<a class="first" href="' . $first_url . '">' . ( $rg->first_page_text ?: 1 ) . '</a>';
if( $rg->dotright_text && $start_page !== 2 ){
$els[] = '<span class="extend">' . $rg->dotright_text . '</span>';
}
}
// назад
if( $rg->back_text && $paged !== 1 ){
$els['prev'] = '<a class="prev" href="' . ( ( $paged - 1 ) == 1 ? $first_url : str_replace( '___', ( $paged - 1 ), $link_base ) ) . '">' . $rg->back_text . '</a>';
}
// пагинация
for( $i = $start_page; $i <= $end_page; $i++ ){
if( $i === $paged ){
$els['current'] = '<span class="current">' . $i . '</span>';
}
elseif( $i === 1 ){
$els[] = '<a href="' . $first_url . '">1</a>';
}
else{
$els[] = '<a href="' . str_replace( '___', $i, $link_base ) . '">' . $i . '</a>';
}
}
// ссылки с шагом
$dd = 0;
if( $rg->step_link && $end_page < $max_page ){
for( $i = $end_page + 1; $i <= $max_page; $i++ ){
if( 0 === ( $i % $rg->step_link) && $i !== $rg->num_pages ){
if( ++$dd === 1 ){
$els[] = '<span class="extend">' . $rg->dotright_text2 . '</span>';
}
$els[] = '<a href="' . str_replace( '___', $i, $link_base ) . '">' . $i . '</a>';
}
}
}
// вперед
if( $rg->next_text && $paged !== $end_page ){
$els['next'] = sprintf( '<a class="next" href="%s">%s</a>',
str_replace( '___', ( $paged + 1 ), $link_base ),
$rg->next_text
);
}
// в конец
if( $end_page < $max_page ){
if( $rg->dotright_text && $end_page !== ( $max_page - 1 ) ){
$els[] = '<span class="extend">' . $rg->dotright_text2 . '</span>';
}
$els['last'] = sprintf( '<a class="last" href="%s">%s</a>',
str_replace( '___', $max_page, $link_base ),
$rg->last_page_text ?: $max_page
);
}
/**
* Allow to change pagenavi elements.
* @param array $elements
*/
$els = apply_filters( 'kama_pagenavi_elements', $els );
$html = $rg->before . '<div class="wp-pagenavi">' . implode( '', $els ) . '</div>' . $rg->after;
/**
* Allow to change final output HTML code of pagenavi.
* @param array $html
*/
$html = apply_filters( 'kama_pagenavi', $html );
if( ! $rg->echo ){
return $html;
}
echo $html;
}
<?php kama_pagenavi(); ?>
hyphens:auto;
пока хватает. Но рандомные добавки
между слов в заголовках h1
— это уже критично. Они растягиваются и выходят за пределы блоков. Какая-нибудь «ЭНДОСКОПИЧЕСКАЯ РЕТРОГРАДНАЯ ХОЛАНГИОПАНКРЕАТОГРАФИЯ» рушит всё. Разумеется, в первую очередь экраны мобилок. <wbr>
. Что конечно костыль. Но хотя бы так. Fatal error: Uncaught TypeError: call_user_func_array(): Argument #1 ($callback) must be a valid callback, function "some_plugin_name_create_folder" not found or invalid function name in site.com\wp-includes\class-wp-hook.php:310 Stack trace: #0 site.com\wp-includes\class-wp-hook.php(334): WP_Hook->apply_filters() #1 site.com\wp-includes\plugin.php(517): WP_Hook->do_action() #2 site.com\wp-admin\plugins.php(194): do_action() #3 {main} thrown in site.com\wp-includes\class-wp-hook.php on line 310
function some_plugin_name_get_remote_address() {
$remote_addr = getenv('HTTP_CLIENT_IP')?getenv('HTTP_CLIENT_IP'):
getenv('HTTP_X_FORWARDED_FOR')?getenv('HTTP_X_FORWARDED_FOR'):
getenv('HTTP_X_FORWARDED')?getenv('HTTP_X_FORWARDED'):
getenv('HTTP_FORWARDED_FOR')?getenv('HTTP_FORWARDED_FOR'):
getenv('HTTP_FORWARDED')?getenv('HTTP_FORWARDED'):getenv('REMOTE_ADDR');
$remote_addr = str_replace('for=', '', $remote_addr);
return $remote_addr;
}
$remote_addr = getenv('HTTP_CLIENT_IP')?getenv('HTTP_CLIENT_IP'):
(Fatal error: Unparenthesized `a ? b : c ? d : e` is not supported. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)`
)input
был лишним.input::-webkit-input-placeholder{font-family:monospace;font-size:1.6rem;color:#444}
input::-moz-placeholder{font-family:monospace;font-size:1.6rem;color:#444}
input:-moz-placeholder{font-family:monospace;font-size:1.6rem;color:#444}
input:-ms-input-placeholder{font-family:monospace;font-size:1.6rem;color:#444}
input::-ms-input-placeholder{font-family:monospace;font-size:1.6rem;color:#444}
­
(\u00AD
). Теперь прибил скрипт и всё заиграло. Сначала вообще грешил на замечательный плагин WP-Typography...