<?php if ( in_category( array('news', 'articles') )) { ?>
<h4><?php echo get_the_author() ?></h4>
<?php } ?>
function post_by_slug( $atts ) {
$a = shortcode_atts( array(
'slug' => ''
), $atts );
$slug = explode(',', $a['slug']);
$args = array(
'post_name__in' => $slug,
'post_type' => 'page',
'post_status' => 'publish',
);
$html = '';
$my_posts = get_posts($args);
if( $my_posts ) :
foreach( $my_posts as $post ) :
echo $post->post_title;
endforeach;
endif;
return $html;
}
add_shortcode( 'post_by_slug', 'post_by_slug' );
// добываем слаг поста
global $post;
$slug = $post->post_name;
// функция получения ID по слагу
function get_id_by_slug($slug) {
$query = new WP_Query(
array(
'name' => $slug,
'post_type' => 'post'
)
)
$query->the_post();
return get_the_ID();
}
// наше поле
$postData = get_fields(function get_id_by_slug($slug));
нормальная практика?
Поделитесь пожалуйста опытом, кто и как верстает под WP ?
То есть, кто-то фронт (html) хранит в файлах, кто-то в редакторе WP - какой вариант самый практичный для вас и для заказчика?
Страницы на сайта переодически добавляются новые (разнотипные) - какой вариант интеграции WP и HTML опять-же самый практичный для вас и для заказчика?
function my_shortcode_function() {
$wp_query = new WP_Query( [
'post_type' => 'portfolio',
'posts_per_page' => 6,
'paged' => get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1
] );
ob_start();
echo '<div class="portfolio">';
if ( $wp_query->have_posts() ) :
while ( $wp_query->have_posts() ) : $wp_query->the_post();
get_template_part( 'template-parts/portfolio', get_post_format() );
endwhile;
else :
get_template_part( 'template-parts/content', 'none' );
endif;
echo '</div>';
posts_nav_link();
$out = ob_get_clean();
return $out;
}
То есть у меня на странице 'site.com/portfolio' есть шесть записей, по клику на кнопку "Следующая страница →" я перехожу на страницу 'site.com/portfolio/page/2/' - но это страница 404..как исправить проблему?