带有自定义字段的快捷方式代码(_S)

时间:2015-05-17 作者:Matt

好吧,我对PHP很差劲,所以我先用“英语”解释一下,然后继续编写代码。

我在WP DB中有一个名为ecpt\\U imdb的自定义字段-这是来自imdb的电影的数值。例如:http://www.imdb.com/title/tt0848228/

我的ecpt\\U imdb值为:tt0848228

然后我购买了一个小部件,当输入到我的WP编辑器时,它会解析URL。它工作得很好,但我有几千个电影评论,在每个评论中手动输入它们的imdB字符串将花费比我想要花费的时间多得多的时间。

所以我在想,如果我可以使用ecpt\\U imdb中的值,它已经是每个评审的一部分,那么我就可以得到一块代码,上面写着“如果ecpt\\U imdb存在,那么将它附加到代码行的末尾,它会吐出我想要的内容。”

基本上,这就是我所拥有的不起作用的东西,请随意修改,我将尝试看看什么是有效的。

代码作者给了我几句话,但我想他不知道我想做什么:

这是可行的(在single.php中),但它是硬编码的。我想要下面的动态版本:

    <?php echo do_shortcode( \'[imdb]http://www.imdb.com/title/tt2724064/[/imdb]\' ); ?>
这是我的。它不起作用。

    <?php
    global $wp_query;
    $postid = $wp_query->post->ID;
    if( get_post_meta($postid, \'imdb_rating\', true)) { ?>

    <?php }
    elseif( get_post_meta($postid, \'ecpt_imdb\', true)) {
    ?>
    <h3>About the Movie</h3>
    <?php echo do_shortcode( \'[imdb]http://www.imdb.com/title/\' . $ecpt_imdb . \'/[/imdb]\' ); ?>
    <?php } ?>

1 个回复
SO网友:TheDeadMedic

很好,你实际上就在那里-关键是分配$ecpt_imdb 具有从返回的数据的变量get_post_meta:

<?php if ( $ecpt_imdb = get_post_meta( get_the_ID(), \'ecpt_imdb\', true ) ) : ?>

    <h3>About the Movie</h3>
    <?php echo do_shortcode( \'[imdb]http://www.imdb.com/title/\' . $ecpt_imdb . \'/[/imdb]\' ) ?>

<?php endif ?>
你会发现我也使用了template tag get_the_ID(), 这是获取当前帖子ID的“正确”方法。

结束