代码之家  ›  专栏  ›  技术社区  ›  dmanexe

为什么让后元不工作?

  •  1
  • dmanexe  · 技术社区  · 16 年前

    简单的Wordpress问题-get_post_meta没有检索自定义字段值。下面是从自定义字段中提取的代码:

    <img src="<?php echo FCG_PLUGIN_URL; ?>/scripts/timthumb.php?src=<?php echo get_post_meta($post->ID, 'slider_image', true); ?>&h=250&w=400&zc=1" alt="<?php echo $post_title; ?>" />
    

    在生产中,这是我得到的HTML:

    <img alt="Post Title" src="http://***.com/wp-content/plugins/jquery-slider-for-featured-content/scripts/timthumb.php?src=/&amp;h=50&amp;w=80&amp;zc=1">
    

    您可以看到字符串中的src=point是空的,好像没有任何来自它的帖子。我已经隔离并回送了get-post-meta,它是一个空白。我百分之百确定它的名字在帖子里是正确的-有没有什么东西让我在这里漏掉了?

    9 回复  |  直到 11 年前
        1
  •  1
  •   gteh    16 年前

    使用phpmyadmin在wp_posts和wp_postteta表中搜索术语“slider_image”。然后查看有它的行,看看里面有没有东西。

    同时尝试将自定义值的名称更改为测试,并查看是否有效。我使用这个精确的代码来做一些与您类似的事情,它可以工作:

    <p><a href="<?php echo get_post_meta($post->ID, 'resume', true) ?>"><img src="<? bloginfo('template_url'); ?>/img/downloadresume.png"></a></p>
    
        2
  •  7
  •   Katie    15 年前

    如果在循环中调用get_post_meta,则应该调用 get_post_meta(get_the_id(), 'YOURKEY', true) 而不是 get_post_meta($post->ID, 'YOURKEY', true)

    在循环中调用get_post_meta会发生奇怪的事情。在一些主题中,开发人员在一开始就破解$post,然后让@post_meta停止工作,因此这也是针对那些特定情况的解决方案之一。

        3
  •  1
  •   Sajid Javed    14 年前

    因为自动保存。 使用这些行防止自动保存和用户权限。

    // Bail if we're doing an auto save  
    if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return; 
    
     // if our current user can't edit this post, bail  
    if( !current_user_can( 'edit_post' ) ) return;
    
        4
  •  1
  •   artist learning to code    11 年前

    如果您使用的是$loop=new WP_Query($args),则还可以使用get_post_meta($loop->post->ID,'yourkey',true);或类似的方法。

        5
  •  0
  •   Dan Grossman    16 年前

    实际上,它给了你“/”,这不是什么。我想这就是保存为“slider_图像”的内容。检查post(或直接检查数据库)。

        6
  •  0
  •   Abe    15 年前

    我编写了一些简单的模板函数,使您能够在主题中使用元数据(自定义数据)。可以为任何元数据键/值对编写模板函数,并将其呈现在主题文件中,如下所示:

    <?php the_meta_templates($meta_data_keys) ?>
    <?php the_template_for($meta_data_key) ?>
    

    您可以从 github 试试看。您需要将它们添加到themes functions.php文件中。

        7
  •  0
  •   wtfowned    13 年前
    <?php get_post_meta(get_the_id(), 'YOURKEY', true) instead of get_post_meta($post->ID, 'YOURKEY', true) ?>
    

    对我有用!

        8
  •  0
  •   user2123319user2123319    13 年前

    它会不会和窃听器有关

    #18210(Update_post_meta对meta_键不区分大小写,但get_post_meta不区分大小写)WordPress Trac

    https://core.trac.wordpress.org/ticket/18210

    它将解释不同的经验,取决于数据库整理。。。(如果这完全是胡说八道,请原谅,我是个新手……)

    WordPress数据库字符集和排序规则配置 http://hakre.wordpress.com/2010/12/26/wordpress-database-charset-and-collation-configuration/

        9
  •  0
  •   Omprakash Patel    13 年前
    <?php
    // Get custum fields and values 
    $mykey_values = get_post_custom_values('my_key');
    foreach ( $mykey_values as $key => $value ) {
    echo "$key  => $value ('my_key')<br />"; 
    }
    
    ?>
    
    推荐文章