FV.Zone Project Code

分享两个WP相关的函数

其实我收集了一些关于WP的模板制作的资料和函数
下面这个函数可以很容易获得日志的分类ID

获得当前日志的分类
你可以把他复制到模板文件functions.php中去

function category_id($post)
   { global $wpdb, $table_prefix, $post;
            $sql = "SELECT tt.term_id FROM ". $table_prefix ."term_taxonomy tt, " . $table_prefix . "term_relationships tr WHERE tt.taxonomy = 'category' AND tt.term_taxonomy_id = tr.term_taxonomy_id AND tr.object_id = $post->ID";
            $cats = $wpdb->get_results($sql);
              foreach($cats as $cat) {
                      $result = $cat->term_id;
              }
      return $result;
    }

要使用他很简单
只要将你的日志全局变量传入就OK了,像这样:

echo $c = category_id($post);

获得日志内容的全部图片函数

function getImgTags($s) {
                                $result=array();
                                $p = "#<img\s+(?:[^>]+\s+)*src=[\"']?([^>]+?)[\"']?(?:\s+[^>]+)*\s*/?>#sim"; 
                                $r=preg_match_all($p,$s,$o);
                                        if (!$r) {return false;}
                                        else
                                        {
                                                foreach ($o[0] as $k=>$v)
                                        {
                                        $result[$k]["tagStr"]=$v;
                                        $result[$k]["src"]=$o[1][$k];
                                        $p2 = "#<img\s+(?:[^>]+\s+)*(alt|title)=[\"']?([^>]+?)[\"']?(?:\s+[^>]+)*\s*/?>#sim"; 
                                        $r2=preg_match($p2,$v,$o2);
                                        if ($r2) $result[$k][$o2[1]]=$o2[2];
                                        }
                        }
                return $result;

这个函数可能有些复杂,不过他可是相当的强大,前些日子为了应付一个摄影网站写的,他可以获得下面这种格式的图片地址和说明:

<img src="a.gif" alt="a" />

使用方法:

<?php $result = getImgTags(get_the_content()); 
if($result) :
foreach ($result as $v) : ?>
<a href="<?php echo $v["src"]; ?>" class="lightview" rel="gallery[credit]" title="<?php echo $v["alt"]; ?>"><img src="<?php echo $img_link; ?>" alt="<?php echo $v["alt"]; ?>" title="<?php echo $v["alt"]; ?>" /></a>
<?php endforeach; ?>
<?php endif; ?>

首先是将我们日志的正文传入getImgTags函数,然后得到一个数组,通过使用foreach循环一一将数组取出,

图片名为<?php echo $v["src"]; ?>alt信息为<?php echo $v["alt"]; ?>

当然这些都只是实验性的,并不保证性能会很好,但是就我使用以来没有出现过问题。
还有很多很多技巧,因为实在不想写东西,所以很少发布…

Leave a Reply

You must be logged in to post a comment.