使用WordPress中的get_option()定义自定义字段

时间:2018-03-19 16:54:18

标签: php wordpress wordpress-theming yoast

我有一些自定义设置页面来定义一些全局变量。所以现在我可以打印我的变量:

echo get_option('dealcity');

但是我需要能够在Yoast的页面标题中使用结果,但是使用Yoasts自定义字段代码%% cf_dealcity %%不起作用。我想因为dealcity是一个选项设置而不是自定义字段。所以我认为我需要将选项定义为自定义字段。我尝试使用以下内容,然后尝试%% cf_dealercity %%,但这不起作用:

function save_your_fields_meta( $post_id ) {   
$dealercity = get_option('dealcity');
}
add_action( 'save_post', 'save_your_fields_meta' );

1 个答案:

答案 0 :(得分:0)

根据您的代码段,您可能只是想在save_post挂钩上更新自定义字段?在您的示例中,没有任何事情会发生,因为您在定义$dealcity之后不做任何事情,并且您需要使用update_post_meta()保存它:

function chrislovessushi_fields_meta( $post_id ){   
    if( $dealcity = get_option( 'dealcity' ) ){
        // Make sure $dealcity exists, then update the post meta
        update_post_meta( $post_id, 'dealcity', $dealcity );
    }
}
add_action( 'save_post', 'chrislovessushi_fields_meta' );

同样对于未来的大脑糖果,您可以使用一些简单的过滤器修改页面标题,例如the_title用于页面标题和/或wp_title用于<title>标记:

function chrislovessushi_title_filter( $title, $id = null ) {
    if( is_page() ){
        // Add `dealcity` value before title if this is a page
        $title = get_option('dealcity').' '.$title;
    }
    return $title;
}
add_filter( 'the_title', 'chrislovessushi_title_filter', 10, 2 );