header 中显示的高级自定义字段简码
Advanced Custom Field shortcode displaying in header
希望你们中的一些人能帮助我,因为我真的迷路了!这很难解释,但就是这样。我最近是 ACF(高级自定义字段)的新手,所以请原谅我。
设置:
1. 我在我的 functions.php 文件中创建了一个新的短代码(称为 [bier])
` function bierfunction() {
require_once trailingslashit( REDGOTGRILL_THEME_DIR ) . 'bier-page.php';
}
add_shortcode('bier','bierfunction');`
2. 然后我创建了 php 文件 "bier-page.php" 如上导入。并添加了一些电话:
` <?php $bier_maand = new WP_Query(array(
'post_type' => 'bier_maand'
)); ?>`
` <div class="mprm-row">
<?php while($bier_maand->have_posts()) : $bier_maand->the_post();?> </div>`
` <div class="mprm-category-content">
<h2 class="mprm-title"><?php the_title(); ?></h2>
<p class="mprm-category-description">
<?php the_field('beschrijving_bier'); ?></p>
</div>`
3. 然后我希望我可以在任何页面中使用短代码,它会插入我创建的 php 页面!好吧,它有效!真的很好,甚至...除了一件事!
问题:我创建的短代码显示在我 header 下方的最顶部。不管我做什么!或者我放在上面的任何东西!它将继续显示在页面顶部 header 下方。
LINK 到我的页面(问题):http://wapen.2-t.one/testing-issue/(显示的啤酒是简码)
在wordpress中设置的页面截图:http://prntscr.com/e96l1t
结论:我要出去window了!我究竟做错了什么??这是 CSS 样式问题吗?因为我觉得这与 ACF 调用有关:
<?php $bier_maand = new WP_Query(array(
'post_type' => 'bier_maand'
)); ?>
任何帮助将不胜感激!!!!
在此先致谢!
Afaik,你必须从你的简码函数中 return html。如果你 include/require 它,它会被放置在某个地方。对于您的示例(未经测试!!):
function bierfunction() {
$bier_maand = new WP_Query(array(
'post_type' => 'bier_maand'
));
$ret = '<div class="mprm-row">';
while($bier_maand->have_posts()) $ret.=$bier_maand->the_post();
$ret.='</div>';
$ret.='<div class="mprm-category-content"><h2 class="mprm-title">';
$ret.=the_title();
$ret.='</h2><p class="mprm-category-description">';
$ret.=php the_field('beschrijving_bier');
$ret.='</p></div>';
return $ret;
}
add_shortcode('bier','bierfunction');`
你很接近,@jh1711 已步入正轨。您的短代码显示在 while( have_posts() ) : the_post();
调用的最顶部,因为它是 打印 您的标记,而不是 返回 它作为变量显示在简码处。简码有效,但没有在正确的地方输出。您需要将其更改为:
<?php
function bierfunction(){
// No need for WP_Query - use get_posts when you can
$bier_maand = get_posts( array(
'post_type' => 'bier_maand'
) );
$ret = '<div class="mprm-row">';
foreach( $bier_maand as $bier ){
$ret .= '<div class="mprm-category-content"><h2 class="mprm-title">';
// Not the_title() which prints the title. Use get_the_title() to pass it to your variable.
$ret .= get_the_title( $bier->ID );
$ret .='</h2><p class="mprm-category-description">';
// Don't use the_field() which prints the field value. Use get_field() to pass the value to your variable;
$ret .= get_the_field( 'beschrijving_bier', $bier->ID );
$ret .= '</p></div>';
}
$ret .= '</div>';
// Return the value of the above output so WordPress puts in on screen at the location of your shortcode.
return $ret;
}
add_shortcode( 'bier', 'bierfunction' );
希望你们中的一些人能帮助我,因为我真的迷路了!这很难解释,但就是这样。我最近是 ACF(高级自定义字段)的新手,所以请原谅我。
设置:
1. 我在我的 functions.php 文件中创建了一个新的短代码(称为 [bier])
` function bierfunction() {
require_once trailingslashit( REDGOTGRILL_THEME_DIR ) . 'bier-page.php';
}
add_shortcode('bier','bierfunction');`
2. 然后我创建了 php 文件 "bier-page.php" 如上导入。并添加了一些电话:
` <?php $bier_maand = new WP_Query(array(
'post_type' => 'bier_maand'
)); ?>`
` <div class="mprm-row">
<?php while($bier_maand->have_posts()) : $bier_maand->the_post();?> </div>`
` <div class="mprm-category-content">
<h2 class="mprm-title"><?php the_title(); ?></h2>
<p class="mprm-category-description">
<?php the_field('beschrijving_bier'); ?></p>
</div>`
3. 然后我希望我可以在任何页面中使用短代码,它会插入我创建的 php 页面!好吧,它有效!真的很好,甚至...除了一件事!
问题:我创建的短代码显示在我 header 下方的最顶部。不管我做什么!或者我放在上面的任何东西!它将继续显示在页面顶部 header 下方。
LINK 到我的页面(问题):http://wapen.2-t.one/testing-issue/(显示的啤酒是简码)
在wordpress中设置的页面截图:http://prntscr.com/e96l1t
结论:我要出去window了!我究竟做错了什么??这是 CSS 样式问题吗?因为我觉得这与 ACF 调用有关:
<?php $bier_maand = new WP_Query(array(
'post_type' => 'bier_maand'
)); ?>
任何帮助将不胜感激!!!!
在此先致谢!
Afaik,你必须从你的简码函数中 return html。如果你 include/require 它,它会被放置在某个地方。对于您的示例(未经测试!!):
function bierfunction() {
$bier_maand = new WP_Query(array(
'post_type' => 'bier_maand'
));
$ret = '<div class="mprm-row">';
while($bier_maand->have_posts()) $ret.=$bier_maand->the_post();
$ret.='</div>';
$ret.='<div class="mprm-category-content"><h2 class="mprm-title">';
$ret.=the_title();
$ret.='</h2><p class="mprm-category-description">';
$ret.=php the_field('beschrijving_bier');
$ret.='</p></div>';
return $ret;
}
add_shortcode('bier','bierfunction');`
你很接近,@jh1711 已步入正轨。您的短代码显示在 while( have_posts() ) : the_post();
调用的最顶部,因为它是 打印 您的标记,而不是 返回 它作为变量显示在简码处。简码有效,但没有在正确的地方输出。您需要将其更改为:
<?php
function bierfunction(){
// No need for WP_Query - use get_posts when you can
$bier_maand = get_posts( array(
'post_type' => 'bier_maand'
) );
$ret = '<div class="mprm-row">';
foreach( $bier_maand as $bier ){
$ret .= '<div class="mprm-category-content"><h2 class="mprm-title">';
// Not the_title() which prints the title. Use get_the_title() to pass it to your variable.
$ret .= get_the_title( $bier->ID );
$ret .='</h2><p class="mprm-category-description">';
// Don't use the_field() which prints the field value. Use get_field() to pass the value to your variable;
$ret .= get_the_field( 'beschrijving_bier', $bier->ID );
$ret .= '</p></div>';
}
$ret .= '</div>';
// Return the value of the above output so WordPress puts in on screen at the location of your shortcode.
return $ret;
}
add_shortcode( 'bier', 'bierfunction' );