从<h2>和<audio>文本中排除标签链接

时间:2018-06-22 18:29:03

标签: wordpress

我已经尽力创建标签插件,但是这里有很多。我的目标是我想从html标签等中排除标签链接。我想过很多主意,但似乎永远都行不通。它应该只跳过这些html部分。请帮助我。

$replace_times=3;
add_action('admin_menu','tag2link_setting_options');
add_filter('the_content','tag2link');
init_tag2link();
$tags;
function init_tag2link(){
    add_option('tag2link_times');
    add_option('tag2link_use');
}
function getPostTags(){
global $post_ID;
}
function tag2Link($s){
    global $id;
    global $replace_times;
    global $wp_rewrite;
    $te=get_option('tag2link_use');
    if($te=='te')   $useTe=true;
    else $useTe=false;
    $us=get_option('tag2link_times');
    $replace_times=intval($us);
    if($replace_times==0) $replace_times=3;
    /*
        Get tag permalink structure
    */
    //$structure=$this->get_tag_permastruct();
    $ss=$wp_rewrite->get_tag_permastruct();
    $structure="";
    if($ss==false) {
        $structure=get_option('siteurl').'/?tag=%tag%';
    }else $structure=get_option('siteurl').$ss;
    /*
        Get post tags
    */
    $tags=wp_get_post_tags($id);
    $p=$s;
    if($tags==null) return $p;
    /*
        Start replace
    */
    $count=count($tags);
    usort($tags,cmp);
    $temp=$structure;
    foreach($tags as $value){

        if($useTe){
            $pattern='/(?<=[^a-zA-Z])'.$value->name.'(?!.*<\/a>)/';
            $replace='<a href="http://localhost/wordpress/tag/'.$value->slug.'">'.$value->name.'</a>';
            $p=preg_replace($pattern,$replace,$p,$replace_times);
        }
        else{
                $structure=str_replace('%tag%',$value->slug,$temp);
            if($ss==false){
                $pattern='/(?<=[^a-zA-Z])'.$value->name.'(?!.*<\/a>)/';
                //$pattern='/(?<!\/\?)(?<!\w)'.$value->name.'(?!\w)(?!(\s|\w)*<\/a>)/';
            }else{
                //$pattern='/(?<!\/)(?<!\w)'.$value->name.'(?!\w)(?!(\s|\w)*<\/a>)/';
                $pattern='/(?<=[^a-zA-Z])'.$value->name.'(?!.*<\/a>)/';
            }
            $tag_permalink = get_tag_link($value->term_id);
            $replace='<a href="'. $tag_permalink .'">'.$value->name.'</a>';
            $p=preg_replace($pattern,$replace,$p,$replace_times);
        }
     }      
    return $p;
}
function cmp($a,$b){
    return strlen($a->name)-strlen($b->name);
}
function tag2link_setting_options(){
        add_options_page('Tag to Links', 'Tag to Links', 5, 'automatic-tag-link/options.php');

在代码中,我不希望标记链接全部出现在h2,h2,h1,h4,html文本中。包括,标签等。请我真的需要这个。我已经尽力了,但没有出路。

1 个答案:

答案 0 :(得分:0)

嗨,希望对您有所帮助。此代码使用缓冲区。

尝试通过替换值来与您检查代码

Loop through buffer content with different value