「スニペット」カテゴリーアーカイブ

メディア一覧にURL表示を追加

function muc_column( $cols ) {

$cols["media_url"] = "ファイル";
 return $cols;
}
function muc_value( $column_name, $id) {
 if ( $column_name == "media_url" )
 // アッタチメント画像のデータベースレコードを取得する
 $_post = & get_post( intval($id) );
 // タイトルの取得
 $image_title = attribute_escape($_post->post_title);
 // echo $image_title;
 echo '<a href="'. wp_get_attachment_url( $id ). '">'. $image_title . '</a>';
}
add_filter( 'manage_media_columns', 'muc_column' );
add_action( 'manage_media_custom_column', 'muc_value', 10, 2 );

プラグインの新規追加と編集をできなくする

$user_ID が 1 以外はプラグインの新規追加、編集、削除を出来なくする

/*
 * プラグインの新規追加と編集をできなくする
 * 
*/
function remove_permissions_plugin_add_editor() {
	global $user_ID;
	if( $user_ID != 1){
		// translators: add new plugin menu.php
		global $submenu;
		unset( $submenu['plugins.php'][10] );	// Add New Plugins
		unset( $submenu['plugins.php'][15] );	// Plugin Editor

		// not have permissions
		$pos_plugin_editor = strpos( $_SERVER['PHP_SELF'] , 'plugin-editor.php' );	//編集
		$pos_plugin_install = strpos( $_SERVER['PHP_SELF'] , 'plugin-install.php' );	//新規
		if ( $pos_plugin_editor !== false || $pos_plugin_install !== false ) {
			wp_die( __('You do not have sufficient permissions to edit plugins for this site.') );
		}
	}
}
add_action( 'admin_init', 'remove_permissions_plugin_add_editor' , 10 , 1 );

/*
 * プラグインページのリストより「行アクション」の 編集リンクを外す
 * 
*/
function remove_row_actions_plugins_configure( $actions ){
	global $user_ID;
	if( $user_ID != 1){  
			unset( $actions['edit'] );    // edit
			unset( $actions['delete'] );    // delete		
	}
	return $actions;
}
add_filter('plugin_action_links', 'remove_row_actions_plugins_configure' , 10 , 1);

/*
 * プラグインページのh2 新規作成リンクを見えなくする。
 * 
*/
function remove_plugins_addnew_h2_link() {
	global $user_ID;
	if( $user_ID != 1){  
		?>
			<style type="text/css">
				#wpbody .wrap .add-new-h2{display:none;} 
			</style>
		<?php
	}
}
add_action( 'admin_print_styles-plugins.php', 'remove_plugins_addnew_h2_link' ,10 , 1 ); 

/*
 * プラグインページの一括操作セレクタの項目を見えなくする。
 * 
*/
function remove_plugins_selecter_list() {
	global $user_ID;
	if( $user_ID != 1){  
		$plugins = strpos( $_SERVER['PHP_SELF'] , 'plugins.php' );
		if ( $plugins !== false ) {
		?>
		<script type="text/javascript">
			//削除
			jQuery(".bulkactions>select option[value='delete-selected']").remove();
			//更新
			jQuery(".bulkactions>select option[value='update-selected']").remove();
		</script>
		<?php
		}
	}
}
add_action( 'admin_print_footer_scripts', 'remove_plugins_selecter_list', 99 );

http://www.newbalanceoutlet.cc laufschuhe new balance damen

お客さんに、記事投稿してもらえるフォームを作る! wp_insert_post()

$postarr = Array(
	'post_status' => 'publish',
	'post_category' => '1',
	'post_title' => '記事タイトル',
	'post_content' => '記事の内容'
);
wp_insert_post($postarr);
参考URL:
WordPress Codex:

カスタム投稿にRSS追加して固定ページ内でカスタム投稿一覧をfeedで出力してやる荒技

function my_get_posts( $query ) {
if ( is_feed() ) {
$query->set( 'post_type', array('post') ); 
return $query;
}
}
add_filter( 'pre_get_posts', 'my_get_posts' );

さらに・・カスタム投稿の一覧を固定ページに出力するためのショートコードを書くのがメンドクサイ時の荒技。

1)プラグイン RSS Import を有効化

2)上でgetしたカスタム投稿のfeed-URLをコピー
(http://www.xxx.xx/xx/feed)

3)RSS Importのショートコードを表示させたい固定ページに書く。
5行/50文字まで表示させる↓
[RSSImport display=”5″ before_date=” | ” date=”true” feedurl=”http://www.xxx.xx/xx/feed” displaydescriptions=”true” truncatedescchar=”50″]

書き方はRSS Importのdescriptionを参照。

一部、管理メニューを非表示にする

クライアントが、コアなファイル設定を触れないようにする
(ユーザ権限で、どうしても管理者権限を与えないと触れない設定がある場合、テーマファイルやプラグインは非表示にしておく時に使用)

function example_remove_dashboard_widgets() {
global $wp_meta_boxes;
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); // プラグイン
}
add_action('wp_dashboard_setup', 'example_remove_dashboard_widgets');

function remove_menus () {
global $menu;
unset($menu[60]);//テーマ
}
add_action('admin_menu', 'remove_menus');

Jetpack InfiniteScroll有効化

function initThemeSupport() {
    add_theme_support(
        "infinite-scroll",
        array(
            "container" => "mainList" // 適用したい要素のID
            ,"type" => "scroll" // or "click"
            ,"render" => "setInfiniteScroll" //get_template_partを実行する関数
            ,"posts_per_page" => 10 // 一度に表示する件数
            ,"wrapper" => true
            ,"footer"=> false
        )
    );
}

if(!is_single()){
    // 実行させたい場所にフック
    add_action("after_setup_theme","initThemeSupport");
}

function setInfiniteScroll() {
    // 表示したいブロックが入ったtemplateを指定(この場合はcontent-list.phpがinifinite scrollで使用される)
    get_template_part('content','list');
}

Infinite Scroll 更新時にJavaScriptで処理を行いたい場合

jQuery(document).ready(function($){
    
    $(function() {
    $( document.body ).on( 'post-load', function () {
        // ここに処理を書く
    } );
});

参考サイト
Infinite Scroll — Jetpack for WordPress