' . esc_html__( 'WARNING: error defining Custom Field on Page with Posts.', 'absolute-weaver' ) . '' );
if ( strlen( $info ) > 0 ) {
echo( 'More info: ' . $info . '
' );
}
}
// # PAGE WITH POSTS ==============================================================
function aweaver_get_page() {
/* get the current posts display number
needed for when Page with Posts is front page
*/
$paged = get_query_var( 'paged' );
if ( ! isset( $paged ) || empty( $paged ) ) {
$paged = 1;
}
$page = get_query_var( 'page' );
if ( $page > 1 ) {
$paged = $page;
}
return $paged;
}
function aweaver_setup_post_args( $args ) {
/* setup WP_Query arg list */
$cats = aweaver_get_page_categories();
if ( ! empty( $cats ) ) {
$args['cat'] = $cats;
}
$tags = aweaver_get_page_tags();
if ( ! empty( $tags ) ) {
$args['tag'] = $tags;
}
$onepost = aweaver_get_page_onepost();
if ( ! empty( $onepost ) ) {
$args['name'] = $onepost;
}
$orderby = aweaver_get_page_orderby();
if ( ! empty( $orderby ) ) {
$args['orderby'] = $orderby;
}
$order = aweaver_get_page_order();
if ( ! empty( $order ) ) {
$args['order'] = $order;
}
$author_name = aweaver_get_page_author();
if ( ! empty( $author_name ) ) {
$nosp = str_replace( ' ', '', $author_name );
$id_list = str_replace( ',', '', $nosp );
if ( is_numeric( $id_list ) ) {
$args['author'] = $author_name;
} else {
$args['author_name'] = $author_name;
}
}
$posts_per_page = aweaver_get_page_posts_per();
if ( ! empty( $posts_per_page ) ) {
$args['posts_per_page'] = $posts_per_page;
}
$post_type = aweaver_get_per_page_value( '_pp_post_type' );
if ( $post_type ) {
$args['post_type'] = $post_type;
}
if ( aweaver_is_checked_page_opt( '_pp_hide_sticky' ) ) {
$args['ignore_sticky_posts'] = true;
}
return $args;
}
function aweaver_get_page_categories() {
$cats = aweaver_get_per_page_value( '_pp_category' );
if ( empty( $cats ) ) {
return '';
}
// now convert slugs to ids
return aweaver_cat_slugs_to_ids( $cats );
}
function aweaver_cat_slugs_to_ids( $cats ) {
if ( empty( $cats ) ) {
return '';
}
// now convert slugs to numbers
$cats = str_replace( ' ', '', $cats );
$clist = explode( ',', $cats ); // break into a list
$cat_list = '';
foreach ( $clist as $slug ) {
$neg = 1; // not negative
if ( $slug[0] == '-' ) {
$slug = substr( $slug, 1 ); // zap the -
$neg = - 1;
}
if ( strlen( $slug ) > 0 && is_numeric( $slug ) ) { // allow both slug and id
$cat_id = $neg * ( int ) $slug;
if ( $cat_list == '' ) {
$cat_list = strval( $cat_id );
} else {
$cat_list .= ',' . strval( $cat_id );
}
} else {
$cur_cat = get_category_by_slug( $slug );
if ( is_object( $cur_cat ) ) {
$cat_id = $neg * ( int ) $cur_cat->cat_ID;
if ( $cat_list == '' ) {
$cat_list = strval( $cat_id );
} else {
$cat_list .= ',' . strval( $cat_id );
}
}
}
}
if ( empty( $cat_list ) ) {
$cat_list = '99999999';
}
return $cat_list;
}
function aweaver_get_page_tags() {
$tags = aweaver_get_per_page_value( '_pp_tag' );
if ( empty( $tags ) ) {
return '';
}
return str_replace( ' ', '', $tags );
}
function aweaver_get_page_onepost() {
$the_post = aweaver_get_per_page_value( '_pp_onepost' );
if ( empty( $the_post ) ) {
return '';
}
return $the_post;
}
function aweaver_get_page_orderby() {
$orderby = aweaver_get_per_page_value( '_pp_orderby' );
if ( empty( $orderby ) ) {
return '';
}
if ( $orderby == 'author' || $orderby == 'date' || $orderby == 'title' || $orderby == 'rand' ) {
return $orderby;
}
aweaver_page_posts_error( esc_html__( 'orderby must be author, date, title, or rand. You used: ', 'absolute-weaver' ) . $orderby );
return '';
}
function aweaver_get_page_order() {
$order = aweaver_get_per_page_value( '_pp_sort_order' );
if ( empty( $order ) ) {
return '';
}
if ( $order == 'ASC' || $order == 'DESC' ) {
return $order;
}
aweaver_page_posts_error( esc_html__( 'order value must be ASC or DESC. You used: ', 'absolute-weaver' ) . $order );
return '';
}
function aweaver_get_page_posts_per() {
$ppp = aweaver_get_per_page_value( '_pp_posts_per_page' );
if ( empty( $ppp ) ) {
return '';
}
// now convert slugs to numbers
return $ppp;
}
function aweaver_get_page_author() {
$author = aweaver_get_per_page_value( '_pp_author' );
if ( empty( $author ) ) {
return '';
}
return $author;
}
// # FILTERS ==============================================================
// ============ validation filters ===============
function aweaver_filter_textarea( $text ) {
// virtually all option text input from Absolute Weaver can be code, and thus must not be
// content filtered. Treat like code for now....
return aweaver_filter_code( $text );
}
function aweaver_filter_head( $text ) {
$allowed_head_tags = array(
'title' => array(),
'style' => array( 'media' => true, 'scoped' => true, 'type' => true ),
'meta' => array(
'charset' => true,
'content' => true,
'http-equiv' => true,
'name' => true,
'scheme' => true,
'property' => true,
),
'link' => array( 'href' => true, 'rel' => true, 'type' => true, 'title' => true, 'media' => true, 'id' => true, 'class' => true, 'sizes' => true, 'crossorigin' => true, 'hreflang' => true ),
'script' => array( 'async' => true, 'charset' => true, 'defer' => true, 'src' => true, 'type' => true ),
'noscript' => array(),
'base' => array( 'href' => true, 'target' => true ),
);
// restrict head code to valid stuff for