wordpressの技術情報をメモしたサイトです。

管理画面のカスタマイズで表示オプションを非表示での対応

管理画面のカスタマイズで表示オプションを非表示した場合、マルチサイトなどで登録ユーザーが表示オプションの項目を使いたい場合の対応で

表示オプションの全項目をまず表示させます。

その中から使わない項目だけを非表示にすれば、使いたい項目が常に表示されます。

こちらのサイトを参考にさせて頂きしました。

http://kachibito.net/wordpress/best-collection-of-code-for-your-functions.html

functions.phpに書き込んで下さい。

</pre>
<p>function all_settings_link() {<br /> add_options_page(__('All Settings'), __('All Settings'), 'administrator', 'options.php');<br /> }<br /> add_action('admin_menu', 'all_settings_link');</p>
<pre>

jetpack by wordpress.comプラグイン

jetpack by wordpress.comプラグインを使ってみた。

http://jetpack.me/

taka-jet

なぜかと言うと、

外部の自分のブログの記事をFeedWordpressでこちらの自分のブログに連携(自動投稿)させる設定をしたところ

記事が投稿されるとtwitter&facebookに自動投稿するプラグイン(一般にあるプラグイン)

では、facebook用のプラグイン(wordbooker)はfacebookに自動投稿されるがtwitter(wordtwit)はどうしても投稿されない。

他のプラグインも難しい、そこで、jetpackにしてみた。

jetpackはいままでお試しで触り程度使ったことがあったが他のプラグインで間に合っていたので必要が無かった。

導入してみると、なんか使いやすいぞ!

特に、SNS設定では余計なAPI登録もなく承認すれば自動投稿されるので素人にはもってこいだ!

機能も増えている。

モバイルテーマ表示

メール投稿

メール通知

これ一つである程度の事は出来てしまうではないか

ただ、wordpress.comへの登録と連携が必要になってくるのがありますが・・・

もっと便利にはなりそうです。

taka-jet-sns

http://jetpack.me/

facebookへの自動投稿の画像設定とOGP設定

まず、OGPとはOpen Graph protocolの略で、facebook・mixi・google+などのソーシャルメディアにサイト(ブログやホームページ)の投稿記事の内容を正確に表示させるもの ブログの自動投稿やブログ記事をシェアしたりするとリンクやタイトル、写真を付けて内容の抜粋を表示するあれです。

この情報をブログやホームページから投稿した場合正しく表示されないで画像やタイトル、内容がおかしい場合ってないでしょうか!! それを正しく表示させる事ができるのがOGPです。 OGPを設定すると正確な情報や画像を表示されるだけではなくfacebookでは、ブログやホームページからいいね!をした場合にニュースフィールドに記事を表示するようになります。さらに、その記事をいいね!するとそのいいね!した人の友達にも記事を表示します。 こちらの方のサイトを参照して下さい。http://www.lastday.jp/2012/04/19/ogp-is-important そのことにより、より多くの人に記事を見てもらえる事が可能になります。 ということで、 <head></head>間に以下の内容を記載する事で正確な情報を表示させます。

<meta content="記事のタイトル" /><meta content="article" /><meta content="記事の説明" /><meta content="記事のURL" /><meta content="画像のURL" /><meta content="サイトのタイトル" /><meta content="言語" /><meta content="facebookのアプリID" /> 

wordpressでは、プラグインに「Open Graph Pro」というプラグインがあります。 それを使って設定をすれば自動で<head>内に表示してくれます。 まず、facebook Developers appより新規設定してAppIDを取得します。

wordpressにプラグインを設定し有効すると右メニューの設定からOpen Graph Proを選択します。

Admin User IDはこちらを参考に!!http://ten-fingers-and-a-brain.com/wordpress-plugins/ogp/facebook-id/ Open Graph Proプラグインを設定し変更を保存でOGPの設定が終了します。 次に、画像を3倍大きくする設定をします。 通常、wordpressではディフォルトではサムネールが150px×150pxになっています。 wordpress管理画面の設定からメディアをクリック、サムネイルのサイズの大きさを200px×200pxに変更します。

詳しくはこちらの方のサイトを参考にしてください。http://gaiax-socialmedialab.jp/facebook/172 以上で設定終了ですが、wordoressの自動投稿プラグインでwordbookerを使っている場合facebookのデバッガーを行ったときにURLの重複や画像の表示などのエラーが発生してしまいます。 wordbookerはディフォルトでOGPを設定していますので重複してしまいます。また、wordbookerのOGPは何かとエラーが出やすいのでwordbooker側でOGPを使わない設定にしてしまいましょう。

図のように上級者向け設定の「オープングラフタグのインラインプロダクションの利用不可」の項目にチェックを入れることによりOGPをOFFにできます。 サイトを表示してプログラムのソースを確認してください。

カスタムフィールドから誕生日を入力して経過時間などの関数の設定

カスタムフィールドプラグイン(CustomFieldGuiUtility)を使って各ユーザーが誕生日を入力してもらいそのデーターから時間に関するphp計算式の覚え書きです。 ますは、入力データを関数に変換します。

//誕生日の西暦・月・日
&lt;?php 
$by = post_custom('birthday_y');
$bm = post_custom('birthday_m');
$bd = post_custom('birthday_d');
//現在の西暦・月・日・
$ty = date(&quot;Y&quot;);
$tm = date(&quot;m&quot;);
$td = date(&quot;d&quot;);
?&gt;

 

年齢を算出する関数

  &lt;!--?php 
function calc_age($birth)
{
list($by, $bm, $bd) = explode('-', $birth);
$age = $ty - $by;
if($tm * 100 + $td &lt; $bm * 100 + $bd) $age--;
return $age;
}
print calc_age(&quot;$by-$bm-$bd&quot;);
?--&gt;

 

お誕生日までの日数

&lt;!--?php 
$tuki = $bm ;
$niti = $bd;&lt;br ?--&gt;&lt;br /&gt;$one_day = 60 * 60 * 24;
$this_y = date(Y);&lt;br /&gt;&lt;br /&gt;$t1 = time();
$t2 = mktime(0, 0, 0, $tuki, $niti, $this_y);&lt;br /&gt;&lt;br /&gt;if ($t1 &lt; $t2) {&lt;br /&gt;&lt;br /&gt;$remain_day = ceil (($t2 - $t1) / $one_day);
echo ($remain_day);&lt;br /&gt;&lt;br /&gt;} else {&lt;br /&gt;&lt;br /&gt;$next_y = ++$this_y ;
$t3 = mktime(0, 0, 0, $tuki, $niti, $next_y);
$remain_day = ceil (($t3 - $t1) / $one_day);&lt;br /&gt;&lt;br /&gt;$tukihi1 = date ('Ymd', $t1) ;
$tukihi2 = date ('Ymd', $t2) ;
$remain_day = ($tukihi1 != $tukihi2) ? $remain_day : 0;&lt;br /&gt;&lt;br /&gt;echo ($remain_day);
}
?&gt;

 

生まれてからの経過日数

&lt;!--?php 
$t1 = mktime(0, 0, 0, $bm, $bd, $by);
$t2 = time(); //現在のタイムスタンプ
$one_day = 60 * 60 * 24; //1日の秒数
echo ($t2 - $t1) / $one_day; //2007年1月1日からの経過日数
// =--&gt; 234.69549768519
?&gt;

 

小数点以下なし日にちのみ

&lt;!--?php 
$today = mktime(0, 0, 0, gmdate(&quot;m&quot;), gmdate(&quot;d&quot;), gmdate(&quot;Y&quot;));
$start = mktime(0, 0, 0, $bm, $bd, $by);
$keika = (int)(($today - $start) / 86400);
echo ($keika);
?--&gt;

 

いろんなサイトからの引用になります。 いろいろ試してみてこの以上の関数が一番上手く動きました。

wordpressログインをしないと記事が見れない設定

wordpressでログインしないとサイト全体を見ることが出来ない設定の覚え書きです。 以下のタグをfunctions.phpに貼り付けすればログインしないと見れなくなります。

/* ログインユーザーのみ閲覧させるための記述 */
function require_login() {
if ( ! is_user_logged_in() &amp;amp;amp;&amp;amp;amp; ! preg_match( '/^(wp-login.php|async-upload.php)/', basename( $_SERVER['REQUEST_URI'] ) ) &amp;amp;amp;&amp;amp;amp; ! ( defined( 'DOING_AJAX' ) &amp;amp;amp;&amp;amp;amp; DOING_AJAX )  &amp;amp;amp;&amp;amp;amp; ! ( defined( 'DOING_CRON' ) &amp;amp;amp;&amp;amp;amp; DOING_CRON ) ) {
auth_redirect();
}
}
add_action( 'init', 'require_login' );

 

カスタム投稿ユーザー別記事表示

カスタム投稿設定で投稿記事をユーザー別に表示する設定です。

author.phpに以下の関数を設定、ループさせます。

<?php
$author_id = $post->post_author; // 現在の投稿者ID を変数に代入
$query= 'author=' . $author_id. '&showposts=20&post_type=blogpost'; // クエリを連結
query_posts($query); // クエリを実行
?>
<?php if (have_posts()) : ?>

<?php while (have_posts()) : the_post(); ?>

<!-- Start: Post -->
<div>
<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>

<p>
<span><?php the_time('Y年m月d日'); ?></span>
<span><?php the_author(); ?></span>
<span><?php the_category(", "); ?></span>
</p>

<div>
<?php the_post_thumbnail(); ?>
<?php the_excerpt(); ?>
</div>
<div></div>

<?php if(has_tag()): ?><p><span><?php the_tags(""); ?></span></p><?php endif; ?>

<p><a href="<?php the_permalink(); ?>">続きを読む</a></p>

</div>
<!-- End: Post -->
<?php endwhile; endif; ?>

カスタムフィールド表示設定

カスタムフィールドで登録したデーターをトップなどの別ページへ表示する場合、

また、カスタム投稿がいくつも有る場合、表示させる関数で有効な関数

<?php
$args = array(
'post_type'      => 'castom', // 表示するカスタム投稿名
'posts_per_page' =>10,      // 表示する件数
);
?>

<?php $my_query = new WP_Query( $args ); ?>

<?php if ( $my_query->have_posts() ) : ?>
<?php while ( $my_query->have_posts() ) : $my_query->the_post(); ?>
<?php if ( get_post_meta($post->ID,'item',TRUE) ): ?>

<?php echo post_custom("カスタムフィールドID")?>

<?php echo wp_get_attachment_link(get_post_meta($post->ID,"item_image",true),'thumbnail'); ?>

<?php endif; ?>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>

割と言う事を聞いてくれますね。

一番は、カスタム投稿を1ページに投稿別に表示できるところです。