<?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..как исправить проблему?
function cf_search_join( $join ) {
global $wpdb;
if ( is_search() ) {
$join .=' LEFT JOIN '.$wpdb->postmeta. ' ON '. $wpdb->posts . '.ID = ' . $wpdb->postmeta . '.post_id ';
}
return $join;
}
add_filter( 'posts_join', 'cf_search_join' );
function cf_search_where( $where ) {
global $pagenow, $wpdb;
if ( is_search() ) {
$where = preg_replace(
"/\(\s*".$wpdb->posts.".post_title\s+LIKE\s*(\'[^\']+\')\s*\)/",
"(".$wpdb->posts.".post_title LIKE $1) OR (".$wpdb->postmeta.".meta_value LIKE $1)", $where );
}
return $where;
}
add_filter( 'posts_where', 'cf_search_where' );
function cf_search_distinct( $where ) {
global $wpdb;
if ( is_search() ) {
return "DISTINCT";
}
return $where;
}
add_filter( 'posts_distinct', 'cf_search_distinct' );