我正在开发一个新的主题,整个上午都在绞尽脑汁想为什么这个主题不起作用。请有人指导我如何将文件包含到WooCommerce主页。
据我所知,WooCommerce使用归档产品。php模板生成主页布局。我已将其复制到主题文件夹中,正如归档产品顶部文档中所述。php文件(以避免更新破坏我的存储)。
所以这个文件现在存储在这里:/theme name/woomerce/archive product。php。
如果我做一个简单的改变,比如键入“Hello World!”它会反映在页面重新加载上。
但是,如果我尝试包含一个使用高级自定义字段(ACF)的文件,它不会显示这些更改。
我已经对ACF进行了两次和三次检查。它们确实存在于网站上,并且填充了内容。
Please help me successfully make the include to the file, and pull through the appropriate pages data for the ACF\'s.
ARCHIVE-PRODUCT.PHP:
在测试一个简单的更改(例如添加短语“Hello World!”)时,我已将此代码放入模板中重新加载时会在页面上显示(当它是回显链接时-它看起来正确):
<?php
$heroslider = get_template_directory_uri() . "/template-parts/hero-slider.php";
echo $heroslider;
include_once($heroslider); ?>
HERO-SLIDER.PHP:
这段代码至少会显示“你好,世界!”,即使字段未填充。但它没有任何效果:
Hello World!
<?php
$has_hero_slider = get_field(\'has_hero_slider\');
if( $has_hero_slider === TRUE ): ?>
<style>
</style>
<div class="hero-section">
一
<?php
$heroslider = get_template_directory_uri() . "/template-parts/hero-slider.php";
echo $heroslider;
include_once($heroslider); ?>
HERO-SLIDER.PHP:Hello World!
<?php
$has_hero_slider = get_field(\'has_hero_slider\');
if( $has_hero_slider === TRUE ): ?>
<style>
</style>
<div class="hero-section">
<?php
$hero_slides = get_field(\'hero_slides\');
if( $hero_slides != \'\' ): ?>
<div id="hero-slider" class="hero-slider">
<?php
while( have_rows(\'hero_slides\') ): the_row();
$hero_slide_title = get_sub_field(\'hero_slide_title\');
$hero_slide_content = get_sub_field(\'hero_slide_content\');
$hero_slide_button = get_sub_field(\'hero_slide_button\');
$hero_slide_image = get_sub_field(\'hero_slide_image\'); ?>
<div class="hero-slide"<?php if($hero_slider_image != \'\') : ?> style="background-image:url(<?php echo $hero_slide_image; ?>);"<?php endif; ?>>
<?php
while( have_rows(\'hero_slide_title\') ): the_row();
$hero_slide_title_text = get_sub_field(\'hero_slide_title_text\');
$hero_slide_title_color = get_sub_field(\'hero_slide_title_color\'); ?>
<?php if($hero_slide_title_text != \'\') : ?>
<div class="hero-slide-title"<?php if($hero_slide_title_color != \'\') : ?> style="color:<?php echo $hero_slide_title_color; ?>;"<?php endif; ?>>
<?php echo $hero_slide_title_text; ?>
</div>
<?php endif; ?>
<?php endwhile; ?>
<?php
while( have_rows(\'hero_slide_content\') ): the_row();
$hero_slide_content_text = get_sub_field(\'hero_slide_content_text\');
$hero_slide_content_color = get_sub_field(\'hero_slide_content_color\'); ?>
<?php if($hero_slide_content_text != \'\') : ?>
<div class="hero-slide-text"<?php if($hero_slide_content_color != \'\') : ?> style="color:<?php echo $hero_slide_content_color; ?>;"<?php endif; ?>>
<?php echo $hero_slide_content_text; ?>
</div>
<?php endif; ?>
<?php endwhile; ?>
<?php
while( have_rows(\'hero_slide_button\') ): the_row();
$hero_slide_button_text = get_sub_field(\'hero_slide_button_text\');
$hero_slide_button_link = get_sub_field(\'hero_slide_button_link\');
$hero_slide_button_background_color = get_sub_field(\'hero_slide_button_background_color\');
$hero_slide_button_border_color = get_sub_field(\'hero_slide_button_border_color\');
$hero_slide_button_font_color = get_sub_field(\'hero_slide_button_font_color\'); ?>
<?php if($hero_slide_button_text != \'\') : ?>
<div class="hero-slide-button" style="<?php if($hero_slide_button_background_color != \'\') : ?>background-color:<?php echo $hero_slide_button_background_color; ?>;<?php endif; ?><?php if($hero_slide_button_border_color != \'\') : ?>border-color:<?php echo $hero_slide_button_border_color; ?>;<?php endif; ?><?php if($hero_slide_button_font_color != \'\') : ?>color:<?php echo $hero_slide_button_font_color; ?>;<?php endif; ?>">
<?php if($hero_slide_button_link != \'\') : ?>
<a href="<?php echo $hero_slide_button_link; ?>" class="box-link"></a>
<?php endif; ?>
<?php echo $hero_slide_content_text; ?>
</div>
<?php endif; ?>
<?php endwhile; ?>
</div>
<?php endwhile; ?>
</div>
<?php endif; ?>
</div>
<?php endif; ?>
英雄滑块自定义字段的图像:
使用ACF的主页图像:
我的想法是(因为我对ACF的使用很有信心),主页不是WooCommerce的主页。然而,这也可能是一个愚蠢的想法,因为当我在主页上单击WP管理栏中的编辑页面时,它会给我一个要编辑的主页。EDIT (SOLUTION): 必须使用要使用的字段指定页面ID:
<?php
if(is_shop()) {
$id = woocommerce_get_page_id(\'shop\');
} else {
$id = $post->ID;
}
$has_hero_slider = get_field(\'has_hero_slider\', $id);
if( $has_hero_slider === TRUE ): ?>
<style>
</style>
<div class="hero-section">
<?php
$hero_slides = get_field(\'hero_slides\', $id);
if( $hero_slides != \'\' ): ?>
<div id="hero-slider" class="hero-slider">
<?php
while( have_rows(\'hero_slides\', $id) ): the_row();
谢谢,杰森。