Определите пользовательское поле с помощью get_option() в WordPress
У меня есть страница пользовательских настроек для определения глобальных переменных. Так что сейчас я могу напечатать свою переменную с помощью:
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 ответ
Основываясь на фрагменте кода, вы можете просто обновить пользовательские поля в 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 );