使自定义场图像用作特色图像

时间:2019-03-25 06:27:46

标签: php wordpress

我的客户旧主题未使用要显示在页面顶部的精选图片。相反,他们使用的自定义字段的功能与精选图片相同。

问题在于,他们需要添加一个插件来制作网格,并且由于特色图片字段为空,因此该插件不显示每个帖子的图片。

有600多个帖子,手动填写特色图片太费时间了。

从技术上讲,是否有一种方法可以将自定义字段用作特色图片,以便它可以显示特色图片在何处显示?

那是在单个帖子页面上调用图像的PHP:

                        <?php if (!empty($post->news_image)): ?>
                            <img class="news-image" src="<?php

                            echo $post->news_image;

                            ?>" alt="News Thumb" />
                        <?php endif ?>

Thats the code at the beguinign of the single post php file:

    $theme_url = get_bloginfo('stylesheet_directory').'/';
$base_url = get_bloginfo('url').'/';
$current_lang = pll_current_language();
$current_URI = $_SERVER["REQUEST_URI"];


// get related news
$news_args = array(
    'posts_per_page' => 3,
    'post_type' => 'news',
    'category__not_in' => pll_get_term(171),
    'exclude' => $post->ID,
    'orderby' => 'meta_value',
    'meta_key' => 'news_date',
    'order' => 'DESC',
);
$other_news = get_posts($news_args);


// find Prev & Next news
$news_args["posts_per_page"] = -1;
unset($news_args["exclude"]);

$all_news = get_posts($news_args);

foreach ($all_news as $k => $item) {
    if ($item->ID == $post->ID) {
        $prev_page = isset($all_news[$k-1]) ? $all_news[$k-1] : null;
        $next_page = isset($all_news[$k+1]) ? $all_news[$k+1] : null;
    }
}

$closebuttonlink = $base_url;

if (strpos($_SERVER['HTTP_REFERER'], 'investors/news') !== false) {
    $closebuttonlink = $base_url."investors/news/";
}
else if (preg_match('/\/investors/', wp_get_referer())) {
        $closebuttonlink = $base_url."investors/";
}
else
{
        $closebuttonlink = $base_url;
}



function get_ir_news_permalink($post_object)
{
    $base_url = get_bloginfo('url').'/';
    return $base_url.'investors/news_view/'.$post_object->post_name;
}
if(in_category(141) && preg_match('/media\/news_view/', $current_URI)) {
    wp_redirect(get_ir_news_permalink($post));
}
if(in_category(272) && preg_match('/media\/news_view/', $current_URI)) {
    wp_redirect(get_ir_news_permalink($post));
}


set_query_var( 'section', 2 );

set_query_var( 'newsdetails', 1 );
// select Investor section menu

// load header
get_header();

1 个答案:

答案 0 :(得分:0)

好吧,有以下三种获取图像场的方法。

1。返回值=图片对象(屏幕截图:https://screencast.com/t/gTdgeU0Y

注意:请添加您的ID而不是“图片”

<?php 
    $image = get_field('image');
    if( !empty($image) ):
?>
    <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" />
<?php endif; ?>

2。返回值=图片网址

<?php if( get_field('image') ): ?>
     <img src="<?php the_field('image'); ?>" />
<?php endif; ?>

3。返回值=图片ID

<?php 
$image = get_field('image');
$size = 'full'; // (thumbnail, medium, large, full or custom size)

if( $image )
{
    echo wp_get_attachment_image( $image, $size );
}
?>

请将上面的代码放在要获取图像的位置。希望这对您有用:)