<?php
$next_post = get_next_post();
if( ! empty($next_post) ){
?>
<a href="<?php echo get_permalink( $next_post->ID ); ?>">
<?php echo get_the_post_thumbnail($next_post->ID); ?>
</a>
<?php
}
?>
По уроку посадил верстку на CMS, вместо заголовков(h1-h4) стоит : <?php the_title(); ?>
Видимо все <?php the_title(); ?> привязаны к одной и той же записи.
the_title()
Выводит название текущей записи в цикле. HTML заголовки тут совершенно не причем. Вы функцию можете обернуть в заголовок или передать теги заголовка в аргуметы к этой функции.Вместо параграфов : <?php the_post(); ?> <?php the_content(); ?>Что значит вместо параграфов? Идите в документацию. Использование
the_post()
ВНЕ цикла WP не имеет никакого смысла. the_content()
выводит содержимое текущей записи в цикле. Причем тут параграфы?(Документация wordpress конкретно мне ничего не даст)
<div class="single-post-inner">
<?php
if ( $single_post_array && array_key_exists( 'content', $single_post_array ) ) {
foreach ( $single_post_array as $key => $element ) {
switch($key) {
case 'content': echo $content_box; break;
case 'navigation': echo fenomen_single_post_nav(); break;
case 'related_posts': echo fenomen_single_post_related_posts(); break;
case 'author': echo fenomen_single_post_author(); break;
case 'advert': echo fenomen_single_post_advert(); break;
}
}
} else {
echo $content_box;
echo fenomen_single_post_nav();
echo fenomen_single_post_related_posts();
echo fenomen_single_post_author();
echo fenomen_single_post_advert();
}
comments_template();
?>
</div>
case 'content': echo $content_box; break;
Переменной $content_box значение присваивается выше и во всех случаях через функцию fenomen_single_post_content()
. Ищите объявление этой функции и смотрите , что она делает. Как минимум, инклудит php файл с разметкой контента поста, вот он вам и нужен. И не забывайте все делать через дочернюю тему, судя по всему ваша тема, как минимум, скачанна из репозитория, как максимум, платная.get_template_part()
в одном из основных шаблонов WP, или другим более изощренным способом) Зависит от разработчика темы. А чтобы сделать шаблон для одиночной записи кастомного типа поста, нужно писать его в файле single-слаг_типа_поста.php
woocommerce_mini_cart()
- она же используется во встроенном виджете Woo. Ну и все это сделать в шаблоне карточки товара. Как переопределять встроенные шаблоны в Woo написано в самих шаблонах. Ну и в карточку как-то вынести быстрый чекаут. Опять же смотрите плагины для покупки в один клик или что-то подобное. <?php
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
$post_type = get_post_type( $post_id );
if ($post_type=='product') {
global $product;
?>
<div class="quantity">
Количество: <button type="button" id="remove_one">-</button><input type="text" name="<?php echo esc_attr( $input_name ); ?>" value="<?php echo esc_attr( $input_value ); ?>" title="<?php echo esc_attr_x( 'Qty', 'Product quantity input tooltip', 'woocommerce' ) ?>" class="input-text qty text" size="4" pattern="<?php echo esc_attr( $pattern ); ?>" inputmode="<?php echo esc_attr( $inputmode ); ?>" /><button type="button" id="add_one">+</button>
<div class="order-summ">Сумма: <span id="orderSumm"><?php echo $product->get_price();?></span> грн.</div>
</div>
<script>
var price = jQuery('#orderSumm').html();
var quantity;
var summ;
jQuery('#remove_one').on('click',function(){
quantity = jQuery('input.qty').val();
if (quantity <= 1) {
summ = price*quantity;
jQuery('input.qty').val(quantity);
jQuery('#orderSumm').html(summ);
} else {
quantity--;
summ = price*quantity;
jQuery('input.qty').val(quantity);
jQuery('#orderSumm').html(summ);
}
});
jQuery('#add_one').on('click',function(){
quantity = jQuery('input.qty').val();
quantity++;
summ = price*quantity;
jQuery('input.qty').val(quantity);
jQuery('#orderSumm').html(summ);
});
jQuery('input.qty').keyup(function(){
var removedText = $(this).val().replace(/\D/, '');
jQuery(this).val(removedText);
quantity = jQuery(this).val();
summ = price*quantity;
jQuery('input.qty').val(quantity);
jQuery('#orderSumm').html(summ);
});
</script>
<?php } else {?>
<div class="quantity">
<input type="number" step="<?php echo esc_attr( $step ); ?>" min="<?php echo esc_attr( $min_value ); ?>" max="<?php echo esc_attr( $max_value ); ?>" name="<?php echo esc_attr( $input_name ); ?>" value="<?php echo esc_attr( $input_value ); ?>" title="<?php echo esc_attr_x( 'Qty', 'Product quantity input tooltip', 'woocommerce' ) ?>" class="input-text qty text" size="4" pattern="<?php echo esc_attr( $pattern ); ?>" inputmode="<?php echo esc_attr( $inputmode ); ?>" />
</div>
<?php }?>
get_the_terms( $product->id, 'pa_color');
add_filter( 'woocommerce_product_tabs', 'woo_remove_product_tabs', 98 );
function woo_remove_product_tabs( $tabs ) {
if ( is_user_logged_in() ) {
unset( $tabs['additional_information'] );
}
return $tabs;
}
<?php $names = array ('один атрибут', 'второй атрибут') //имена атрибутов, которые не будем показывать
foreach ( $attributes as $attribute ) :
if ( !is_user_logged_in() && in_array($attribute['name'], $names ) {
continue; //пропускаем атрибут
}
if ( empty( $attribute['is_visible'] ) || ( $attribute['is_taxonomy'] && ! taxonomy_exists( $attribute['name'] ) ) ) {
continue;
} else {
$has_row = true;
}
?>
<tr class="<?php if ( ( $alt = $alt * -1 ) == 1 ) echo 'alt'; ?>">
<th><?php echo wc_attribute_label( $attribute['name'] ); ?></th>
//далее остальной файл
<?php foreach ( get_gallery() as $attachment ) : ?>
<img src="<?php echo $attachment->large_url ?>"
alt="<?php echo $attachment->alt ?>"
/>
<?php endforeach ?>
@media
. Через условные комментарии нужно подключить respond.js и html5shiv в самом конце head, обязательно ПОСЛЕ всех своих стилей.<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->