Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从页面主体中的自定义字段中获取值,然后将其放在标题中的meta tags内容中?Wordpress_Php_Html_Wordpress - Fatal编程技术网

Php 如何从页面主体中的自定义字段中获取值,然后将其放在标题中的meta tags内容中?Wordpress

Php 如何从页面主体中的自定义字段中获取值,然后将其放在标题中的meta tags内容中?Wordpress,php,html,wordpress,Php,Html,Wordpress,我尝试了不同的方法来获取自定义字段中的值数据,并将其放在标题中的meta tags属性中,但没有成功 我的网站是基于Wordpress运行的。我创建了一个页面来显示自定义字段中的数据。我添加了一个facebook共享按钮来在facebook上共享内容 当我点击共享按钮时,Facebook只捕捉到Wordpress元标记和默认元标记 我编辑了open-graph.php,添加了一个条件,使Wordpress仅在该页面上使用我的自定义元标记 问题是,我不能或不知道如何从数据库中获取数据并将其放入元标

我尝试了不同的方法来获取自定义字段中的值数据,并将其放在标题中的meta tags属性中,但没有成功

我的网站是基于Wordpress运行的。我创建了一个页面来显示自定义字段中的数据。我添加了一个facebook共享按钮来在facebook上共享内容

当我点击共享按钮时,Facebook只捕捉到Wordpress元标记和默认元标记

我编辑了open-graph.php,添加了一个条件,使Wordpress仅在该页面上使用我的自定义元标记

问题是,我不能或不知道如何从数据库中获取数据并将其放入元标记中。因为头在主体之前加载,所以头中的那些元标记总是在从数据库获取数据的函数返回值之前加载。即使我创建了所需的标记,它们仍然位于主体中,这不是元标记的正确位置

我试图将我的数据函数直接放在open-graph.php中,就在我的页面条件语句的正下方,但它仍然不起作用


是否有任何方法可以从body中加载数据并将其放在header中的meta标记中?请帮助。

我最近在我的
header.php
文件中以以下方式设置了og meta标记:

<?php
    $theme = wp_get_theme();
    $screenshot_url = esc_url( $theme->get_screenshot() );
?>

<?php if ( is_home() ): ?>

<meta property="og:url"           content="<?php echo get_home_url(''); ?>" />
<meta property="og:type"          content="website" />
<meta property="og:title"         content="<?php echo get_bloginfo('name'); ?>" />
<meta property="og:description"   content="<?php echo get_bloginfo('description'); ?>" />
<meta property="og:image"         content="<?php echo $screenshot_url; ?>" />

<?php elseif( is_category() ):
$cat_id = get_query_var('cat');
$cat_name = get_cat_name($cat_id);
$cat_desc = (category_description( $cat_id ) != '') ? category_description( $cat_id ) : get_bloginfo('description');
?>

<meta property="og:url"           content="<?php echo get_category_link($cat_id); ?>" />
<meta property="og:type"          content="website" />
<meta property="og:title"         content="<?php echo $cat_name; ?>" />
<meta property="og:description"   content="<?php echo $cat_desc; ?>" />
<meta property="og:image"         content="<?php echo $screenshot_url; ?>" />

<?php else: ?>

<meta property="og:url"           content="<?php the_permalink(); ?>" />
<meta property="og:type"          content="website" />
<meta property="og:title"         content="<?php echo get_the_title(); ?>" />
<meta property="og:description"   content="<?php echo get_the_excerpt(); ?>" />
<?php if(has_post_thumbnail()):
    $url = wp_get_attachment_url( get_post_thumbnail_id() );
?>
<meta property="og:image"         content="<?php echo $url; ?>" />
<?php else: ?>
<meta property="og:image"         content="<?php echo $screenshot_url; ?>" />

<?php endif; ?>

<?php endif; ?>


是的,我做了同样的事情,但我必须写两个函数。1获取正文中自定义字段的数据,另一个获取标题的数据。我不能合并它们的原因是我使用第一个函数作为短代码。我无法在标题中回忆它。为什么要使用og元标记作为短代码?只要把它们直接放在
header.php
中,就可以了。没有必要用这些简单的事情来让你的生活复杂化。。。