在带有Genesis子主题的帖子上显示自定义字段

时间:2014-01-19 作者:Ciarán

我已经尽了一切努力,使用Genesis主题框架的子主题在帖子上显示自定义字段。我试着按照我能找到的每一个与之相关的教程进行操作,但我仍然无法在我的帖子上显示我的自定义字段!

我尝试过的最简单的解决方案是使用Brad Daltons指令(我尝试过许多其他方法),并将以下内容添加到我的函数文件中:

add_action( \'genesis_after_post_title\', \'custom_field_before_content\' );
/**
* @author Brad Dalton - WP Sites
* @link http://wp.me/p1lTu0-9WF
*/
function custom_field_before_content() {
if(is_page() || is_single() ) {
genesis_custom_field(\'instrument\');
}
}
然后,我在帖子中添加了自定义字段。我曾尝试添加自定义字段和高级自定义字段,这些字段在管理中显示得很好,但在我的网站上的帖子中却没有。

有没有人知道我在输出这个数据时做错了什么,或者有没有其他可能适合我的方法。我用不同的主题做这个没问题,但使用Genesis主题框架,我不能让它工作-已经做了两天了!

谢谢

西亚兰

3 个回复
最合适的回答,由SO网友:Borek 整理而成

换成genesis_custom_field(\'instrument\'); 使用:echo genesis_get_custom_field(\'instrument\');

加上genesis_after_post_title 自1.7.0以来,不推荐使用操作挂钩,您应该使用genesis_entry_header 具有正确的优先级。有关更多信息,请使用下面的参考链接。

参考号:

SO网友:user55013

以下是我针对自定义帖子类型的解决方案:

将此添加到函数。php。(或者,如果您像我一样为自定义帖子类型创建了一个模板,例如single-instrument.php,则将其添加到该模板中,而不是functions.php)

// Display Advanced Custom Fields
add_action(\'genesis_entry_header\', \'type_of_instrument\');

function type_of_attorney() {
if ( is_singular(\'profile\') && genesis_get_custom_field(\'type_of_instrument\') )
echo \'<hr /><div id="type_of_instrument">Title: \'. genesis_get_custom_field(\'type_of_instrument\') .\'</div>\';
}
这是假设您在高级自定义字段中将字段命名为“type\\u of\\u instrument”。使用您实际为字段指定的任何名称。您必须调整多个字段的代码。它还可以在场地周围创建一个div,以便于造型。

如果未使用自定义帖子类型,则需要替换is_singular(\'profile\'). 我的猜测是is_single 但不要引用我的话。如果没有,请尝试if(is_page() || is_single() ) 如您在问题中提交的代码中所用。

希望有帮助!

SO网友:lflier

好问题,Ciarán.我也一直在尝试在Genesis中显示自定义字段。这根线把我解开了。一路上,我发现这些想法有可能走得更远。

例如,我发现使用高级自定义字段插件在WordPress中创建登录页很有帮助。我可以根据需要在页面中添加任意多个WYSIWYG字段,并单独编辑它们。

为了显示Genesis中的字段,我使用了Borek和user55013之前给出的代码的变体。在下面的代码中,我添加了div标记,以便可以使用CSS分别格式化每个字段:

add_action( \'genesis_after_content\', \'display_custom_fields\' );
function display_custom_fields() {
    if( is_page_template( \'page_landing.php\') ) {
        printf( \'<div class="landing-part-one">%s</div>\', get_field(\'landing_part_one\') );
        printf( \'<div class="landing-part-two">%s</div>\', get_field(\'landing_part_two\') );
        printf( \'<div class="landing-part-three">%s</div>\', get_field(\'landing_part_three\') );
        printf( \'<div class="landing-part-four">%s</div>\', get_field(\'landing_part_four\') );
    }
}
同时,在高级自定义字段的字段组编辑器的选项面板中,我将自定义WYSIWYG字段定位为“高(标题后)”,并隐藏了内容编辑器。这为自定义字段生成了一个干净的编辑空间,这些字段显示在页面编辑器中,就像它们是WordPress的原生字段一样。在位置规则中,我将字段组设置为仅为登录页模板显示。

虽然我最初尝试使用“genesis\\u get\\u custom\\u fields()”来显示此函数中的字段,但它删除了所有<p> 字段中的标记。输出是一个连续段落。高级自定义字段功能get_field() 效果更好。

一路上,我还了解了“genesis\\u custom\\u fields()”和“genesis\\u get\\u custom\\u fields()”之间的区别。第一个直接回显场。第二个以字符串形式返回字段的内容。

如果使用高级自定义字段输出图像,this thread 可能有用。

我希望有帮助:-)

结束

相关推荐

Child-theme breaks site

所以,我有一个子主题,里面除了所需的CSS文件之外什么都没有。一旦我激活了这个儿童主题,我的整个网站就关闭了。最后我有两个问题:激活一个只有CSS的子主题怎么能破坏我的网站</我怎样才能回到我原来的主题</这些是网站给我的错误:Warning: require_once(/wp-content/themes/interio_child/admin/options-framework.php) [function.require-once]: 无法打开流:中没有此类文件或目录/wp-c

在带有Genesis子主题的帖子上显示自定义字段 - 小码农CODE - 行之有效找到问题解决它

在带有Genesis子主题的帖子上显示自定义字段

时间:2014-01-19 作者:Ciarán

我已经尽了一切努力,使用Genesis主题框架的子主题在帖子上显示自定义字段。我试着按照我能找到的每一个与之相关的教程进行操作,但我仍然无法在我的帖子上显示我的自定义字段!

我尝试过的最简单的解决方案是使用Brad Daltons指令(我尝试过许多其他方法),并将以下内容添加到我的函数文件中:

add_action( \'genesis_after_post_title\', \'custom_field_before_content\' );
/**
* @author Brad Dalton - WP Sites
* @link http://wp.me/p1lTu0-9WF
*/
function custom_field_before_content() {
if(is_page() || is_single() ) {
genesis_custom_field(\'instrument\');
}
}
然后,我在帖子中添加了自定义字段。我曾尝试添加自定义字段和高级自定义字段,这些字段在管理中显示得很好,但在我的网站上的帖子中却没有。

有没有人知道我在输出这个数据时做错了什么,或者有没有其他可能适合我的方法。我用不同的主题做这个没问题,但使用Genesis主题框架,我不能让它工作-已经做了两天了!

谢谢

西亚兰

3 个回复
最合适的回答,由SO网友:Borek 整理而成

换成genesis_custom_field(\'instrument\'); 使用:echo genesis_get_custom_field(\'instrument\');

加上genesis_after_post_title 自1.7.0以来,不推荐使用操作挂钩,您应该使用genesis_entry_header 具有正确的优先级。有关更多信息,请使用下面的参考链接。

参考号:

SO网友:user55013

以下是我针对自定义帖子类型的解决方案:

将此添加到函数。php。(或者,如果您像我一样为自定义帖子类型创建了一个模板,例如single-instrument.php,则将其添加到该模板中,而不是functions.php)

// Display Advanced Custom Fields
add_action(\'genesis_entry_header\', \'type_of_instrument\');

function type_of_attorney() {
if ( is_singular(\'profile\') && genesis_get_custom_field(\'type_of_instrument\') )
echo \'<hr /><div id="type_of_instrument">Title: \'. genesis_get_custom_field(\'type_of_instrument\') .\'</div>\';
}
这是假设您在高级自定义字段中将字段命名为“type\\u of\\u instrument”。使用您实际为字段指定的任何名称。您必须调整多个字段的代码。它还可以在场地周围创建一个div,以便于造型。

如果未使用自定义帖子类型,则需要替换is_singular(\'profile\'). 我的猜测是is_single 但不要引用我的话。如果没有,请尝试if(is_page() || is_single() ) 如您在问题中提交的代码中所用。

希望有帮助!

SO网友:lflier

好问题,Ciarán.我也一直在尝试在Genesis中显示自定义字段。这根线把我解开了。一路上,我发现这些想法有可能走得更远。

例如,我发现使用高级自定义字段插件在WordPress中创建登录页很有帮助。我可以根据需要在页面中添加任意多个WYSIWYG字段,并单独编辑它们。

为了显示Genesis中的字段,我使用了Borek和user55013之前给出的代码的变体。在下面的代码中,我添加了div标记,以便可以使用CSS分别格式化每个字段:

add_action( \'genesis_after_content\', \'display_custom_fields\' );
function display_custom_fields() {
    if( is_page_template( \'page_landing.php\') ) {
        printf( \'<div class="landing-part-one">%s</div>\', get_field(\'landing_part_one\') );
        printf( \'<div class="landing-part-two">%s</div>\', get_field(\'landing_part_two\') );
        printf( \'<div class="landing-part-three">%s</div>\', get_field(\'landing_part_three\') );
        printf( \'<div class="landing-part-four">%s</div>\', get_field(\'landing_part_four\') );
    }
}
同时,在高级自定义字段的字段组编辑器的选项面板中,我将自定义WYSIWYG字段定位为“高(标题后)”,并隐藏了内容编辑器。这为自定义字段生成了一个干净的编辑空间,这些字段显示在页面编辑器中,就像它们是WordPress的原生字段一样。在位置规则中,我将字段组设置为仅为登录页模板显示。

虽然我最初尝试使用“genesis\\u get\\u custom\\u fields()”来显示此函数中的字段,但它删除了所有<p> 字段中的标记。输出是一个连续段落。高级自定义字段功能get_field() 效果更好。

一路上,我还了解了“genesis\\u custom\\u fields()”和“genesis\\u get\\u custom\\u fields()”之间的区别。第一个直接回显场。第二个以字符串形式返回字段的内容。

如果使用高级自定义字段输出图像,this thread 可能有用。

我希望有帮助:-)

相关推荐

Child-theme breaks site

所以,我有一个子主题,里面除了所需的CSS文件之外什么都没有。一旦我激活了这个儿童主题,我的整个网站就关闭了。最后我有两个问题:激活一个只有CSS的子主题怎么能破坏我的网站</我怎样才能回到我原来的主题</这些是网站给我的错误:Warning: require_once(/wp-content/themes/interio_child/admin/options-framework.php) [function.require-once]: 无法打开流:中没有此类文件或目录/wp-c