我需要知道如何get_the_tags到阵列是否可能?

时间:2013-11-19 01:39:43

标签: wordpress wordpress-plugin

我需要知道如何将get_the_tags()发送到数组?

我想要这样

$myarray  = array('one', 'two', 'three', 'four', 'five', 'six');

我希望将此代码与“替换the_content”一起使用,如此

<?php
function replace_content($content){
  foreach(get_the_tags() as $tag) {
    $out .= $tag->name .',';
    $csv_tags .= '"<a href="/' . $tag->slug . '">' . $tag->name . '</a>"';
  }
  $find  = array($out);
  $replace = array($csv_tags);
  $content = str_replace($find, $replace, $content);
  return $content;
}
add_filter('the_content', 'replace_content');
?>

在内容中查找标记并替换为链接

2 个答案:

答案 0 :(得分:1)

$posttags = get_the_tags();
$my_array = array();
if ($posttags) {
  foreach($posttags as $tag) {
    $my_array[] = $tag->name ; 
  }

..如果你的最终目标是输出它,就像你上面写的那样:

echo implode(',', $my_array);

..而且根据问题的类型,我不确定是否有一个,两个......你可能是ID,所以:

$posttags = get_the_tags();
$my_array = array();
if ($posttags) {
  foreach($posttags as $tag) {
    $my_array[] = $tag->term_id ; 
  }

顺便说一下 - 快速查看codex会告诉你......

答案 1 :(得分:0)

你应该可以这样做:

global $wpdb;
// get all term names in an indexed array
$array = $wpdb->get_results("SELECT name FROM wp_terms", ARRAY_N);
// walk over the array, use a anonymous function as callback
array_walk($array, function(&$item, $key) { $item = "'".$item[0]."'"; });

请注意,anonymous functions仅在PHP 5.3之后可用

如果你只想要特定帖子的标签,你应该能够使用get_the_tags()做同样的事情:

$tags = get_the_tags();
array_walk($tags, function(&$item, $key) { $item = "'".$item->name."'"; });

根据您更新的问题判断,您不需要上述任何代码,为了在每个代码周围获取单引号,您唯一需要做的是:

foreach(get_the_tags() as $tag) {
  $out .= $tag->name .',';
  $csv_tags .= '"<a href="/' . $tag->slug . '">' . "'".$tag->name."'" . '</a>"';
}