簡體   English   中英

從posts_where wordpress內部獲取帖子ID

[英]Get post id from inside posts_where wordpress

如何從posts_where中獲取帖子ID?

在下面的代碼中,$ page_id = $ wp_query-> get_queried_object_id(); 適用於網頁,但不適用於帖子。 我設置了第二個變量$ post_id,並希望用帖子的ID來填充它。

這是我的功能/過濾器:

// Filter posts
    function ugrestriction_filter( $where, $wp_query )
    {
        global $wpdb, $post, $current_user, $wp_query;
        get_currentuserinfo();
        $user_id = $current_user->ID;
        $page_id = $wp_query->get_queried_object_id();
        $post_id = $wp_query->get_queried_object_id();

        $meta_key1    = '_ugrestriction';
        $meta_key1_value  = 'on';

        $postids=$wpdb->get_col( $wpdb->prepare( 
          "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = %s AND meta_value = 'on'", "_ugrestriction"
        ) ); 


        //$postids = array("70", "1", "2", "3");

        if (in_array($post_id, $postids)) {
          $filter = 'on';
        } elseif (in_array($page_id, $postids)) {
          $filter = 'on';
        } 


        if ( $filter == 'on') {
          $where .= " AND ($wpdb->postmeta.meta_key = '_ugrestriction' AND $wpdb->postmeta.meta_value = 'on' AND " .  $wpdb->posts . " .post_author =". $user_id .")";
        }

            return $where;
    }

    add_filter( 'posts_where', 'ugrestriction_filter', 10, 2 );
// Filter posts
    function ugrestriction_filter( $where, $wp_query )
    {
        global $wpdb, $post, $current_user, $wp_query;
        get_currentuserinfo();
        $user_id = $current_user->ID;
        $page_id = $wp_query->get_queried_object_id();
        $post_id = $post->ID;

        $meta_key1    = '_ugrestriction';
        $meta_key1_value  = 'on';

        $postids=$wpdb->get_col( $wpdb->prepare( 
          "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = %s AND meta_value = 'on'", "_ugrestriction"
        ) ); 


        //$postids = array("70", "1", "2", "3");

        if (in_array($post_id, $postids)) {
          $filter = 'on';
        } elseif (in_array($page_id, $postids)) {
          $filter = 'on';
        } 


        if ( $filter == 'on') {
          $where .= " AND ($wpdb->postmeta.meta_key = '_ugrestriction' AND $wpdb->postmeta.meta_value = 'on' AND " .  $wpdb->posts . " .post_author =". $user_id .")";
        }

            return $where;
    }

    add_filter( 'posts_where', 'ugrestriction_filter', 10, 2 );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM