web-dev-qa-db-ja.com

ページタイトルを短いコードに配置します

Twitterのブートストラップクラスにコンテンツをラップする[contianer-narrow][/container-narrow]という短いコードを作成しました。.container-narrow問題は、ページタイトルが含まれていないことです。言う方法があります:

if this short code is used, include the page title, else forget it?

1
TheWebs

あなたの具体的な質問としては:
あなたは理論的にこの特定のショートコードが解決される前に検索されたコンテンツを解析し、フラグを設定し、それを条件にタイトルをラップすることができます。

しかし、ショートコードアプローチを捨てて、単純に 新しいページテンプレートを作成する のがはるかに理にかなっています。
(特に、ショートコードの解析、または少なくともその結果は、とにかく使用済みテンプレートファイルで行われる必要があることを考えると)

テーマのpage.phpの内容を新しいファイルにコピーします。
これをpage-narrow.phpと呼びます。
先頭に

<?php
/*
 * Template Name: Narrow Page
 */
?>

そして、コピーした部分を目的のクラスを持つ要素にラップします。

1
Johannes Pille

私はこのようなことを試してみたい(未テスト):

function has_shortcode($ sc = ''){
グローバル$ wp_query; 
 foreach($ wp_query-> $ postとして投稿){
 if(!empty($ sc)&& stripos($ post-> post_content、 '['。$ sc)!== false){
 trueを返し、
} 
} 
 falseを返します。 .____。]}

それからあなたはそれをそのように使うことができます:

if(has_shortcode( 'container-narrow'){}
1
JMau