• Почему не изменяются мета теги в Wordpress?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Потому что поисковый робот еще не посетил вашу измененную страницу и не учел эти изменения в своей базе. Рекомендую добавить sitemap в вебмастер и google search console, так поисковики будут быстрее узнавать об изменениях на вашем сайте
    Ответ написан
    Комментировать
  • Отображение всех категорий на одной странице?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Шаблон для вывода постов это category.php или archive.php, а не blocks.php. Используйте для их код из любой темы twenty или кастомизируйте его

    <?php get_header(); ?>
    
    	<div id="primary" class="content-area">
    		<main id="main" class="site-main" role="main">
    
    		<?php if ( have_posts() ) : ?>
    
    			<header class="page-header">
    				<?php
    					the_archive_title( '<h1 class="page-title">', '</h1>' );
    					the_archive_description( '<div class="taxonomy-description">', '</div>' );
    				?>
    			</header>
    
    			<?php while ( have_posts() ) :
    				the_post();
    
    				get_template_part( 'template-parts/content', get_post_format() );
    
    			endwhile;
    
    			the_posts_pagination(
    				array(
    					'prev_text'          => __( 'Previous page', 'twentysixteen' ),
    					'next_text'          => __( 'Next page', 'twentysixteen' ),
    					'before_page_number' => '<span class="meta-nav screen-reader-text">' . __( 'Page', 'twentysixteen' ) . ' </span>',
    				)
    			);
    
    		else :
    
    			get_template_part( 'template-parts/content', 'none' );
    
    		endif; ?>
    
    		</main>
    	</div>
    
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>


    Ссылку на страницу категории с записями можно получить с помощью get_category_link() по переданному $category_id. На будущее вам пригодится иерархия шаблонов WordPress
    Ответ написан
  • Помоги по WP, не вижу выбор шаблона для записи?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Вероятно для этого типа записи нет возможности выбора шаблонов или они отсутствуют. Попробуйте в шаблоне указать список post_type для которых он может применятся следующим образом

    /*
    Template Name: Мой шаблон страницы
    Template Post Type: post, page, product
    */
    Ответ написан
    2 комментария
  • Возможно ли дописывать свой backend в wordpress?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Весь WordPress сделан на хуках и фильтрах. На хук можно прикрепить произвольную функцию, а фильтр изменяет значение переменной, возвращаемой из функции

    Ищите через документацию или исходники нужное место в коде, используете функции add_filter() и add_action()

    В некоторых случаях, например при использовании WooCommerce или дочерних тем будет работать переопределение шаблонов путем копирования их в тему. Т.е. WordPress сначала будет искать нужный ему шаблон в вашей теме, а если не найдет, то будет использовать тот, который у него есть по умолчанию
    Ответ написан
    Комментировать
  • Как вывести изображение в шаблоне WordPress?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Ваш код нельзя отдебажить по скриншотам. Проверяйте, что у вас в переменной $acf_slid, вероятно там массив изображений и для их вывода нужно сделать дополнительный цикл

    <?php $acf_slid = get_sub_field( 'acf_slid' ); ?>
    <?php if ( $acf_slid ) { ?>
    <a href="<?php echo $acf_slid['url']; ?>"><img src="<?php echo $acf_slid['url']; ?>" alt="<?php echo $acf_slid['alt']; ?>" /></a>
    <?php } ?>
    Ответ написан
  • Как правильно задать title для каждого изображения в магазине, чтобы он был точно такой же, как alt?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Дополнительные параметры в тег изображения можно передать в виде массива в функцию the_post_thumbnail() или get_the_post_thumbnail()

    $size = 'post-thumbnail';
    
    $attr = array(
    	'class' => 'attachment-' . $size,
    	'alt'   => the_title_attribute(),
    );
    
    the_post_thumbnail( $size, $attr );


    В вашем решении в функцию .attr() нужно передавать переменную, а не строку

    jQuery( 'img' ).attr( 'title', image_alt );
    Ответ написан
    Комментировать
  • Разное оформление single.php(WordPress)?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Если вы уберете из кода twentyfifteen все комментарии, то сравнить будет значительно проще

    <?php get_header(); ?>
    
    	<div id="primary" class="content-area">
    		<main id="main" class="site-main">
    
    		<?php while ( have_posts() ) :
    			the_post();
    
    			get_template_part( 'content', get_post_format() );
    
    			if ( comments_open() || get_comments_number() ) :
    				comments_template();
    			endif;
    
    			the_post_navigation(
    				array(
    					'next_text' => '<span class="meta-nav" aria-hidden="true">' . __( 'Next', 'twentyfifteen' ) . '</span> ' .
    						'<span class="screen-reader-text">' . __( 'Next post:', 'twentyfifteen' ) . '</span> ' .
    						'<span class="post-title">%title</span>',
    					'prev_text' => '<span class="meta-nav" aria-hidden="true">' . __( 'Previous', 'twentyfifteen' ) . '</span> ' .
    						'<span class="screen-reader-text">' . __( 'Previous post:', 'twentyfifteen' ) . '</span> ' .
    						'<span class="post-title">%title</span>',
    				)
    			);
    
    		endwhile; ?>
    
    		</main>
    	</div>
    
    <?php get_footer(); ?>


    В этом коде есть глобальный цикл, части кода (контент, комментарии и пагинация) подключены с помощью базовых функций

    От себя добавлю, что на код базовых тем стоит ориентироваться и на первых этапах стараться делать подобным образом, это сэкономит вам время на устранение разных багов
    Ответ написан
    2 комментария
  • Есть доступ к API спортивной статистики, что с этим делать?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Api вашей футбольной статистики у меня нет, но я приведу три рабочих примера использования разных api БЕЗ использования WP REST API

    YouTube Api

    $args = [
    	'part' => 'snippet', // какие параметры включить в ответ
    	'q' => 'WordPress', // поисковый запрос
    	'maxResults' => 50, // кол-во результатов в ответе
    	'key' => 'xxx', // ключ
    ];
    
    $api_url = add_query_arg( $args, 'https://www.googleapis.com/youtube/v3/search' ); 
    
    $json_result = wp_remote_get( $api_url );
    
    $body = json_decode( $json_result['body'] );
    var_dump( $body );


    Openweathermap Api

    $args = [
    	'lat' => '43.671387', // широта
    	'lon' => '40.297416', // долгота
    	'appid' => 'xxx', // // ключ
    	'lang' => 'ru', // язык
    ];
    
    $api_url = add_query_arg( $args, 'https://api.openweathermap.org/data/2.5/weather' );
    
    $json_result = wp_remote_get( $api_url );
    
    $body = json_decode( $json_result['body'] );
    var_dump( $body );


    Kinopoiskapiunofficial Api

    $person_id = '967312'; // id персоны
    $api_url = 'https://kinopoiskapiunofficial.tech/api/v1/staff/' . $person_id;
    
    $args = array(
    	'headers' => array(
    		'X-API-KEY' => 'xxx', // ключ
    		'Content-Type' => 'application/json',
    	),
    );
    
    $json_result = wp_remote_get( $api_url, $args );
    
    $body = json_decode( $json_result['body'] );
    var_dump( $body );


    В последнем случае ключ передается не в строке поиска, а в заголовках headers, судя по скриншотам это ваш случай
    Ответ написан
    2 комментария
  • Как использовать Шорткоды в произвольных полях Wordpres?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    add_filter( 'get_post_metadata', 'filter_function_name_1040', 10, 5 );
    function filter_function_name_1040( $value, $object_id, $meta_key, $single, $meta_type ){
    	// filter...
    
    	return $value;
    }
    Ответ написан
  • Какой плагин скачать для оптимизации сайта?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Оптимизировать фотографии можно двумя способами:

    Ответ написан
    1 комментарий
  • Как получить id выбранной категории в ACF Taxonomy?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Потому что cat это запрос категорий, а чтобы получить таксономии нужно использовать tax_query
    Ответ написан
  • Как нужно переделать функцию, чтобы она работала с произвольными полями?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Попробуйте использовать фильтр https://www.advancedcustomfields.com/resources/acf...

    apply_filters( 'acf/format_value', $value, $post_id, $field );
    Ответ написан
  • Как проставлять отпределенные слова шорткодом?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Расскажу как это работает у меня. Есть большая excel-таблица со списком городов и их склонениями. В customizer сделан селект с выбором города из столбца title, парсится таблица с помощью библиотеки SimpleXLSX

    Выбранный город со всеми склонениями сохраняется в базу, шорткод [city type="gde"] выводит нужный падеж

    62391733ef65c087321234.png
    Ответ написан
    Комментировать
  • Wordpress - получить размер картинки?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Используя функции запроса изображение, практически у всех есть параметр $size, в который вы можете передать нужный вам размер

    $img = wp_get_attachment_image( $attachment_id, $size, $icon, $attr );


    Еще лучше использовать свойства тега <img> srcset, в который вы можете передать ссылки на все доступные размеры изображений. Из них браузер сможет выбрать наиболее подходящий
    Ответ написан
    Комментировать
  • Как сделать единые товары на WordPress Мультисайт?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    У всех сайтов в системе мультисайта свои собственные таблицы wp_options, wp_posts и т.д.

    Варианта два:

    • Писать скрипт, который будет дублировать товар на остальные домены (в базе данных)
    • При выводе товаров во фронт делать запрос в базу данных основного сайта с помощью switch_to_blog()
    Ответ написан
    3 комментария
  • Как определить видимость записи в WordPress?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Событие после авторизации пользователя называется login_redirect

    add_filter( 'login_redirect', 'filter_function_name_7309', 10, 3 );
    function filter_function_name_7309( $redirect_to, $requested_redirect_to, $user ){
    	// filter...
    
    	return $redirect_to;
    }
    Ответ написан
    Комментировать
  • Как показывать разное количество записей?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Все редиректы должны происходить на хуке template_redirect

    add_action( 'template_redirect', 'category_redirect' );
    function category_redirect() {
    
    	if ( is_category() && get_queried_object()->count == 1 ) {
    
    		global $wp_query;
    		
    		if ( isset( $wp_query->posts[0]->ID ) ) {
    			wp_redirect( get_the_permalink( $wp_query->posts[0]->ID )  );
    		}
    		
    	}
    }
    Ответ написан
    Комментировать
  • Как сделать пагинацию на странице поиска (wordpress)?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Вам лучше не изобретать велосипед с кастомным запросом WP_Query(), а использовать глобальный. Проще всего скопировать шаблон search.php из любой стандартной темы

    <?php get_header(); ?>
    
    	<section id="primary" class="content-area">
    		<main id="main" class="site-main" role="main">
    
    		<?php if ( have_posts() ) : ?>
    
    			<header class="page-header">
    				<h1 class="page-title">
    				<?php
    				/* translators: %s: The search query. */
    				printf( __( 'Search Results for: %s', 'twentysixteen' ), '<span>' . esc_html( get_search_query() ) . '</span>' );
    				?>
    				</h1>
    			</header><!-- .page-header -->
    
    			<?php
    			// Start the loop.
    			while ( have_posts() ) :
    				the_post();
    
    				/**
    				 * Run the loop for the search to output the results.
    				 * If you want to overload this in a child theme then include a file
    				 * called content-search.php and that will be used instead.
    				 */
    				get_template_part( 'template-parts/content', 'search' );
    
    				// End the loop.
    			endwhile;
    
    			// Previous/next page navigation.
    			the_posts_pagination(
    				array(
    					'prev_text'          => __( 'Previous page', 'twentysixteen' ),
    					'next_text'          => __( 'Next page', 'twentysixteen' ),
    					'before_page_number' => '<span class="meta-nav screen-reader-text">' . __( 'Page', 'twentysixteen' ) . ' </span>',
    				)
    			);
    
    			// If no content, include the "No posts found" template.
    		else :
    			get_template_part( 'template-parts/content', 'none' );
    
    		endif;
    		?>
    
    		</main><!-- .site-main -->
    	</section><!-- .content-area -->
    
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>
    Ответ написан
    Комментировать
  • Как создавать последующие сайты для заказчиков?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    У большинства хостингов установка WordPress производится в 2-3 клика. Сначала нужно зарегистрировать нужный вам домен. В основной панели управления будет кнопка «Установить CMS» или подобная, в установке выбираете приобретенный домен, логин и пароль

    Вход в админку по адресу domain.ru/wp-admin

    62363e148489a998008481.png

    Скрин с beget.com

    Мультисайтом на первых этапах лучше не пользоваться — эта функция поддерживает не всеми плагинами и без навыков программирования вы не сможете решить возникающие проблемы
    Ответ написан
    Комментировать
  • Как дать комплексному полю id?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    foreach ( $states as $key => $state ) {
    	echo $key;
    }
    Ответ написан