将自定义域查询从插件输出到网站标题

时间:2012-12-23 作者:Dz.slick

我将下面的代码添加到我正在使用的插件中,以显示自定义字段的值,但它显示为空。

function mySEO() {
    require(\'wp-site-gps-transport.php\');
}

// Add hook for admin <head>
add_action(\'admin_head\', \'mySEO\');
// Add hook for front-end <head>
add_action(\'wp_head\', \'mySEO\');

add_filter( \'cmb_meta_boxes\', \'cmb_sample_metaboxes\' );
当我将被调用文件的内容直接添加到文件夹中时,它会完美地显示出来。然而,我希望插件的用户只输入值,而不接触代码。下面是被调用文件中的代码。你知道问题出在哪里吗?

<title><?php
if ( is_single() || is_page() ) {
    $title = get_post_meta( $post->ID, \'title\', true ); 
    if ( $title )
        echo $title . \' | \' . get_bloginfo(\'name\');
    else
        wp_title(\'\') . \' | \' . get_bloginfo(\'name\');
}
?></title>

<?php
if ( is_single() || is_page() ) {

    if ( have_posts() ) : while ( have_posts() ) :  the_post();

    $description = get_post_meta( $post->ID, \'description\', true ); 
    printf( \'<meta name="description" content="%s" />\',
        ( $description ? $description : get_the_excerpt_rss() )
    );

    endwhile; endif;

} elseif ( is_home() ) {
    printf( \'<meta name="description" content="%s" />\',
        get_bloginfo(\'description\')
    );
}

if ( is_single() || is_page() ) {

    if ( have_posts() ) :   while ( have_posts() ) : the_post();

    $keywords = get_post_meta($post->ID, \'keywords\', true);
    printf ( \'<meta name="keywords" content="%s" />\',
          ( $keywords ? $keywords : the_excerpt_rss(); ?
    );

    endwhile; endif;

} elseif ( is_home() ) {
    printf( \'<meta name="keywords" content="%s" />\',
        get_bloginfo(\'keywords\');
    );


}

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

除了一些语法错误之外printfs、 问题的症结在于:

$title = get_post_meta( $post->ID, \'title\', true );
无法在包含的文件中工作,因为没有$post 在这个范围内,您必须全球化$post 在使用之前:

global $post;
$title = get_post_meta( $post->ID, \'title\', true );

结束

相关推荐

Multiple loops for plugin

好的,我正在使用插件“the Cart Press”,我试图了解使用自定义帖子类型时多个循环是如何工作的。如果我定期查询帖子,它只会返回我的博客帖子,而不是我的TCP产品。当定期显示产品时,它们使用与博客帖子相同的循环功能,因此我想知道是什么不同的情况导致这些产品被加载。我过去使用过一个名为“Simple portfolio”的公文包插件,它有一个名为Simple\\u portfolio\\u get\\u projects()的自定义函数,它只给了我一个项目数组,我希望能够对TCP产品执行同样的操作。