Support » Fixing WordPress » How to add post_meta to a block theme html file?

Viewing 5 replies - 1 through 5 (of 5 total)
  • Hi can you me name of theme plz

    Thread Starter ryanpluckrose

    (@ryanpluckrose)

    it’s a custom theme I’m building but it’s similar to the 2023 theme

    https://github.com/WordPress/twentytwentythree

    Thread Starter ryanpluckrose

    (@ryanpluckrose)

    Block Patterns were the answer to this question.
    https://developer.wordpress.org/themes/advanced-topics/block-patterns/

    nilshenrikj

    (@nilshenrikj)

    Hey @ryanpluckrose, would you be willing to share how you’ve achieved it?

    I’m exploring with Block patterns as per your answer, but cannot retrieve post meta within a pattern template. I get the same error over and over (Trying to get property ‘ID’ of non-object).

    Many thanks,

    Thread Starter ryanpluckrose

    (@ryanpluckrose)

    sure!

    So while it was the answer I still had to do a workaround to get the actual data.

    Below is the full file and I had to do the $_SERVER stuff in each pattern that I needed to get meta data in. I’m hoping there will be a proper way to do this in the near future (unless I’ve missed it).

    I’ve yet to try moving it to functions.php and doing the logic there though.

    <?php
    /**
     * Title: Page Title
     * Slug: my-theme/page-title
     * Categories: content
     * Description: My Page Title
     * Keywords: content, page title
     * Block types: core/template-part/page-title
     */
    
    // todo: Temporary workaround to get $post
    if (isset($_SERVER['HTTP_HOST'], $_SERVER['REQUEST_URI'])) {
        $url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
        $post_id = url_to_postid($url);
        $post = get_post($post_id);
    
        $meta_hide_page_title = $post ? get_post_meta($post->ID, 'hide_page_title', true) : null;
    }
    ?>
    <?php // Check if page title should be hidden ?>
    <?php if (isset($meta_hide_page_title) && !$meta_hide_page_title): ?>
        <!-- wp:post-title {"level":1,"align":"wide","style":{"spacing":{"margin":{"top":"var:preset|spacing|xl","bottom":"var:preset|spacing|xl"}}}} /-->
    <?php endif; ?>
    
Viewing 5 replies - 1 through 5 (of 5 total)
  • The topic ‘How to add post_meta to a block theme html file?’ is closed to new replies.