Support Log in

29. Post Meta Reference

Developer Guide
Prefer video? Watch the Lang Forge tutorials 9 short guides covering every feature Watch

Lang Forge uses WordPress post meta to store language data on individual posts.

_lf_language

The primary language identifier for every post/page.

php
// Read the language of a post
$lang = get_post_meta($post_id, '_lf_language', true);
// Returns: 'en'

// Use the API function (recommended - updates both postmeta AND lf_translations table)
LF_Post_Translation::instance()->set_post_language($post_id, 'en');

// Direct write (updates ONLY postmeta - does NOT update lf_translations)
// Only use this if you know what you are doing
update_post_meta($post_id, '_lf_language', 'en');

> Note: Always use LF_Post_Translation::instance()->set_post_language() when setting languages programmatically. It updates both the postmeta and the wp_lf_translations table.

_lf_menu_item_language

Used on nav menu items to assign a language scope.

php
$menu_lang = get_post_meta($menu_item_id, '_lf_menu_item_language', true);
// Returns: 'en' or empty string for all-language items
Example: Filter menu items by language in a custom walker
php
class Theme_Language_Menu_Walker extends Walker_Nav_Menu {
    public function start_el(&$output, $item, $depth = 0, $args = null, $id = 0) {
        $item_lang = get_post_meta($item->ID, '_lf_menu_item_language', true);
        $current_lang = lf_get_current_language();

        if ($item_lang && $item_lang !== $current_lang) {
            return;
        }

        parent::start_el($output, $item, $depth, $args, $id);
    }
}

Forge AI Assistant Online

Hi! I'm the Lang Forge AI assistant. Ask me anything about the plugin — setup, features, troubleshooting, or development.

Just now
Powered by Forge AI · Browse docs