Помогите исправить ошибку в коде

ИШ
На сайте с 16.01.2014
Offline
6
736

Добрый день! Вот в шаблоне Veecard для Wordpress есть проблема в отображении навигации, троеточие отображается не там где положено. Вот скрины:

А вот код страницы pagination.php которую надо исправить:

<?php

/*******************************
PAGINATION
********************************
* Retrieve or display pagination code.
*
* The defaults for overwriting are:
* 'page' - Default is null (int). The current page. This function will
* automatically determine the value.
* 'pages' - Default is null (int). The total number of pages. This function will
* automatically determine the value.
* 'range' - Default is 3 (int). The number of page links to show before and after
* the current page.
* 'gap' - Default is 3 (int). The minimum number of pages before a gap is
* replaced with ellipses (...).
* 'anchor' - Default is 1 (int). The number of links to always show at begining
* and end of pagination
* 'before' - Default is '<div class="emm-paginate">' (string). The html or text
* to add before the pagination links.
* 'after' - Default is '</div>' (string). The html or text to add after the
* pagination links.
* 'title' - Default is '__('Pages:')' (string). The text to display before the
* pagination links.
* 'next_page' - Default is '__('&raquo;')' (string). The text to use for the
* next page link.
* 'previous_page' - Default is '__('&laquo')' (string). The text to use for the
* previous page link.
* 'echo' - Default is 1 (int). To return the code instead of echo'ing, set this
* to 0 (zero).
*
* @author Eric Martin <eric@ericmmartin.com>
* @copyright Copyright (c) 2009, Eric Martin
* @version 1.0
*
* @param array|string $args Optional. Override default arguments.
* @return string HTML content, if not displaying.
*/

function emm_paginate($args = null) {
$defaults = array(
'page' => null, 'pages' => null,
'range' => 3, 'gap' => 3, 'anchor' => 1,
'before' => '<div class="emm-paginate">', 'after' => '</div>',
'title' => __('Pages:'),
'nextpage' => __('&rsaquo;'), 'previouspage' => __('&lsaquo;'),
'echo' => 1
);

$r = wp_parse_args($args, $defaults);
extract($r, EXTR_SKIP);

if (!$page && !$pages) {
global $wp_query;

$page = get_query_var('paged');
$page = !empty($page) ? intval($page) : 1;

$posts_per_page = intval(get_query_var('posts_per_page'));
$pages = intval(ceil($wp_query->found_posts / $posts_per_page));
}

$output = "";
if ($pages > 1) {
$output .= "$before<span class='emm-title'>$title</span>";
$ellipsis = "<span class='emm-gap'>...</span>";

if ($page > 1 && !empty($previouspage)) {
$output .= "<a href='" . get_pagenum_link($page - 1) . "' class='emm-prev'>$previouspage</a>";
}

$min_links = $range * 2 + 1;
$block_min = min($page - $range, $pages - $min_links);
$block_high = max($page + $range, $min_links);
$left_gap = (($block_min - $anchor - $gap) > 0) ? true : false;
$right_gap = (($block_high + $anchor + $gap) < $pages) ? true : false;

if ($left_gap && !$right_gap) {
$output .= sprintf('%s%s%s',
emm_paginate_loop(1, $anchor),
$ellipsis,
emm_paginate_loop($block_min, $pages, $page)
);
}
else if ($left_gap && $right_gap) {
$output .= sprintf('%s%s%s%s%s',
emm_paginate_loop(1, $anchor),
$ellipsis,
emm_paginate_loop($block_min, $block_high, $page),
$ellipsis,
emm_paginate_loop(($pages - $anchor + 1), $pages)
);
}
else if ($right_gap && !$left_gap) {
$output .= sprintf('%s%s%s',
emm_paginate_loop(1, $block_high, $page),
$ellipsis,
emm_paginate_loop(($pages - $anchor + 1), $pages)
);
}
else {
$output .= emm_paginate_loop(1, $pages, $page);
}

if ($page < $pages && !empty($nextpage)) {
$output .= "<a href='" . get_pagenum_link($page + 1) . "' class='emm-next'>$nextpage</a>";
}

$output .= $after;
}

if ($echo) {
echo $output;
}

return $output;
}

/**
* Helper function for pagination which builds the page links.
*
* @access private
*
* @author Eric Martin <eric@ericmmartin.com>
* @copyright Copyright (c) 2009, Eric Martin
* @version 1.0
*
* @param int $start The first link page.
* @param int $max The last link page.
* @return int $page Optional, default is 0. The current page.
*/
function emm_paginate_loop($start, $max, $page = 0) {
$output = "";
for ($i = $start; $i <= $max; $i++) {
$output .= ($page === intval($i))
? "<span class='emm-page emm-current'>$i</span>"
: "<a href='" . get_pagenum_link($i) . "' class='emm-page'>$i</a>";
}
return $output;
}

function post_is_in_descendant_category( $cats, $_post = null )
{
foreach ( (array) $cats as $cat ) {
// get_term_children() accepts integer ID only
$descendants = get_term_children( (int) $cat, 'category');
if ( $descendants && in_category( $descendants, $_post ) )
return true;
}
return false;
}
?>

Подскажите пожалуйста что сменить в этом коде чтоб троеточие отображалось как надо, после 7 на первом скрине и после 1 на втором соответственно а не так как сейчас. Очень надеюсь на ваше понимание и помощь. Зарание БОЛЬШОЕ СПАСИБО!

ДП
На сайте с 23.11.2009
Offline
203
#1

Посмотрите (и сюда приведите), какой html-код у вас на месте пагинации. Сдается мне, что проблема не в генерации, а в стилях, из-за которых троеточие оказывается слева.

дани мапов
На сайте с 06.09.2012
Offline
204
#2

А где скрины?

Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
ДП
На сайте с 23.11.2009
Offline
203
#3

Есть у ТС скрины в посте -

http://shutak.com.ua/Skrin.png

http://shutak.com.ua/Skrin2.png

ИШ
На сайте с 16.01.2014
Offline
6
#4
Дикий пионер:
Посмотрите (и сюда приведите), какой html-код у вас на месте пагинации. Сдается мне, что проблема не в генерации, а в стилях, из-за которых троеточие оказывается слева.

Вот такой код пагинации:

<!-- begin #pagination -->

<?php if (function_exists("emm_paginate")) {
emm_paginate();
} else { ?>
<div class="navigation">
<div class="alignleft"><?php next_posts_link('Older') ?></div>
<div class="alignright"><?php previous_posts_link('Newer') ?></div>
</div>
<?php } ?>
<!-- end #pagination -->


---------- Добавлено 20.10.2014 в 16:13 ----------

Дикий пионер:
Посмотрите (и сюда приведите), какой html-код у вас на месте пагинации. Сдается мне, что проблема не в генерации, а в стилях, из-за которых троеточие оказывается слева.
Иван ШУТАК:
Вот такой код пагинации:
<!-- begin #pagination -->

<?php if (function_exists("emm_paginate")) {
emm_paginate();
} else { ?>
<div class="navigation">
<div class="alignleft"><?php next_posts_link('Older') ?></div>
<div class="alignright"><?php previous_posts_link('Newer') ?></div>
</div>
<?php } ?>
<!-- end #pagination -->

И вот ещё код стиля CSS


.emm-paginate, .navigation {
display: block;
margin: 20px 0;
}
.emm-title,
.emm-page,
.emm-next,
.emm-prev {
display: block;
float: left;
margin-right: 5px;
padding:5px 10px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
background: #000;
}
.emm-title {
display: none;
}
.emm-page {

}
.emm-title:hover,
.emm-page:hover,
.emm-next:hover,
.emm-prev:hover {
background: #615951;
}
ДП
На сайте с 23.11.2009
Offline
203
#5

Иван ШУТАК, что-то я ступил, мог бы и сам на сайт зайти :)

В общем в css добавьте:

.emm-gap{

float:left;

}

для правильного позиционирования, и остальных стилей по вкусу для отступов и т.п.

ИШ
На сайте с 16.01.2014
Offline
6
#6
Дикий пионер:
Иван ШУТАК, что-то я ступил, мог бы и сам на сайт зайти :)
В общем в css добавьте:
.emm-gap{
float:left;
}
для правильного позиционирования, и остальных стилей по вкусу для отступов и т.п.

Добавил я в css:

.emm-gap{

float:left;

}

ничего не изменилось. Я полностю убрал троеточие и все, пускай будет без троеточия, канешно хотелось чтоб было как надо, но видно не судьба :( Спасибо Вам большое за помощь.

ДП
На сайте с 23.11.2009
Offline
203
#7

Хм, селектор может неправильно написал, тогда вот так попробуйте в плагине пропишите:

$ellipsis = "<span class='emm-gap' style="float:left;">...</span>";

ИШ
На сайте с 16.01.2014
Offline
6
#8
Дикий пионер:
Хм, селектор может неправильно написал, тогда вот так попробуйте в плагине пропишите:
$ellipsis = "<span class='emm-gap' style="float:left;">...</span>";

Нифига, вобще ошибку выбило.

---------- Добавлено 20.10.2014 в 19:13 ----------

Дикий пионер, Фух получилось, аж смешно сейчас. Проблема была в css. Вы всё правильно говорили, я не правильно вставлял. Я вставлял новую строку:

.emm-gap{

float:left;

}

а надо было просто добавить здесь строчку .emm-gap,:


.emm-title,
.emm-page,
.emm-next,
.emm-next,
.emm-prev {
display: block;
float: left;
margin-right: 5px;
padding:5px 10px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
background: #000;
}
ДП
На сайте с 23.11.2009
Offline
203
#9

Ну вообще я не совсем это имел в виду, потому что такие стили добавляют еще и рамочку черную вокруг троеточия, а вроде как её быть не должно, поэтому я и предлагал отдельные селектор. Но если вас все устраивает - то и ок.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий