【问题标题】:Change post meta numbers with images使用图像更改帖子元编号
【发布时间】:2026-01-29 11:35:01
【问题描述】:

我需要获取帖子元值“电话”,他的值在这篇帖子中是“555666777”,在其他帖子中,可以是 456654768...或其他任何值

我的代码是这样的:

<?php global $wp_query; $postid = $wp_query->post->ID; echo get_post_meta($postid, 'phone', true); ?>

现在,我希望这些数字不要像数字一样显示在 html 中,我需要这些数字是图像。

我创建了0.jpg 1.jpg 2.jpg 3.jpg 4.jpg 5.jpg 6.jpg 7.jpg 8.jpg 9.jpg

这个jpg可以改变电话号码的数值吗?我不希望 google robots 或其他人知道这个电话号码。

【问题讨论】:

  • "可以是 456654768... 或其他":但仍然是一个完全合法的整数,对吧?没有破折号、+ 符号、空格或任何东西?
  • 没有。只有 9 个数字......我希望每个三个数字都有空格,但这不是问题。我可以稍后用 css 或 jquery 放置那个空格(n+3)
  • 感谢您的澄清。请在下面查看我的答案。
  • 如果是我,我会制作一个图像精灵并设置 10 个 css 类来管理数字的跨度标签背景......然后只向服务器发出一个图像请求。制作一个类名数组,并根据电话号码中的每个数字应用它们

标签: php jquery wordpress


【解决方案1】:

一个好的方法是使用模数和整数除法来隔离每个数字,并从中生成一个img 标签:

global $wp_query; 
$postid = $wp_query->post->ID; 
$i=intval(get_post_meta($postid, 'phone', true));
$s='';
while($i>0)
    {
    $digit=$i % 10;
    $i=(int)($i/10);
    $s="<img src='$digit.jpg' title='$digit'>$s";
    }
echo $s;

【讨论】:

    【解决方案2】:

    我认为你不需要 wp_query 来获取当前的 post_id

    global $post;
    
    $image_str = get_post_meta($post->ID, 'phone', true);
    
    $image_array = str_split(image_str);
    
    $image_array_with_jpg = array();
    
    foreach($image_array as $k=>$v){
    
      $image_array_with_jpg[] = $v.'.jpg';
    }
     print_r( $image_array_with_jpg); // array with all your post images with .jpg extension
    

    【讨论】: