网站优化

网站优化

Products

当前位置:首页 > 网站优化 >

Wordpress从function.php加载自定义字段

GG网络技术分享 2025-03-18 16:12 11


问题描述:

I\'m new in wordpress. I\'m trying load custom field of post from function.php. Below is code for function post grid layout function where I use custom field:

 $args = array(

\'post_type\' => \'post\',

\'category_name\' => \'category\',

\'posts_per_page\' => -1,

\'orderby\' => \'ID\',

\'order\' => \'ASC\'

);

// The Query

$the_query = new WP_Query( $args );

// The Loop

if ( $the_query->have_posts() ) {

$c = 1;

$bpr = 5;

while ( $the_query->have_posts() ) : $the_query->the_post();

?>

<div class=\"member\">

<div class=\"div-block-image\">

<?php the_post_thumbnail(); ?>

</div>

<div class=\"div-block-29 w-clearfix\">

<div class=\"text-block-21\"><?php the_title(); ?></div>

<div class=\"text-block-22\">subTitle</div>

<div class=\"text-block-23\">Text...</div>

<a href=\"<?php the_permalink() ?>\" class=\"more w-inline-block\">

<div class=\"text-block-24\">More</div>

</a>

<p><?php echo get_post_meta($post->ID, \'linkedin\', true); ?></p> // custom-field

<p><?php echo get_post_meta($post->ID, \'bio\', true); ?></p>

<a href=\"#\" target=\"_blank\" class=\"link-block w-inline-block\">

<div class=\"biotxt\">bio</div>

</a>

<a href=\"#\" target=\"_blank\" class=\"link-block w-inline-block\">

<div class=\"text-block-20\"></div>

</a>

</div>

</div>

<?

if( $c == $bpr ) {

echo \'<div class=\"clear\"></div>\';

$c = 0;

}

$c++;

endwhile;

} else {

_e( \'<h2>Oops!</h2>\', \'rys\' );

_e( \'<p>Sorry, seems there are no post at the moment.</p>\', \'rys\' );

}

wp_reset_postdata();

I want to load this function from template page. All is loading normally except custom field:

<p><?php echo get_post_meta($post->ID, \'linkedin\', true); ?></p>

If run function code from template page its running normal. Any ideas?

网友观点:

$post->ID is not correct, as it\'s picking up the ID from the global $post object, which just happens to be the same when you\'re on the template page, but not necessarily when you\'re using it in a function in functions.php. Use get_the_ID() instead.

###

Within your custom loop, you will want to update those to use: get_the_ID() and not $post->ID.

<p><?php echo get_post_meta(get_the_ID(), \'linkedin\', true); ?></p>

This will get the ID from the current loop.

Ref: https://developer.wordpress.org/reference/functions/get_the_id/

标签:

提交需求或反馈

Demand feedback