如何在主页上显示自定义域

时间:2015-10-20 作者:user235377

我不熟悉自定义字段的事情。我正在一个电影评论网站上工作。并且想添加电影故事或情节字段,我已经成功添加了名为故事的自定义字段,其内容显示在单张上。php。但是,我可以在索引上显示相同的内容吗。php?下面是我的代码。

<?php 
$meta = get_post_meta( get_the_ID(), \'Story\' );
if( !empty($meta) ) {
    echo $meta[0];
}?>

2 个回复
SO网友:Ivijan Stefan Stipić

尝试以下操作:

if ( ! function_exists( \'customField\' ) ) :
function customField($name, $id=false, $single=false){
    global $post_type, $post;

    $name=trim($name);
    $prefix=\'\'; // only if you need this
    $data=NULL;

    if($id!==false && !empty($id) && $id > 0)
        $getMeta=get_post_meta((int)$id, $prefix.$name, $single);
    else if(isset($post->ID) && $post->ID > 0)
        $getMeta=get_post_meta($post->ID,$prefix.$name, $single);
    else if(\'page\' == get_option( \'show_on_front\' ))
        $getMeta=get_post_meta(get_option( \'page_for_posts\' ),$prefix.$name, $single);
    else if(is_home() || is_front_page() || get_queried_object_id() > 0)
        $getMeta=get_post_meta(get_queried_object_id(),$prefix.$name, $single);
    else
        $getMeta=get_post_meta(get_the_id(),$prefix.$name, $single);

    if(isset($getMeta[0])) $data=$getMeta[0];

    if($data===false || !is_numeric($data) && (empty($data) || is_null($data))) return NULL;

    $return = preg_replace(array(\'%<p>(<img .*?/>)</p>%i\',\'%<p>&nbsp;</p>%i\',\'/^\\s*(?:<br\\s*\\/?>\\s*)*/i\'), array(\'$1\',\'\',\'\'),$data);

    return (!empty($return)?$return:NULL);
}
endif;


echo customField("story"); // Default
echo customField("story", 55); // With custom page ID
这段代码工作得很好,因为我是为自己的作品构建这段代码的。如果return为空,则在您设置pharameters的地方不保存数据。如果您使用metabox,也要注意它的前缀。

SO网友:Ravi Patel

在内容上添加此代码。php,因为索引。php内容来自此文件。

if u call outside of post use 
global $post;  
$meta = get_post_meta($post->ID , \'Story\', true);

OR inner loop

$meta = get_post_meta(get_the_id(), \'Story\', true);

if( !empty($meta) ) {
    echo $meta[0];
}

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请