woocommerce_page_title()
в файле archive-product.php, в этой функции есть одноименный фильтр. Вы можете изменить контент заголовка используя ACF, Carbon Fields или любую другую удобную вам логикуadd_filter( 'woocommerce_page_title', 'filter_function_name_7320' );
function filter_function_name_7320( $page_title ){
// filter...
return $page_title;
}
// устанавливаем роль и дату начала тестового периода
function set_user_test_period() {
$current_date = date( 'd-m-Y H:i:s' );
// пишем в мету юзера текущее время
add_user_meta( $user_id, '_test_period_start_date', $current_date, true );
$user = new WP_User( $user_id );
// добавляем роль участника
$user->add_role( 'contributor' );
}
// проверка завершения тестового периода
function check_user_test_period() {
$current_date = date( 'd-m-Y H:i:s' );
$user_id = get_current_user_id();
$test_period_start_date = get_user_meta( $user_id, '_test_period_start_date', true );
$user = new WP_User( $user_id );
// проверяем, что текущая дата больше тестового периода
if ( strtotime( $current_date ) > strtotime( $test_period_start_date . ' + 7 days' ) ) {
// убираем роль участника
$user->remove_role( 'contributor' );
}
}
<div itemscope itemtype="//schema.org/Organization">
<span itemprop="name">ООО Медведица</span>
Адрес и телефон:
<div itemprop="address" itemscope itemtype="//schema.org/PostalAddress">
<span itemprop="streetAddress">5-ая Парковая, 52</span>
<span itemprop="postalCode">105264</span>
<span itemprop="addressLocality">Москва, Россия</span>
</div>
Телефон:<span itemprop="telephone">+7 (495) 223 45 45</span>,
E-mail: <span itemprop="email">pochta@medvedica.org</span>
</div>
wp_enqueue_style()
и wp_enqueue_script()
wp_enqueue_style( $handle, $src, $deps, $ver, $media );
wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );
filemtime()
, это гарантирует, что файл обновится в браузере при его измененииfunction custom_scripts_init() {
// common css
wp_enqueue_style( 'common-styles', get_theme_file_uri( 'assets/css/common.min.css' ) , array(), filemtime( get_theme_file_path( '/assets/css/common.min.css' ) ) );
// common js
wp_enqueue_script( 'common-scripts', get_theme_file_uri( 'assets/js/common.min.js' ), array( 'jquery' ), filemtime( get_theme_file_path( '/assets/js/common.min.js' ) ), true );
}
add_action( 'wp_enqueue_scripts', 'custom_scripts_init' );
the_content()
должна быть внутри тега <article>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<header class="entry-header alignwide">
<?php the_title( '<h1 class="entry-title">', '</h1>' ); ?>
<?php twenty_twenty_one_post_thumbnail(); ?>
</header>
<div class="entry-content">
<?php
the_content();
wp_link_pages(
array(
'before' => '<nav class="page-links" aria-label="' . esc_attr__( 'Page', 'twentytwentyone' ) . '">',
'after' => '</nav>',
/* translators: %: page number. */
'pagelink' => esc_html__( 'Page %', 'twentytwentyone' ),
)
);
?>
</div><!-- .entry-content -->
<footer class="entry-footer default-max-width">
<?php twenty_twenty_one_entry_meta_footer(); ?>
</footer><!-- .entry-footer -->
<?php if ( ! is_singular( 'attachment' ) ) : ?>
<?php get_template_part( 'template-parts/post/author-bio' ); ?>
<?php endif; ?>
</article><!-- #post-<?php the_ID(); ?> -->
$taxonomies = get_object_taxonomies( array( 'post_type' => $post_type ) );
foreach( $taxonomies as $taxonomy ) {
$terms = get_terms( $taxonomy );
foreach( $terms as $term ) {
$posts = get_posts( array(
'post_type' => $post_type,
'posts_per_page' => 1,
'fields' => 'ids',
'tax_query' => array(
array(
'taxonomy' => $taxonomy,
'field' => 'slug',
'terms' => $term->slug,
)
),
'meta_query' => array(
array(
'key' => 'publish_in',
'value' => true,
),
),
) );
if ( is_array( $posts ) && count( $posts ) > 0 ) {
print_r( $term );
}
}
}
add_action( 'wp_head', 'category_publish_in_update' );
function category_publish_in_update() {
// выходим, если не категория
if ( !is_category() ) {
return;
}
// проверяем, что поле publish_in не обновлено
if ( !get_term_meta( get_queried_object()->term_id, 'publish_in', true ) ) {
// если находимся в категории, пытаемся получить хоть один пост с publish_in = true
$posts = get_posts( array(
'posts_per_page' => 1,
'cat' => get_queried_object()->term_id,
'fields' => 'ids',
'meta_query' => array(
array(
'key' => 'publish_in',
'value' => true,
),
),
) );
// если такой пост есть, записываем в мету категории publish_in = true
if ( is_array( $posts ) && count( $posts ) > 0 ) {
update_term_meta( get_queried_object()->term_id, 'publish_in', true );
}
// обновляем поле publish_in_update, чтобы не запускать функцию каждый раз
update_term_meta( get_queried_object()->term_id, 'publish_in_update', true );
}
}
// обновляем поле publish_in_update при публикации записи
add_action( 'save_post', 'custom_save_post', 25 );
function custom_save_post( $post_id ) {
// проверяем, что это post и у него есть хотя бы одна категория
if ( get_post_type( $post_id ) === 'post' && has_term( '', 'category', $post_id ) ) {
foreach( get_the_terms( $post_id, 'category' ) as $category ) {
update_term_meta( $category->term_id, 'publish_in_update', false );
}
}
}
$taxonomies = get_object_taxonomies( array( 'post_type' => $post_type ) );
$args = [
'taxonomy' => [ $taxonomies ],
'meta_query' => array(
array(
'key' => 'publish_in',
'value' => true,
),
),
];
if ( $terms = get_terms( $args ) ) {
foreach( $terms as $term ){
print_r( $term );
}
}
is_category()
нужно заменить на проверки вашей таксономии // переключаемся на ID основного сайта сети
switch_to_blog( get_main_site_id() );
// задаем нужные нам критерии выборки данных из БД
$args = array(
'posts_per_page' => 6,
'post_type' => 'post',
);
$query = new WP_Query( $args );
// Цикл
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
echo '<h3>' . get_the_title() . '</h3>';
}
} else {
// Постов не найдено
}
// Возвращаем оригинальные данные поста. Сбрасываем $post.
wp_reset_postdata();
// возвращемся к текущему блогу
restore_current_blog();
wp_query()
с выводом заголовков выглядит так:// задаем нужные нам критерии выборки данных из БД
$args = array(
'posts_per_page' => 6,
'post_type' => 'post',
);
$query = new WP_Query( $args );
// Цикл
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
echo '<h3>' . get_the_title() . '</h3>';
}
} else {
// Постов не найдено
}
// Возвращаем оригинальные данные поста. Сбрасываем $post.
wp_reset_postdata();
query_posts()
, это системная функция ядра, вы сломаете основной запрос. Чтобы его поправить используйте хук pre_get_posts
add_action( 'pre_get_posts', 'set_front_page_category' );
function set_front_page_category( $query ) {
if ( $query->is_front_page() && $query->is_main_query() ) {
$query->set( 'cat', '2' );
}
}