我需要知道如何将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');
?>
在内容中查找标记并替换为链接
答案 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>"';
}