Эй, ребята, у меня возникли проблемы с кодированием шорткода тем. Я хочу, чтобы код отображал div с функцией счетчика просмотров, а затем ссылку с содержимым кодов в качестве URL.
view_count (); Функция прекрасно работает при вызове внутри файлов темы, и мне действительно удалось показать ее, но затем она отображалась перед the_content (); поста (серая полоса), когда я хотел его в контенте элемента.
(1) Вот что у меня есть:
function video_block( $atts, $content = null ) {
return '<div class="video-block"><span class="ViewCount"><?php the_views(); ?></span> <a class="dl-source" href="' . $content . '">Link</a></div>';
}
(2) Вот код, который отображается в верхней части страницы:
function video_block( $atts, $content = null ) { ?>
<div class="video-block"><span class="ViewCount"><?php the_views(); ?></span> <a class="dl-source" href="<?php echo $content; ?>">Link</a></div>
<?php }
(3) Этот код отображает просмотры выше содержимого и ссылку в правильном месте:
function video_block( $atts, $content = null ) {
$views = the_views();
return '<div class="video-block"><span class="ViewCount"><?php $views; ?></span> <a class="dl-source" href="<?php echo $content; ?>">Link</a></div>';
}
Я где-то читал на форумах Wordpress, что вы должны возвращать (вместо эха) значения внутри функций, но это нарушает его, отображая количество просмотров, пропуская html и выплевывая содержимое $.
Вот ссылка на соответствующую страницу: http://nvrt.me/4Qf1 (в настоящее время используется код из блока № 2)
У меня кончается полночное масло. Буду очень признателен, если кто-нибудь сможет мне помочь.
EDIT:
Вот код для the_views (); функция. Я вижу, что это отражено, но когда изменено, чтобы возвратиться, это не показывает это вообще.
### Function: Display The Post Views
function the_views($display = true, $prefix = '', $postfix = '', $always = false) {
$post_views = intval(post_custom('views'));
$views_options = get_option('views_options');
if ($always || should_views_be_displayed($views_options)) {
$output = $prefix.str_replace('%VIEW_COUNT%', number_format_i18n($post_views), $views_options['template']).$postfix;
if($display) {
echo apply_filters('the_views', $output);
} else {
return apply_filters('the_views', $output);
}
}
elseif (!$display) {
return '';
}
}