使い方:
結果:
このショートコードの特徴は
1.draftvoid != 0 の時は、下書きや投稿予約状態の記事へのリンクが生成されなくなる。(draftの時はvoidの設定が!falseの意味)
2.draftvoid == 0 の時は、リンクとならず挟んだ文字列がただのテキストとして出力される
3.draftvoidの値にかかわらず、記事のステータスが「公開(publish)」ならリンクが表示される。
使い方2:
<?php function urlToFunc($atts,$content = null){ extract(shortcode_atts(array( 'postid' => 0, 'draftvoid'=>0, ), $atts)); $ret = esc_url( home_url( '/' ) ); // ページへのアドレスを作成 if( $postid != 0){ $ret = esc_url( home_url( '/' ) ).'?p=' . $postid; } //下書きなどのステータスならリンクをつけない if(get_post_status( $postid ) != 'publish'){ //draftvoidがtrueの時はそもそも何も表示しない if( $draftvoid != 0 ){ return ''; } else{ //draftvoidがfalseの時はリンクをつけないでタイトルだけを返す return $content; } } //挟まれた文字列にaタグをつける。ついでにリンクを表す画像もつけている if( $content != '' ){ $imga = '<img src="' . get_template_directory_uri() . '/data/linkto.png" width="8" height="8" />'; return '<a href="'. $ret . '">' . $content .$imga .'</a>'; } return $ret; } add_shortcode('urlTo', 'urlToFunc'); ?>