カテゴリー別アーカイブ: WordPress

【コメントアウトができない】WPのちょっと困った仕様

 

WPは記事やページ内でHTMLのコメントアウトができない。
タグが勝手に変換されてしまうのが原因。(←このせいで上手く行かないことが多い気がする。数年前はプレビューでスタイルが変わっちゃったりとか。ビジュアル開いちゃうとphpが壊れるのは今でも?)

ググったり、コーデックス見たりしても対処法を見つけれずにいたのだけど、ようやく方法を教えてもらったのでメモ。
ググり方がわるかったのか?

■ショートコード編。
MTで言うみたいなやつをショートで作る。
場所はおなじみfunction.php

<?php
function ignore_shortcode( $atts, $content = null ) {
    return null;
}
add_shortcode('ignore', 'ignore_shortcode');
?>

コメントアウトしたいところを[ignore] [/ignore]で囲うとコメントアウトできる。 しかし、↑を書いたWPでは動かず・・・。ホワイト画面になってしまった。。。 何かと競合?? ということで、別案。 勝手に変換してくれる部分の機能をコメントアウトしてあげる。 直接default-filters.phpをいじってもOKだけど、「default」とかつくと、ちょっとビビりな私として触るのが怖いので、やっぱりfunction.php。 以下を記述

remove_filter( 'the_content', 'wptexturize' );

あとはいつも通り、コメントアウト。

PHPの場合は以下でも可。直接コメントアウトしたいところに書く。

<!--?php if(0){?-->
コメントアウト部分。複数行可。
<!--?php } ?-->

wordpress.org から wordpress.com にお引越し

 

wordpress.org から wordpress.com にお引越ししました。
サーバーとドメインの更新時期になって、その辺のお金をケチりました。
元々自分のメモ用と実験場所に。と開設したものの、結局都度調べたり、昔の制作物のソースを見に行ったりしちゃって、全くtipsの蓄積にならなかったもので・・・・

wordpress.org とwordpress.comの違いをメモ。

■wordpress.org→オープンソース。ここではWPが無料配布されていて、ZIPでDLできる、おなじみのところです。
自分のサーバーにファイルを突っ込んで使用するので、好き放題に弄れます。(themaの著作権とかを侵害しない限り。)
PHPmyadminプラグインをインストールすればDBもいじれます。

■wordpress.com→企業が運営している無料レンタルブログ。無料の場合、ドメインはwordpredd.comのサブドメになる。ただし有料で独自ドメインを選ぶことも可。
「レンタルブログ」なので触れる範囲はかなり限られる。インストールできるテーマも結構限られる。CSSも弄れない。プラグインも入れれない。(はず。方法あったら教えてください。)→PHPは使えない。
※ただし、各種有料プランがあり、それによって、CSSなどはいじれるようになるっぽい。

今回は節約が目的なので、勿論有料プランは使用せず・・・・。
メモにはできても、実験場にはできなくなりました・・・。
「テーマの編集」とプラグインは無料でも利用できるようにして頂けると大変ありがたいんだけども・・・無料では無理か・・・・?

wordpress.comの有料版でカスタムデザインとかできるのが年間30ドル。

pro版とかってのが年間(←「1年間のアップグレード」ってあるから多分年額。)99ドル。

高い・・・
年間99ドル払うんだったら、普通にさくらのスタンダードプランとかのがお得で、しかも好きに弄れるんじゃないかと思うと、このpro版とやらを利用するメリットが何なのか全くわからない。
(サーバ借りたりドメイン取ったりするのが面倒とかって人の為なのかしら?
詳しくない人の為・・・ってもいまどき調べればすぐに方法わかるしね。キャプチャ付きで丁寧に説明してくれてるサイトやブログなんかがたくさんあるんだし。
まぁ、タダで使わせてもらっておいてあんまり文句いうものではないとは思うけど、ちょっと高くないか?)

やっぱりサーバ更新すればよかったな・・・とちょっと後悔してますが、まぁしばらく使ってみます。
無料でもテーマ編集とプラグインが使えるようになることを夢見つつ・・・

追記:Gアナリティクスも入れられず・・・。
昔、wordpress.orgのほうでは、ウィジェットにトラッキングコード書いて解析できてたんですが・・・(「テーマの編集」からheader.phpとかfooter.phpをいじれるってのを知らなかったときに、サーバにつなぐのがメンドい・・・とかいう怠惰な理由からウィジェットに突っ込んでみたら成功した。)
なんかこちらでは、勝手に整形されてscriptタグが消えて、フロントにそのままコードが出ちゃいます・・・。
プラグインも入れられないから解析系のプラグインも使えないし・・・。
何か方法はないものかしら・・・

【PHP Text Widget 】PHPをウィジェットで実行するプラグイン(wordpress)

 

2013/9/5追記
ブルートフォースアタックやWP改ざん被害が相次いでいます。
ウィジェットでPHPを動かすことにより、悪意あるスクリプトを書き込まれた際に被害が拡大する恐れがあり、こちらのプラグイン等、テンプレート以外でPHPを動かすプラグインの利用は非推奨とされています。
利用は必ず自己責任にてお願いします。
※配布サイトへのリンクは削除致しました。
———————————————————
いつものようにプラグインに追加、有効化。

外観>ウィジェット
PHPを挿入したい場所へ「テキスト」ドラッグ。

PHPを記述して、保存。

 

Weaverでアーカイブの改行を反映させる【wordpress】

 

wordpressのテーマで、アーカイブやカテゴリーで改行や画像が全く反映されないものがいくつかある。

この場合、これは投稿を引っ張ってくる為に<?php the_excerpt(); ?>を使用していることが多い。
(これはWPの抜粋のためのコード)

<?php the_excerpt(); ?>を<?php the_content(); ?>に変えればOK。

excerpt(); content();については以下を参照のこと。

excerpt(); →http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/the_excerpt

content(); →http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/the_content

ただし、Weaverはループの定義をメイン(index.php)やarchive.phpなどで指定してるのではなくて、content.phpで一括指定してある。
weaverを使用する際は、content.phpの11行目あたりにある<?php weaver_the_excerpt_featured(); ?>を<?php weaver_the_content_featured(); ?>に書き換えればOK.

weaverは管理画面で行える設定が非常に多く、htmゃcss、PHPを知らなくてもカスタマイズが細かくできたり、ウィジェットエリアが多彩でけっこう使いやすいテーマかなと思うけど、その分ファイル数が多くて、管理画面>外観>テーマ編集からファイルを探したり記述を追いかけたりするのがちょっとだけ大変かも。

weaverとwever2010って何が違うんだろう??

jQueryの競合回避【WP】

 

【一般的】

head内jQueryよりも前に以下を記述。

<script>
jQuery.noConflict();
var j$ = jQuery;
</script>

jQueryの$を j$に書き換える。

 

【WP】
若干特殊
$ の代わりに jQuery を使用する。
MegaMenu Pluginだとこんな感じ↓
<script type=”text/javascript”>
jQuery (function(){
var SelfLocation = window.location.href.split(‘?’);
switch (SelfLocation[1]) {
case “justify_right”:
jQuery(“.megamenu”).megamenu({ ‘justify’:’right’ });
break;
case “justify_left”:
default:
jQuery(“.megamenu”).megamenu();
}
});
</script>

WP通常紹介されるnoConflictで上手くいかないので要注意。

目次生成コード【PHP】

 

2013/9/5追記
ブルートフォースアタックやWP改ざん等の被害が相次いでいます。
テンプレート以外でPHPを挙動させることはセキュリティ的にリスクを伴いますので、非推奨です。
以下のコードについても、ページ、投稿、ウィジェットで利用する場合はショートコードを作成して利用するようにしてください。
テンプレート以外で利用する場合は自己責任にてお願い致します。
⇒ショートコードの使い方
——————————————-

画像がある場合は画像も一緒に読み込むver。
画RSSが昇順になったような感じ。
index.phpとかに入れたり、ちょっと改造して組み合わせたらサイトマップ生成とかできそう。
sitemapプラグインのddsitemapgenも便利だけど、”いかにも自動生成”だから・・・。

そのうち気が向いたらやってみるかも?

ウィジェットの「投稿目次」でやってみた。
以下投稿目次のコード。

——————————————

<div style=”width: 250px; “>

<?php $posts = get_posts(‘posts_per_page=500&order=ASC&orderby=date’);
$i=0;
foreach($posts as $post) :
setup_postdata($post);
?>

<a href=”<?php echo $post->guid ?>”>
<?php
$images =& get_children( ‘post_type=attachment&post_mime_type=image&post_parent=’.$post->ID);
if ( empty($images) ) {/*画像を使っていない場合*/
} else {
foreach ( $images as $attachment_id => $attachment ) {
$images=array_reverse(array_keys($images));
echo wp_get_attachment_image( $images[0], “thumbnail”);
break;
}
}
?></a>
<p><a href=”<?php echo $post->guid ?>”>● <?php echo $post->post_title ?></a></p>

<?php $i3++; endforeach; ?>

</div>

 

——————————————

 

画像なしでタイトルだけ引っ張ってくるver

——————————————

<div style=”margin-top:20px;margin-left:100px;”>
<?php $posts = get_posts(‘posts_per_page=10&order=ASC&orderby=date’);
foreach($posts as $post) :
setup_postdata($post); ?>
<dd>● <a href=”<?php the_permalink(); ?>”><?php the_title(); ?></a></dd>
<?php $i1++; endforeach; ?>
<?php if($i1>=1000){ ?>

<? } ?>
</div>

<p></p>

 

——————————————

 

タイトルだけじゃなくて本文の抜粋を追加したい場合はタイトルひっぱった後にexcerptを入れてあげればOK。

 

前略

<p><a href=”<?php echo $post->guid ?>”>● <?php echo $post->post_title ?></a></p>
<?php the_excerpt(); ?>

後略