[WordPress]メニュー削除
function remove_noneed_menus() { global $menu; global $submenu; unset($menu[5]); // 投稿 //unset($menu[20]); // 固定ページ unset($menu[25]); // コメント } add_action('admin_menu', 'remove_noneed_menus');
function remove_noneed_menus() { global $menu; global $submenu; unset($menu[5]); // 投稿 //unset($menu[20]); // 固定ページ unset($menu[25]); // コメント } add_action('admin_menu', 'remove_noneed_menus');
function add_user_rewrite_rules() { add_rewrite_rule("^post_type1/?$", "index.php?post_type=post_type1&mode=archive", 'top'); add_rewrite_rule("^post_type1/article/([^\/]+)/?$", 'index.php?post_type=post_type1&name=$matches[1]&mode=single', 'top'); add_rewrite_rule("^post_type2/?$", "index.php?post_type=post_type2&mode=archive", 'top'); add_rewrite_rule("^post_type2/(\d+)/?$", 'index.php?post_type=post_type2&p=$matches[1]&mode=single', 'top'); } add_action('init', 'add_user_rewrite_rules'); function add_user_routes_query_vars($query_vars) { $query_vars[] = 'mode'; $query_vars[] = 'param'; return $query_vars; } add_filter('query_vars', 'add_user_routes_query_vars'); /** * is_single,is_archiveの返値が確定する前に処理 * @param $query */ function my_parse_request($query) { if(is_admin()) return; if($query->query_vars['post_type'] === 'post_type1') { $query->query_vars['posts_per_page'] = 10; }else if($query->query_vars['post_type'] === 'post_type2') { $query->query_vars['posts_per_page'] = 20; }else if($query->query_vars['post_type'] === 'post_type3'){ } } add_action( 'parse_request', 'my_parse_request'); function my_pre_get_posts( $query ) { if ( is_admin() || ! $query->is_main_query() ){ return; } if($query->query['post_type'] === 'post_type1') { if (!empty($_GET['api'])) { if(!empty($_GET['count']) && preg_match('/^\d+$/',$_GET['count'])){ $query->set('posts_per_page',$_GET['count']); }else{ $query->set('posts_per_page',3); } } }else if($query->query['post_type'] === 'post_type2') { if (!empty($_GET['api'])) { if (isset($_GET['cate'])) { $tax_query[] = array( 'taxonomy' => 'tax_type', 'terms' => array($_GET['cate']), 'field' => 'slug', 'operator' => 'IN'); $query->set('tax_query', array('relation' => 'OR', $tax_query)); } if(!empty($_GET['count']) && preg_match('/^\d+$/',$_GET['count'])){ $query->set('posts_per_page',$_GET['count']); }else{ $query->set('posts_per_page',3); } }else if (isset($query->query['param'])) { $tax_query[] = array( 'taxonomy' => 'tax_type', 'terms' => array($query->query['param']), 'field' => 'slug', 'operator' => 'IN'); $query->set('tax_query', array('relation' => 'OR', $tax_query)); } } } add_action('pre_get_posts','my_pre_get_posts'); /** * テンプレートファイル切替 * @param $template * @return mixed */ function my_template_include($template) { global $wp_query; if($wp_query->query['post_type'] === 'post_type1' && isset($wp_query->query['mode']) && $wp_query->query['mode'] === 'top') { $bn = basename($template); return preg_replace("/{$bn}$/","index-post_type1.php",$template); }else if($wp_query->query['post_type'] === 'post_type2' && isset($wp_query->query['mode']) && $wp_query->query['mode'] === 'top'){ $bn = basename($template); return preg_replace("/{$bn}$/","archive-post_type2.php",$template); }else if($wp_query->query['post_type'] === 'post_type3'){ if($wp_query->query['mode'] === 'single'){ $bn = basename($template); return preg_replace("/{$bn}$/","single-post_type3.php",$template); } } return $template; } add_filter('template_include','my_template_include');
function my_original_option() { add_menu_page('オリジナルメニュー','オリジナルメニュー','manage_options','my_option','my_option','',30); } add_action('admin_menu', 'my_original_option'); function my_option() { include TEMPLATEPATH . DIRECTORY_SEPARATOR . 'my_option.php'; } function my_register_scripts() { if(is_admin() && !empty($_GET['page']) && $_GET['page']==='my_option') { $keyname = 'my_option'; $result = wp_register_script($keyname, get_template_directory_uri() . '/scripts/admin-custom.js', array('jquery', 'jquery-ui-sortable')); wp_enqueue_script($keyname); } } add_action('init', 'my_register_scripts');
public function get_std_by_array($arr,$include_keys = null) { $tmp = new stdClass(); foreach ($arr as $key => $v){ if(empty($include_keys) || (!empty($include_keys) && in_array($key,$include_keys))) $tmp->$key = $v; } return $tmp; } public function get_datas { $sql = array(); $sql[] = "SELECT * FROM wp_posts"; $this->init_pgsql(); try{ $res = ORM::raw_execute(implode(" ",$sql)); $statement = ORM::get_last_statement(); $rows = array(); $results = array(); while ($row = $statement->fetch(PDO::FETCH_ASSOC)) { $results[] = $this->get_std_by_array($row); } }catch (PDOException $e){ } return empty($results) ? null : $results; }
SELECT psat.relname AS TABLE_NAME,pa.attname AS COLUMN_NAME,pd.description AS COLUMN_COMMENT FROM pg_stat_all_tables AS psat,pg_description AS pd,pg_attribute AS pa WHERE psat.schemaname = (SELECT schemaname FROM pg_stat_user_tables WHERE relname = 'テーブル名') AND psat.relname = 'テーブル名' AND psat.relid = pd.objoid AND pd.objsubid <> 0 AND pd.objoid = pa.attrelid AND pd.objsubid = pa.attnum ORDER BY pd.objsubid
public function is_empty_wysiwyg_content($content) { $content = $this->get_string_from_wysiwyg_content($content); return $content === ''; } public function get_wysiwyg_content($content) { return apply_filters('acf_the_content',$content); } public function get_string_from_wysiwyg_content($_content) { $is_empty = trim(preg_replace('/<[^>]+?>/','',$_content)) == ' '; if($is_empty) return ''; return trim(html_entity_decode(preg_replace('/<[^>]+?>/','',$_content))); }
public function get_posts_count_by_taxonomy_slug($taxonomy, $term = '') { global $wpdb; $sql = array(); $sql[] = "SELECT"; $sql[] = "COUNT(tr.object_id) AS count"; $sql[] = "FROM $wpdb->term_relationships AS tr"; $sql[] = "LEFT JOIN $wpdb->term_taxonomy AS tt ON tr.term_taxonomy_id = tt.term_taxonomy_id"; $sql[] = "LEFT JOIN $wpdb->terms AS t ON tt.term_id = t.term_id"; $sql[] = "LEFT JOIN $wpdb->posts AS p ON tr.object_id = p.ID"; $sql[] = "WHERE p.post_status = 'publish'"; if (!empty($term)) $sql[] = "AND t.slug ='$term'"; $sql[] = "AND tt.taxonomy = '$taxonomy'"; if (empty($term)) $sql[] = "GROUP BY tr.object_id"; $posts = $wpdb->get_results(implode(' ', $sql)); return empty($posts) ? 0 : $posts[0]->count; }
プラグインWordPress Popular Postsによって閲覧数が保存されている時
指定投稿タイプの記事IDを閲覧数の多い順に取得する
public function get_post_ids_order_by_views_wppp($post_type = 'post', $param = array()) { $param = array_merge( array( 'posts_per_page' => 5, 'range' => '1 MONTH', 'return_posts' => false, ), $param ); global $wpdb; $now = current_time('mysql'); $interval = ""; switch ($param['range']) { case "yesterday": $interval = "1 DAY"; break; case "daily": $interval = "1 DAY"; break; case "weekly": $interval = "1 WEEK"; break; case "monthly": $interval = "1 MONTH"; break; default: $interval = $param['range']; break; } $sql[] = "SELECT postid AS ID,SUM(pageviews) AS views,p.post_type"; $sql[] = "FROM {$wpdb->prefix}popularpostssummary AS pps"; $sql[] = "LEFT JOIN $wpdb->posts AS p ON pps.postid = p.ID"; $sql[] = "WHERE view_datetime > DATE_SUB('{$now}', INTERVAL $interval)"; $sql[] = "AND p.post_type " . (is_array($post_type) ? "IN ('" . implode("','", $post_type) . "')" : "= '$post_type'"); $sql[] = "AND p.post_status = 'publish'"; if (!empty($param['post_id'])) { $sql[] = "AND postid " . (is_array($param['post_id']) ? "IN (" . implode(",", $param['post_id']) . ")" : "= {$param['post_id']}"); } if (!empty($param['not_post_id'])) { $sql[] = "AND postid " . (is_array($param['not_post_id']) ? "NOT IN (" . implode(",", $param['not_post_id']) . ")" : "!= {$param['not_post_id']}"); } $sql[] = "GROUP BY postid"; $sql[] = "ORDER BY views DESC"; if (!empty($param['ppp'])) { $sql[] = "LIMIT 0,{$param['ppp']}"; }elseif (!empty($param['posts_per_page'])) { $sql[] = "LIMIT 0,{$param['posts_per_page']}"; } $posts = $wpdb->get_results(implode(' ', $sql)); if ($param['return_posts']) return $posts; $ids = array(); foreach ($posts as $post) { $ids[] = $post->ID; } return $ids; }
try{ $sql = "SELECT * FROM shops WHERE name LIKE ? OR name LIKE ?"; $words = array("%銀座%","%御徒町%"); $items = ORM::for_table('shops')->raw_query($sql,$words)->find_array(); }catch (PDOException $e){ return null; } return $items;
$this->init_pgsql(); try{ $orm = ORM::for_table('users')->select_expr("DISTINCT CONCAT(team,'_',job)","tj")->select('team')->select('job'); $orm->where_in('team',$teams); $records = $orm->find_array(); }catch (PDOException $e){ return null; } return $records;